mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
More info from qmi and modemmanager
This commit is contained in:
parent
575072289a
commit
fa093b90b4
4 changed files with 55 additions and 14 deletions
|
@ -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<br />',_('mtu:'), mtu);
|
||||
}
|
||||
if (operator !== '' && anonymize !== 'true')
|
||||
{
|
||||
content += String.format('%s %s<br />',_('operator:'), operator);
|
||||
}
|
||||
if (phonenumber !== '' && anonymize !== 'true')
|
||||
{
|
||||
content += String.format('%s %s<br />',_('phone number:'), phonenumber);
|
||||
}
|
||||
if (donglestate !== '' && anonymize !== 'true')
|
||||
{
|
||||
content += String.format('%s %s<br />',_('state:'), donglestate);
|
||||
}
|
||||
|
||||
if(signal !== '')
|
||||
{
|
||||
if (signal <= 0)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue