diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm
index 59c9e2a5c..475506267 100644
--- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm
+++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm
@@ -378,6 +378,9 @@
}
var latency = mArray.wans[i].latency;
var mtu = mArray.wans[i].mtu;
+ var operator = mArray.wans[i].operator;
+ var phonenumber = mArray.wans[i].phonenumber;
+ var donglestate = mArray.wans[i].donglestate;
var gateway = mArray.wans[i].gateway;
if (anonymize == "true" && testPrivateIP(gateway) == false)
{
@@ -425,6 +428,19 @@
{
content += String.format('%s %s
',_('mtu:'), mtu);
}
+ if (operator !== '' && anonymize !== 'true')
+ {
+ content += String.format('%s %s
',_('operator:'), operator);
+ }
+ if (phonenumber !== '' && anonymize !== 'true')
+ {
+ content += String.format('%s %s
',_('phone number:'), phonenumber);
+ }
+ if (donglestate !== '' && anonymize !== 'true')
+ {
+ content += String.format('%s %s
',_('state:'), donglestate);
+ }
+
if(signal !== '')
{
if (signal <= 0)
diff --git a/luci-app-openmptcprouter/root/bin/omr-modemmanager b/luci-app-openmptcprouter/root/bin/omr-modemmanager
index 959921b74..32ac93481 100755
--- a/luci-app-openmptcprouter/root/bin/omr-modemmanager
+++ b/luci-app-openmptcprouter/root/bin/omr-modemmanager
@@ -1,12 +1,17 @@
#!/bin/sh
MODEM_INTF=$1
[ -z "$MODEM_INTF" ] && return
+INFO=$2
timeout 1 mmcli -L | while read MODEM; do
MODEM_ID=$(echo $MODEM | awk -F' ' '{print $1}' | awk -F/ '{print $6}')
MODEM_INFO="$(timeout 1 mmcli -m $MODEM_ID --output-keyvalue)"
if [ -n "$MODEM_INFO" ] && [ "$(echo "$MODEM_INFO" | grep 'modem.generic.device ' | awk -F": " '{print $2}')" = "$MODEM_INTF" ]; then
PERCENT=$(echo "$MODEM_INFO" | grep 'modem.generic.signal-quality.value' | awk -F": " '{print $2}')
- echo $PERCENT
+ OPERATOR=$(echo "$MODEM_INFO" | grep 'modem.3gpp.operator-name' | awk -F": " '{print $2}')
+ NUMBER=$(echo "$MODEM_INFO" | grep 'modem.generic.own-numbders.value[1]' | awk -F": " '{print $2}')
+ STATE=$(echo "$MODEM_INFO" | grep 'modem.generic.state' | awk -F": " '{print $2}')
+ [ -z "$INFO" ] && echo $PERCENT
+ [ "$INFO" = "all" ] && echo "$PERCENT;$OPERATOR;$NUMBER;$STATE"
exit
fi
done
diff --git a/luci-app-openmptcprouter/root/bin/omr-qmi b/luci-app-openmptcprouter/root/bin/omr-qmi
index d7c7028dd..727250195 100755
--- a/luci-app-openmptcprouter/root/bin/omr-qmi
+++ b/luci-app-openmptcprouter/root/bin/omr-qmi
@@ -1,27 +1,29 @@
#!/bin/sh
MODEM_INTF=$1
[ -z "$MODEM_INTF" ] && return
+INFO=$2
SIGNAL_INFO=$(timeout 1 uqmi -d $MODEM_INTF --get-signal-info)
[ -z "$SIGNAL_INFO" ] && return
-TYPE=$(echo $SIGNAL_INFO | jsonfilter -e '@.type')
+TYPE=$(echo $SIGNAL_INFO | jsonfilter -e '@.type' | tr -d '\n')
+PERCENT=""
if [ "$TYPE" = "gsm" ]; then
- RSSI=$(echo $SIGNAL_INFO | jsonfilter -e '@.rssi')
+ RSSI=$(echo $SIGNAL_INFO | jsonfilter -e '@.rssi' | tr -d '\n')
[ -z "$RSSI" ] && return
ASU=$(((RSSI + 113) / 2 ))
PERCENT=$((((ASU - 0) * 100) / ( 91 - 0 )))
- echo $PERCENT
-fi
-if [ "$TYPE" = "umts" ]; then
- RSCP=$(echo $SIGNAL_INFO | jsonfilter -e '@.rscp')
+elif [ "$TYPE" = "umts" ]; then
+ RSCP=$(echo $SIGNAL_INFO | jsonfilter -e '@.rscp' | tr -d '\n')
[ -z "$RSCP" ] && return
ASU=$((RSCP + 116))
PERCENT=$((((ASU - 0) * 100) / ( 91 - 0 )))
- echo $PERCENT
-fi
-if [ "$TYPE" = "lte" ]; then
- RSRP=$(echo $SIGNAL_INFO | jsonfilter -e '@.rsrp')
+elif [ "$TYPE" = "lte" ]; then
+ RSRP=$(echo $SIGNAL_INFO | jsonfilter -e '@.rsrp' | tr -d '\n')
[ -z "$RSRP" ] && return
ASU=$((RSRP + 140))
PERCENT=$((((ASU - 3) * 100) / ( 70 - 3 )))
- echo $PERCENT
fi
+[ -z "$INFO" ] && echo $PERCENT && return
+OPERATOR=$(timeout 1 uqmi -d $MODEM_INTF --get-serving-system | jsonfilter -e '@.plmn_description' | tr -d '\n')
+NUMBER=$(timeout 1 uqmi -d $MODEM_INTF --msisdn | jsonfilter -e '@' | tr -d '\n')
+STATE=$(timeout 1 uqmi -d $MODEM_INTF --get-data-status | jsonfilter -e '@' | tr -d '\n')
+[ "$INFO" = "all" ] && echo "$PERCENT;$OPERATOR;$NUMBER;$TATE"
\ No newline at end of file
diff --git a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter
index 727052dfa..599410c03 100755
--- a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter
+++ b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter
@@ -1037,6 +1037,9 @@ function interfaces_status()
end
end
local signal = ""
+ local operator = ""
+ local phonenumber = ""
+ local donglestate = ""
if gateway ~= "" then
if uci:get("openmptcprouter", "settings", "disablegwping") ~= "1" and connectivity ~= "ERROR" then
local gw_ping_test = ut.trim(sys.exec("ping -w 1 -c 1 " .. gateway .. " | grep '100% packet loss'"))
@@ -1059,13 +1062,25 @@ function interfaces_status()
local proto = section['proto']
if proto == "qmi" then
local device = section['device']
- signal = sys.exec("omr-qmi " .. device .. " | tr -d '\n'")
+ intfdata = sys.exec("omr-qmi " .. device .. " | tr -d '\n'")
+ if intfdata ~= "" then
+ signal = sys.exec("echo ".. intfdata .. " | awk -F';' '{print $1}' | tr -d '\n'")
+ operator = sys.exec("echo ".. intfdata .. " | awk -F';' '{print $2}' | tr -d '\n'")
+ phonenumber = sys.exec("echo ".. intfdata .. " | awk -F';' '{print $3}' | tr -d '\n'")
+ donglestate = sys.exec("echo ".. intfdata .. " | awk -F';' '{print $4}' | tr -d '\n'")
+ end
elseif proto == "3g" then
local device = section['device']
signal = sys.exec("omr-3g " .. device .. " | tr -d '\n'")
elseif proto == "modemmanager" then
local device = section['device']
- signal = sys.exec("omr-modemmanager " .. device .. " | tr -d '\n'")
+ intfdata = sys.exec("omr-modemmanager " .. device .. " | tr -d '\n'")
+ if intfdata ~= "" then
+ signal = sys.exec("echo ".. intfdata .. " | awk -F';' '{print $1}' | tr -d '\n'")
+ operator = sys.exec("echo ".. intfdata .. " | awk -F';' '{print $2}' | tr -d '\n'")
+ phonenumber = sys.exec("echo ".. intfdata .. " | awk -F';' '{print $3}' | tr -d '\n'")
+ donglestate = sys.exec("echo ".. intfdata .. " | awk -F';' '{print $4}' | tr -d '\n'")
+ end
end
end
@@ -1206,6 +1221,9 @@ function interfaces_status()
multipath_state = current_multipath_state,
duplicateif = duplicateif,
signal = signal,
+ operator = operator,
+ phonenumber = phonenumber,
+ donglestate = donglestate,
}
if ifname ~= nil and ifname:match("^tun.*") then
table.insert(mArray.tunnels, data);