mirror of
				https://github.com/billz/raspap-webgui.git
				synced 2025-03-01 10:31:47 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			96 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/bin/bash
 | 
						|
# Information about HUAWEI hilink
 | 
						|
# -------------------------------
 | 
						|
# get info about the device and signal
 | 
						|
# parameter: $1 - "connected", "device", "ipaddress", "mode", "signal"  (see case statement below)
 | 
						|
#            -u,--user - username
 | 
						|
#            -P,--password - password
 | 
						|
#            -p,--pin - SIM pin
 | 
						|
#            -h,--host - host ip address for API calls (optional)
 | 
						|
# returns the value of the parameter, or "none" if not found or empty
 | 
						|
#
 | 
						|
# All device informations are buffered for 5 secs to speed up subsequent calls
 | 
						|
#
 | 
						|
# zbchristian 2021
 | 
						|
 | 
						|
function _setAPIParams() {
 | 
						|
    if [ ! -z "$hostip" ]; then hilink_host="$hostip"; fi
 | 
						|
    if [ ! -z "$username" ]; then hilink_user="$username"; fi
 | 
						|
    if [ ! -z "$password" ]; then hilink_password="$password"; fi
 | 
						|
    if [ ! -z "$simpin" ]; then hilink_pin="$simpin"; fi
 | 
						|
}
 | 
						|
 | 
						|
if [ -z "$1" ]; then echo "none"; exit; fi
 | 
						|
property="${1,,}"
 | 
						|
shift
 | 
						|
hostip="192.168.8.1"
 | 
						|
while [ -n "$1" ]; do
 | 
						|
    case "$1" in
 | 
						|
        -u|--user)      username="$2"; shift ;;
 | 
						|
        -P|--password)  password="$2"; shift ;;
 | 
						|
        -p|--pin)       simpin="$2"; shift ;;
 | 
						|
        -h|--host)      hostip="$2"; shift ;;
 | 
						|
    esac
 | 
						|
    shift
 | 
						|
done
 | 
						|
 | 
						|
status="no valid option given"
 | 
						|
result="none"
 | 
						|
hostip="192.168.8.1"
 | 
						|
if [ "$opt" = "connected" ]; then
 | 
						|
    source /usr/local/sbin/huawei_hilink_api.sh
 | 
						|
    _setAPIParams
 | 
						|
    if ! _initHilinkAPI; then echo "none"; exit; fi
 | 
						|
    result=$(_getMobileDataStatus)
 | 
						|
    _closeHilinkAPI
 | 
						|
else
 | 
						|
    info_file="/tmp/huawei_infos_${hostip}_$(id -u).dat"
 | 
						|
    if [ -f "$info_file" ]; then
 | 
						|
        age=$(( $(date +%s) - $(stat $info_file -c %Y) )) 
 | 
						|
        if [[ $age -gt 10 ]]; then rm -f $info_file; fi
 | 
						|
    fi
 | 
						|
 | 
						|
    if [ -f "$info_file" ]; then
 | 
						|
        infos=$(cat $info_file)
 | 
						|
    else
 | 
						|
        source /usr/local/sbin/huawei_hilink_api.sh
 | 
						|
        _setAPIParams
 | 
						|
        if ! _initHilinkAPI; then echo "none"; exit; fi
 | 
						|
        infos=$(_getAllInformations)
 | 
						|
        _closeHilinkAPI
 | 
						|
        if [ ! -z "$infos" ]; then echo -n "$infos" > $info_file; fi
 | 
						|
    fi
 | 
						|
 | 
						|
    case "$property" in
 | 
						|
        device|devicename)
 | 
						|
          key="devicename"
 | 
						|
          ;;
 | 
						|
        ipaddress|wanipaddress)
 | 
						|
          key="wanipaddress"
 | 
						|
          ;;
 | 
						|
        mode)
 | 
						|
          key="workmode"
 | 
						|
          ;;
 | 
						|
        telnumber)
 | 
						|
          key="msisdn"
 | 
						|
          ;;
 | 
						|
        imei|imsi|rssi|rsrq|rsrp|sinr|ecio)
 | 
						|
          key="$property"
 | 
						|
          ;;
 | 
						|
        signal)
 | 
						|
          key="rsrq"
 | 
						|
        ;;
 | 
						|
        operator|fullname)
 | 
						|
          key="fullname"
 | 
						|
        ;;
 | 
						|
        *)
 | 
						|
          key="device"
 | 
						|
        ;;
 | 
						|
      esac
 | 
						|
      if [ -z "$key" ]; then result="none"; fi
 | 
						|
      result=$(echo "$infos" | sed -rn 's/'$key'=\"([^ \s]*)\"/\1/ip')
 | 
						|
      if [ -z "$result" ]; then result="none"; fi
 | 
						|
fi
 | 
						|
echo -n "$result"
 | 
						|
 |