1
0
Fork 0
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:
Ycarus (Yannick Chabanois) 2020-04-21 22:58:05 +02:00
parent 575072289a
commit fa093b90b4
4 changed files with 55 additions and 14 deletions

View file

@ -378,6 +378,9 @@
} }
var latency = mArray.wans[i].latency; var latency = mArray.wans[i].latency;
var mtu = mArray.wans[i].mtu; 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; var gateway = mArray.wans[i].gateway;
if (anonymize == "true" && testPrivateIP(gateway) == false) if (anonymize == "true" && testPrivateIP(gateway) == false)
{ {
@ -425,6 +428,19 @@
{ {
content += String.format('%s %s<br />',_('mtu:'), mtu); 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 !== '')
{ {
if (signal <= 0) if (signal <= 0)

View file

@ -1,12 +1,17 @@
#!/bin/sh #!/bin/sh
MODEM_INTF=$1 MODEM_INTF=$1
[ -z "$MODEM_INTF" ] && return [ -z "$MODEM_INTF" ] && return
INFO=$2
timeout 1 mmcli -L | while read MODEM; do timeout 1 mmcli -L | while read MODEM; do
MODEM_ID=$(echo $MODEM | awk -F' ' '{print $1}' | awk -F/ '{print $6}') MODEM_ID=$(echo $MODEM | awk -F' ' '{print $1}' | awk -F/ '{print $6}')
MODEM_INFO="$(timeout 1 mmcli -m $MODEM_ID --output-keyvalue)" 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 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}') 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 exit
fi fi
done done

View file

@ -1,27 +1,29 @@
#!/bin/sh #!/bin/sh
MODEM_INTF=$1 MODEM_INTF=$1
[ -z "$MODEM_INTF" ] && return [ -z "$MODEM_INTF" ] && return
INFO=$2
SIGNAL_INFO=$(timeout 1 uqmi -d $MODEM_INTF --get-signal-info) SIGNAL_INFO=$(timeout 1 uqmi -d $MODEM_INTF --get-signal-info)
[ -z "$SIGNAL_INFO" ] && return [ -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 if [ "$TYPE" = "gsm" ]; then
RSSI=$(echo $SIGNAL_INFO | jsonfilter -e '@.rssi') RSSI=$(echo $SIGNAL_INFO | jsonfilter -e '@.rssi' | tr -d '\n')
[ -z "$RSSI" ] && return [ -z "$RSSI" ] && return
ASU=$(((RSSI + 113) / 2 )) ASU=$(((RSSI + 113) / 2 ))
PERCENT=$((((ASU - 0) * 100) / ( 91 - 0 ))) PERCENT=$((((ASU - 0) * 100) / ( 91 - 0 )))
echo $PERCENT elif [ "$TYPE" = "umts" ]; then
fi RSCP=$(echo $SIGNAL_INFO | jsonfilter -e '@.rscp' | tr -d '\n')
if [ "$TYPE" = "umts" ]; then
RSCP=$(echo $SIGNAL_INFO | jsonfilter -e '@.rscp')
[ -z "$RSCP" ] && return [ -z "$RSCP" ] && return
ASU=$((RSCP + 116)) ASU=$((RSCP + 116))
PERCENT=$((((ASU - 0) * 100) / ( 91 - 0 ))) PERCENT=$((((ASU - 0) * 100) / ( 91 - 0 )))
echo $PERCENT elif [ "$TYPE" = "lte" ]; then
fi RSRP=$(echo $SIGNAL_INFO | jsonfilter -e '@.rsrp' | tr -d '\n')
if [ "$TYPE" = "lte" ]; then
RSRP=$(echo $SIGNAL_INFO | jsonfilter -e '@.rsrp')
[ -z "$RSRP" ] && return [ -z "$RSRP" ] && return
ASU=$((RSRP + 140)) ASU=$((RSRP + 140))
PERCENT=$((((ASU - 3) * 100) / ( 70 - 3 ))) PERCENT=$((((ASU - 3) * 100) / ( 70 - 3 )))
echo $PERCENT
fi 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"

View file

@ -1037,6 +1037,9 @@ function interfaces_status()
end end
end end
local signal = "" local signal = ""
local operator = ""
local phonenumber = ""
local donglestate = ""
if gateway ~= "" then if gateway ~= "" then
if uci:get("openmptcprouter", "settings", "disablegwping") ~= "1" and connectivity ~= "ERROR" 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'")) 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'] local proto = section['proto']
if proto == "qmi" then if proto == "qmi" then
local device = section['device'] 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 elseif proto == "3g" then
local device = section['device'] local device = section['device']
signal = sys.exec("omr-3g " .. device .. " | tr -d '\n'") signal = sys.exec("omr-3g " .. device .. " | tr -d '\n'")
elseif proto == "modemmanager" then elseif proto == "modemmanager" then
local device = section['device'] 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
end end
@ -1206,6 +1221,9 @@ function interfaces_status()
multipath_state = current_multipath_state, multipath_state = current_multipath_state,
duplicateif = duplicateif, duplicateif = duplicateif,
signal = signal, signal = signal,
operator = operator,
phonenumber = phonenumber,
donglestate = donglestate,
} }
if ifname ~= nil and ifname:match("^tun.*") then if ifname ~= nil and ifname:match("^tun.*") then
table.insert(mArray.tunnels, data); table.insert(mArray.tunnels, data);