mirror of
https://github.com/billz/raspap-webgui.git
synced 2023-10-10 13:37:24 +02: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"
|
|
|