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