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);