mirror of
				https://github.com/Ysurac/openmptcprouter-feeds.git
				synced 2025-03-09 15:40:03 +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…
	
	Add table
		Add a link
		
	
		Reference in a new issue