mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-12 18:41:51 +00:00
Add more info for qmi, modemmanger and huawei modems
This commit is contained in:
parent
81789e00ac
commit
9910e61efc
6 changed files with 77 additions and 21 deletions
|
@ -293,6 +293,12 @@ Thanks :)*/
|
|||
font-weight: 700;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.network-node .info .title i {
|
||||
font-weight: lighter;
|
||||
font-size: 5px;
|
||||
}
|
||||
|
||||
.network-node .info .status-message {
|
||||
display: block;
|
||||
}
|
||||
|
|
|
@ -382,6 +382,7 @@
|
|||
var operator = mArray.wans[i].operator;
|
||||
var phonenumber = mArray.wans[i].phonenumber;
|
||||
var donglestate = mArray.wans[i].donglestate;
|
||||
var networktype = mArray.wans[i].networktype;
|
||||
var gateway = mArray.wans[i].gateway;
|
||||
if (anonymize == "true" && testPrivateIP(gateway) == false)
|
||||
{
|
||||
|
@ -429,7 +430,7 @@
|
|||
{
|
||||
content += String.format('%s %s<br />',_('mtu:'), mtu);
|
||||
}
|
||||
if (operator !== '' && anonymize !== 'true')
|
||||
if (operator !== '')
|
||||
{
|
||||
content += String.format('%s %s<br />',_('operator:'), operator);
|
||||
}
|
||||
|
@ -437,7 +438,7 @@
|
|||
{
|
||||
content += String.format('%s %s<br />',_('phone number:'), phonenumber);
|
||||
}
|
||||
if (donglestate !== '' && anonymize !== 'true')
|
||||
if (donglestate !== '')
|
||||
{
|
||||
content += String.format('%s %s<br />',_('state:'), donglestate);
|
||||
}
|
||||
|
@ -455,6 +456,10 @@
|
|||
else
|
||||
title += ' <img src="/luci-static/resources/icons/signal-75-100.png" />';
|
||||
}
|
||||
if (networktype !== '')
|
||||
{
|
||||
title += String.format(' <i>%s</i>',networktype);
|
||||
}
|
||||
if(ipaddr == '')
|
||||
{
|
||||
statusMessage += _('No IP defined') + '<br />';
|
||||
|
|
|
@ -1,14 +1,47 @@
|
|||
#!/bin/sh
|
||||
MODEM_IP=`echo $1 | grep -E '^(192\.168|10\.|172\.1[6789]\.|172\.2[0-9]\.|172\.3[01]\.)'`
|
||||
[ -z "$MODEM_IP" ] && return
|
||||
INFO=$2
|
||||
SESTOK=$(curl -s -m 1 -X GET "http://$MODEM_IP/api/webserver/SesTokInfo")
|
||||
[ -z "$SESTOK" ] && return
|
||||
COOKIE=$(echo $SESTOK | sed -ne '/SesInfo/{s/.*<SesInfo>\(.*\)<\/SesInfo>.*/\1/p;q;}')
|
||||
COOKIE=$(echo $COOKIE | sed 's:SessionID=::')
|
||||
TOKEN=$(echo $SESTOK | sed -ne '/TokInfo/{s/.*<TokInfo>\(.*\)<\/TokInfo>.*/\1/p;q;}')
|
||||
curl -s -m 1 -X GET "http://$MODEM_IP/api/monitoring/status" -H "Cookie: SessionID=$COOKIE" -H "__RequestVerificationToken: $TOKEN" -H "Content-Type: text/xml" > /tmp/huawei-$1-status
|
||||
SIGNAL_ICON=$(cat /tmp/huawei-$1-status | grep SignalIcon | sed -e 's/<[^>]*>//g')
|
||||
MAX_SIGNAL=$(cat /tmp/huawei-$1-status | grep maxsignal | sed -e 's/<[^>]*>//g')
|
||||
if [ -n "$SIGNAL_ICON" ] && [ -n "$MAX_SIGNAL" ]; then
|
||||
echo $((100 * ${SIGNAL_ICON} / ${MAX_SIGNAL}))
|
||||
fi
|
||||
tmpfile=$(mktemp)
|
||||
curl -s -m 1 -X GET "http://$MODEM_IP/api/monitoring/status" -H "Cookie: SessionID=$COOKIE" -H "__RequestVerificationToken: $TOKEN" -H "Content-Type: text/xml" > ${tmpfile}
|
||||
SIGNAL_STRENGTH=$(cat ${tmpfile} | grep SignalStrength | sed -e 's/<[^>]*>//g' | sed 's/[^\x00-\x7F]//g')
|
||||
if [ "$SIGNAL_STRENGTH" = "" ]; then
|
||||
SIGNAL_ICON=$(cat ${tmpfile} | grep SignalIcon | sed -e 's/<[^>]*>//g' | sed 's/[^\x00-\x7F]//g')
|
||||
MAX_SIGNAL=$(cat ${tmpfile} | grep maxsignal | sed -e 's/<[^>]*>//g' | sed 's/[^\x00-\x7F]//g')
|
||||
if [ -n "$SIGNAL_ICON" ] && [ -n "$MAX_SIGNAL" ]; then
|
||||
PERCENT=$((100 * ${SIGNAL_ICON} / ${MAX_SIGNAL}))
|
||||
fi
|
||||
else
|
||||
echo "signal"
|
||||
PERCENT=$SIGNAL_STRENGTH
|
||||
fi
|
||||
|
||||
STATE=""
|
||||
CONNECTSTATE=$(cat ${tmpfile} | grep ConnectionStatus | sed -e 's/<[^>]*>//g' | sed 's/[^\x00-\x7F]//g')
|
||||
[ "$CONNECTSTATE" = "201" ] && STATE="connection failed, bandwidth exceeded"
|
||||
[ "$CONNECTSTATE" = "900" ] && STATE="connecting"
|
||||
[ "$CONNECTSTATE" = "901" ] && STATE="connected"
|
||||
[ "$CONNECTSTATE" = "902" ] && STATE="disconnected"
|
||||
[ "$CONNECTSTATE" = "903" ] && STATE="disconnecting"
|
||||
[ "$CONNECTSTATE" = "904" ] && STATE="connection failed or disabled"
|
||||
TYPE=""
|
||||
NETWORKTYPE=$(cat ${tmpfile} | grep CurrentNetworkType\> | sed -e 's/<[^>]*>//g' | sed 's/[^\x00-\x7F]//g' | tr -d "\n")
|
||||
[ "$NETWORKTYPE" = "2" ] || [ "$NETWORKTYPE" = "3" ] && TYPE="2g"
|
||||
[ "$NETWORKTYPE" = "4" ] || [ "$NETWORKTYPE" = "5" ] || [ "$NETWORKTYPE" = "6" ] || [ "$NETWORKTYPE" = "7" ] || [ "$NETWORKTYPE" = "8" ] || [ "$NETWORKTYPE" = "9" ] || [ "$NETWORKTYPE" = "17" ] || [ "$NETWORKTYPE" = "18" ] || [ "$NETWORKTYPE" = "41" ] || [ "$NETWORKTYPE" = "44" ] || [ "$NETWORKTYPE" = "45" ] || [ "$NETWORKTYPE" = "46" ] || [ "$NETWORKTYPE" = "64" ] || [ "$NETWORKTYPE" = "65" ] && TYPE="3g"
|
||||
[ "$NETWORKTYPE" = "19" ] || [ "$NETWORKTYPE" = "101" ] && TYPE="lte"
|
||||
rm -f ${tmpfile}
|
||||
OPERATOR=""
|
||||
if [ "$CONNECTSTATE" = "901" ]; then
|
||||
tmpfile=$(mktemp)
|
||||
curl -s -m 1 -X GET "http://$MODEM_IP/api/net/current-plmn" -H "Cookie: SessionID=$COOKIE" -H "__RequestVerificationToken: $TOKEN" -H "Content-Type: text/xml" > ${tmpfile}
|
||||
OPERATOR=$(cat ${tmpfile} | grep FullName | sed -e 's/<[^>]*>//g' | sed 's/[^\x00-\x7F]//g')
|
||||
rm -f ${tmpfile}
|
||||
fi
|
||||
NUMBER=""
|
||||
[ -z "$INFO" ] && echo "$PERCENT"
|
||||
[ "$INFO" = "all" ] && echo "$PERCENT;$OPERATOR;$NUMBER;$STATE;$TYPE"
|
||||
|
|
|
@ -10,8 +10,9 @@ timeout 1 mmcli -L | while read MODEM; do
|
|||
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}')
|
||||
TYPE=$(echo "$MODEM_INFO" | grep 'modem.generic.access-technologies.values[1]' | awk -F": " '{print $2}')
|
||||
[ -z "$INFO" ] && echo $PERCENT
|
||||
[ "$INFO" = "all" ] && echo "$PERCENT;$OPERATOR;$NUMBER;$STATE"
|
||||
[ "$INFO" = "all" ] && echo "$PERCENT;$OPERATOR;$NUMBER;$STATE;$TYPE"
|
||||
exit
|
||||
fi
|
||||
done
|
||||
|
|
|
@ -26,4 +26,4 @@ fi
|
|||
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"
|
||||
[ "$INFO" = "all" ] && echo "$PERCENT;$OPERATOR;$NUMBER;$TATE;$TYPE"
|
|
@ -1040,6 +1040,7 @@ function interfaces_status()
|
|||
local operator = ""
|
||||
local phonenumber = ""
|
||||
local donglestate = ""
|
||||
local networktype = ""
|
||||
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'"))
|
||||
|
@ -1051,7 +1052,14 @@ function interfaces_status()
|
|||
end
|
||||
end
|
||||
if uci:get("openmptcprouter", interface, "manufacturer") == "huawei" then
|
||||
signal = sys.exec("omr-huawei " .. gateway .. " | tr -d '\n'")
|
||||
intfdata = ut.trim(sys.exec("omr-huawei " .. gateway .. " all"))
|
||||
if intfdata ~= "" then
|
||||
signal = ut.trim(sys.exec("echo '".. intfdata .. "' | awk -F';' '{print $1}'"))
|
||||
operator = ut.trim(sys.exec("echo '".. intfdata .. "' | awk -F';' '{print $2}'"))
|
||||
phonenumber = ut.trim(sys.exec("echo '".. intfdata .. "' | awk -F';' '{print $3}'"))
|
||||
donglestate = ut.trim(sys.exec("echo '".. intfdata .. "' | awk -F';' '{print $4}'"))
|
||||
networktype = ut.trim(sys.exec("echo '".. intfdata .. "' | awk -F';' '{print $5}'"))
|
||||
end
|
||||
end
|
||||
elseif gateway == "" then
|
||||
gw_ping = "DOWN"
|
||||
|
@ -1062,24 +1070,26 @@ function interfaces_status()
|
|||
local proto = section['proto']
|
||||
if proto == "qmi" then
|
||||
local device = section['device']
|
||||
intfdata = sys.exec("omr-qmi " .. device .. " | tr -d '\n'")
|
||||
intfdata = ut.trim(sys.exec("omr-qmi " .. device .. " all"))
|
||||
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'")
|
||||
signal = ut.trim(sys.exec("echo '".. intfdata .. "' | awk -F';' '{print $1}'"))
|
||||
operator = ut.trim(sys.exec("echo '".. intfdata .. "' | awk -F';' '{print $2}'"))
|
||||
phonenumber = ut.trim(sys.exec("echo '".. intfdata .. "' | awk -F';' '{print $3}'"))
|
||||
donglestate = ut.trim(sys.exec("echo '".. intfdata .. "' | awk -F';' '{print $4}'"))
|
||||
networktype = ut.trim(sys.exec("echo '".. intfdata .. "' | awk -F';' '{print $5}'"))
|
||||
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']
|
||||
intfdata = sys.exec("omr-modemmanager " .. device .. " | tr -d '\n'")
|
||||
intfdata = ut.trim(sys.exec("omr-modemmanager " .. device .. " all"))
|
||||
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'")
|
||||
signal = ut.trim(sys.exec("echo '".. intfdata .. "' | awk -F';' '{print $1}'"))
|
||||
operator = ut.trim(sys.exec("echo '".. intfdata .. "' | awk -F';' '{print $2}'"))
|
||||
phonenumber = ut.trim(sys.exec("echo '".. intfdata .. "' | awk -F';' '{print $3}'"))
|
||||
donglestate = ut.trim(sys.exec("echo '".. intfdata .. "' | awk -F';' '{print $4}'"))
|
||||
networktype = ut.trim(sys.exec("echo '".. intfdata .. "' | awk -F';' '{print $5}'"))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1224,6 +1234,7 @@ function interfaces_status()
|
|||
operator = operator,
|
||||
phonenumber = phonenumber,
|
||||
donglestate = donglestate,
|
||||
networktype = networktype,
|
||||
}
|
||||
if ifname ~= nil and ifname:match("^tun.*") then
|
||||
table.insert(mArray.tunnels, data);
|
||||
|
|
Loading…
Reference in a new issue