mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-06 11:24:07 +08:00
532 lines
14 KiB
Bash
Executable File
532 lines
14 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
#
|
|
# (c) 2010-2025 Cezary Jackiewicz <cezary@eko.one.pl>
|
|
#
|
|
# (c) 2021-2025 modified by Rafał Wabik - IceG - From eko.one.pl forum
|
|
#
|
|
|
|
|
|
band4g() {
|
|
# see https://en.wikipedia.org/wiki/LTE_frequency_bands
|
|
echo -n "B${1}"
|
|
case "${1}" in
|
|
"1") echo " (2100 MHz)";;
|
|
"2") echo " (1900 MHz)";;
|
|
"3") echo " (1800 MHz)";;
|
|
"4") echo " (1700 MHz)";;
|
|
"5") echo " (850 MHz)";;
|
|
"7") echo " (2600 MHz)";;
|
|
"8") echo " (900 MHz)";;
|
|
"11") echo " (1500 MHz)";;
|
|
"12") echo " (700 MHz)";;
|
|
"13") echo " (700 MHz)";;
|
|
"14") echo " (700 MHz)";;
|
|
"17") echo " (700 MHz)";;
|
|
"18") echo " (850 MHz)";;
|
|
"19") echo " (850 MHz)";;
|
|
"20") echo " (800 MHz)";;
|
|
"21") echo " (1500 MHz)";;
|
|
"24") echo " (1600 MHz)";;
|
|
"25") echo " (1900 MHz)";;
|
|
"26") echo " (850 MHz)";;
|
|
"28") echo " (700 MHz)";;
|
|
"29") echo " (700 MHz)";;
|
|
"30") echo " (2300 MHz)";;
|
|
"31") echo " (450 MHz)";;
|
|
"32") echo " (1500 MHz)";;
|
|
"34") echo " (2000 MHz)";;
|
|
"37") echo " (1900 MHz)";;
|
|
"38") echo " (2600 MHz)";;
|
|
"39") echo " (1900 MHz)";;
|
|
"40") echo " (2300 MHz)";;
|
|
"41") echo " (2500 MHz)";;
|
|
"42") echo " (3500 MHz)";;
|
|
"43") echo " (3700 MHz)";;
|
|
"46") echo " (5200 MHz)";;
|
|
"47") echo " (5900 MHz)";;
|
|
"48") echo " (3500 MHz)";;
|
|
"50") echo " (1500 MHz)";;
|
|
"51") echo " (1500 MHz)";;
|
|
"53") echo " (2400 MHz)";;
|
|
"54") echo " (1600 MHz)";;
|
|
"65") echo " (2100 MHz)";;
|
|
"66") echo " (1700 MHz)";;
|
|
"67") echo " (700 MHz)";;
|
|
"69") echo " (2600 MHz)";;
|
|
"70") echo " (1700 MHz)";;
|
|
"71") echo " (600 MHz)";;
|
|
"72") echo " (450 MHz)";;
|
|
"73") echo " (450 MHz)";;
|
|
"74") echo " (1500 MHz)";;
|
|
"75") echo " (1500 MHz)";;
|
|
"76") echo " (1500 MHz)";;
|
|
"85") echo " (700 MHz)";;
|
|
"87") echo " (410 MHz)";;
|
|
"88") echo " (410 MHz)";;
|
|
"103") echo " (700 MHz)";;
|
|
"106") echo " (900 MHz)";;
|
|
"*") echo "";;
|
|
esac
|
|
}
|
|
|
|
band5g() {
|
|
# see https://en.wikipedia.org/wiki/5G_NR_frequency_bands
|
|
echo -n "n${1}"
|
|
case "${1}" in
|
|
"1") echo " (2100 MHz)";;
|
|
"2") echo " (1900 MHz)";;
|
|
"3") echo " (1800 MHz)";;
|
|
"5") echo " (850 MHz)";;
|
|
"7") echo " (2600 MHz)";;
|
|
"8") echo " (900 MHz)";;
|
|
"12") echo " (700 MHz)";;
|
|
"13") echo " (700 MHz)";;
|
|
"14") echo " (700 MHz)";;
|
|
"18") echo " (850 MHz)";;
|
|
"20") echo " (800 MHz)";;
|
|
"24") echo " (1600 MHz)";;
|
|
"25") echo " (1900 MHz)";;
|
|
"26") echo " (850 MHz)";;
|
|
"28") echo " (700 MHz)";;
|
|
"29") echo " (700 MHz)";;
|
|
"30") echo " (2300 MHz)";;
|
|
"34") echo " (2100 MHz)";;
|
|
"38") echo " (2600 MHz)";;
|
|
"39") echo " (1900 MHz)";;
|
|
"40") echo " (2300 MHz)";;
|
|
"41") echo " (2500 MHz)";;
|
|
"46") echo " (5200 MHz)";;
|
|
"47") echo " (5900 MHz)";;
|
|
"48") echo " (3500 MHz)";;
|
|
"50") echo " (1500 MHz)";;
|
|
"51") echo " (1500 MHz)";;
|
|
"53") echo " (2400 MHz)";;
|
|
"54") echo " (1600 MHz)";;
|
|
"65") echo " (2100 MHz)";;
|
|
"66") echo " (1700/2100 MHz)";;
|
|
"67") echo " (700 MHz)";;
|
|
"70") echo " (2000 MHz)";;
|
|
"71") echo " (600 MHz)";;
|
|
"74") echo " (1500 MHz)";;
|
|
"75") echo " (1500 MHz)";;
|
|
"76") echo " (1500 MHz)";;
|
|
"77") echo " (3700 MHz)";;
|
|
"78") echo " (3500 MHz)";;
|
|
"79") echo " (4700 MHz)";;
|
|
"80") echo " (1800 MHz)";;
|
|
"81") echo " (900 MHz)";;
|
|
"82") echo " (800 MHz)";;
|
|
"83") echo " (700 MHz)";;
|
|
"84") echo " (2100 MHz)";;
|
|
"85") echo " (700 MHz)";;
|
|
"86") echo " (1700 MHz)";;
|
|
"89") echo " (850 MHz)";;
|
|
"90") echo " (2500 MHz)";;
|
|
"91") echo " (800/1500 MHz)";;
|
|
"92") echo " (800/1500 MHz)";;
|
|
"93") echo " (900/1500 MHz)";;
|
|
"94") echo " (900/1500 MHz)";;
|
|
"95") echo " (2100 MHz)";;
|
|
"96") echo " (6000 MHz)";;
|
|
"97") echo " (2300 MHz)";;
|
|
"98") echo " (1900 MHz)";;
|
|
"99") echo " (1600 MHz)";;
|
|
"100") echo " (900 MHz)";;
|
|
"101") echo " (1900 MHz)";;
|
|
"102") echo " (6200 MHz)";;
|
|
"104") echo " (6700 MHz)";;
|
|
"105") echo " (600 MHz)";;
|
|
"106") echo " (900 MHz)";;
|
|
"109") echo " (700/1500 MHz)";;
|
|
"257") echo " (28 GHz)";;
|
|
"258") echo " (26 GHz)";;
|
|
"259") echo " (41 GHz)";;
|
|
"260") echo " (39 GHz)";;
|
|
"261") echo " (28 GHz)";;
|
|
"262") echo " (47 GHz)";;
|
|
"263") echo " (60 GHz)";;
|
|
"*") echo "";;
|
|
esac
|
|
}
|
|
|
|
getdevicevendorproduct() {
|
|
devname="$(basename $1)"
|
|
case "$devname" in
|
|
'mhi_DUN'*)
|
|
devpath=$(find /sys/devices -name "$devname" -type d 2>/dev/null | head -1)
|
|
target_dir=${devpath%/*/*/*}
|
|
V=$(cat "$target_dir/vendor")
|
|
D=$(cat "$target_dir/device")
|
|
echo "pci/${V/0x/}${D/0x/}"
|
|
;;
|
|
'wwan'*'at'*)
|
|
devpath="$(readlink -f /sys/class/wwan/$devname/device)"
|
|
T=${devpath%/*/*/*}
|
|
if [ -e $T/vendor ] && [ -e $T/device ]; then
|
|
V=$(cat $T/vendor)
|
|
D=$(cat $T/device)
|
|
echo "pci/${V/0x/}${D/0x/}"
|
|
fi
|
|
;;
|
|
'ttyACM'*)
|
|
devpath="$(readlink -f /sys/class/tty/$devname/device)"
|
|
T=${devpath%/*}
|
|
echo "usb/$(cat $T/idVendor)$(cat $T/idProduct)"
|
|
;;
|
|
'tty'*)
|
|
devpath="$(readlink -f /sys/class/tty/$devname/device)"
|
|
T=${devpath%/*/*}
|
|
echo "usb/$(cat $T/idVendor)$(cat $T/idProduct)"
|
|
;;
|
|
*)
|
|
devpath="$(readlink -f /sys/class/usbmisc/$devname/device)"
|
|
T=${devpath%/*}
|
|
echo "usb/$(cat $T/idVendor)$(cat $T/idProduct)"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
RES="/usr/share/3ginfo-lite"
|
|
|
|
DEVICE=$($RES/detect.sh)
|
|
if [ -z "$DEVICE" ]; then
|
|
echo '{"error":"Device not found"}'
|
|
exit 0
|
|
fi
|
|
|
|
O=""
|
|
if [ -e /usr/bin/sms_tool ]; then
|
|
O=$(sms_tool -D -d $DEVICE at "AT+CPIN?;+CSQ;+COPS=3,0;+COPS?;+COPS=3,2;+COPS?;+CREG=2;+CREG?")
|
|
else
|
|
O=$(gcom -d $DEVICE -s $RES/info.gcom 2>/dev/null)
|
|
fi
|
|
|
|
getpath() {
|
|
devname="$(basename $1)"
|
|
case "$devname" in
|
|
'wwan'*'at'*)
|
|
devpath="$(readlink -f /sys/class/wwan/$devname/device)"
|
|
P=${devpath%/*/*/*}
|
|
;;
|
|
'ttyACM'*)
|
|
devpath="$(readlink -f /sys/class/tty/$devname/device)"
|
|
P=${devpath%/*}
|
|
;;
|
|
'tty'*)
|
|
devpath="$(readlink -f /sys/class/tty/$devname/device)"
|
|
P=${devpath%/*/*}
|
|
;;
|
|
*)
|
|
devpath="$(readlink -f /sys/class/usbmisc/$devname/device/)"
|
|
P=${devpath%/*}
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# --- modemdefine - WAN config ---
|
|
CONFIG=modemdefine
|
|
MODEMZ=$(uci show $CONFIG 2>/dev/null | grep -o "@modemdefine\[[0-9]*\]\.modem" | wc -l | xargs)
|
|
if [[ $MODEMZ -gt 1 ]]; then
|
|
SEC=$(uci -q get modemdefine.@general[0].main_network)
|
|
fi
|
|
if [[ $MODEMZ -eq 0 ]]; then
|
|
SEC=$(uci -q get 3ginfo.@3ginfo[0].network)
|
|
fi
|
|
if [[ $MODEMZ -eq 1 ]]; then
|
|
SEC=$(uci -q get modemdefine.@modemdefine[0].network)
|
|
fi
|
|
|
|
if [ -z "$SEC" ]; then
|
|
getpath $DEVICE
|
|
PORIG=$P
|
|
for DEV in /sys/class/tty/* /sys/class/usbmisc/*; do
|
|
getpath "/dev/"${DEV##/*/}
|
|
if [ "x$PORIG" == "x$P" ]; then
|
|
SEC=$(uci show network | grep "/dev/"${DEV##/*/} | cut -f2 -d.)
|
|
[ -n "$SEC" ] && break
|
|
fi
|
|
done
|
|
fi
|
|
# --- modemdefine config ---
|
|
|
|
CONN_TIME="-"
|
|
RX="-"
|
|
TX="-"
|
|
|
|
NETUP=$(ifstatus $SEC | grep "\"up\": true")
|
|
if [ -n "$NETUP" ]; then
|
|
|
|
CT=$(uci -q -P /var/state/ get network.$SEC.connect_time)
|
|
if [ -z $CT ]; then
|
|
CT=$(ifstatus $SEC | awk -F[:,] '/uptime/ {print $2}' | xargs)
|
|
else
|
|
UPTIME=$(cut -d. -f1 /proc/uptime)
|
|
CT=$((UPTIME-CT))
|
|
fi
|
|
if [ ! -z $CT ]; then
|
|
|
|
D=$(expr $CT / 60 / 60 / 24)
|
|
H=$(expr $CT / 60 / 60 % 24)
|
|
M=$(expr $CT / 60 % 60)
|
|
S=$(expr $CT % 60)
|
|
CONN_TIME=$(printf "%dd, %02d:%02d:%02d" $D $H $M $S)
|
|
CONN_TIME_SINCE=$(date "+%Y%m%d%H%M%S" -d "@$(($(date +%s) - CT))")
|
|
|
|
fi
|
|
|
|
IFACE=$(ifstatus $SEC | awk -F\" '/l3_device/ {print $4}')
|
|
if [ -n "$IFACE" ]; then
|
|
RX=$(ifconfig $IFACE | awk -F[\(\)] '/bytes/ {printf "%s",$2}')
|
|
TX=$(ifconfig $IFACE | awk -F[\(\)] '/bytes/ {printf "%s",$4}')
|
|
fi
|
|
fi
|
|
|
|
# CSQ
|
|
CSQ=$(echo "$O" | awk -F[,\ ] '/^\+CSQ/ {print $2}')
|
|
|
|
[ "x$CSQ" == "x" ] && CSQ=-1
|
|
if [ $CSQ -ge 0 -a $CSQ -le 31 ]; then
|
|
CSQ_PER=$(($CSQ * 100/31))
|
|
else
|
|
CSQ=""
|
|
CSQ_PER=""
|
|
fi
|
|
|
|
# COPS numeric
|
|
# see https://mcc-mnc.com/
|
|
# Update: 11/11/2024 items: 3121
|
|
COPS=""
|
|
COPS_MCC=""
|
|
COPS_MNC=""
|
|
COPS_NUM=$(echo "$O" | awk -F[\"] '/^\+COPS:\s*.,2/ {print $2}')
|
|
if [ -n "$COPS_NUM" ]; then
|
|
COPS_MCC=${COPS_NUM:0:3}
|
|
COPS_MNC=${COPS_NUM:3:3}
|
|
fi
|
|
|
|
TCOPS=$(echo "$O" | awk -F[\"] '/^\+COPS:\s*.,0/ {print $2}')
|
|
[ "x$TCOPS" != "x" ] && COPS="$TCOPS"
|
|
|
|
if [ -z "$COPS" ]; then
|
|
if [ -n "$COPS_NUM" ]; then
|
|
COPS=$(awk -F[\;] '/^'$COPS_NUM';/ {print $3}' $RES/mccmnc.dat | xargs)
|
|
LOC=$(awk -F[\;] '/^'$COPS_NUM';/ {print $2}' $RES/mccmnc.dat)
|
|
fi
|
|
fi
|
|
[ -z "$COPS" ] && COPS=$COPS_NUM
|
|
case "$COPS" in
|
|
*\ *)
|
|
COPS=$(echo "$COPS" | awk '{if(NF==2 && tolower($1)==tolower($2)){print $1}else{print $0}}')
|
|
;;
|
|
esac
|
|
|
|
isp=$(sms_tool -d "$DEVICE" at "AT+COPS?" | sed -n '2p' | cut -d '"' -f2 | tr -d '\r')
|
|
isp_num="$COPS_MCC $COPS_MNC"
|
|
isp_numws="$COPS_MCC$COPS_MNC"
|
|
|
|
case "$COPS" in
|
|
*[!0-9]* | '')
|
|
# Non-numeric characters or is blank
|
|
;;
|
|
*)
|
|
if [ "$COPS" = "$isp_num" ] || [ "$COPS" = "$isp_numws" ]; then
|
|
if [ -n "$isp" ]; then
|
|
COPS=$(awk -F[\;] '/^'"$isp"';/ {print $3}' $RES/mccmnc.dat | xargs)
|
|
LOC=$(awk -F[\;] '/^'"$isp"';/ {print $2}' $RES/mccmnc.dat)
|
|
fi
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
|
|
# operator location from temporary config
|
|
LOCATIONFILE=/tmp/location
|
|
if [ -e "$LOCATIONFILE" ]; then
|
|
touch $LOCATIONFILE
|
|
LOC=$(cat $LOCATIONFILE)
|
|
if [ -n "$LOC" ]; then
|
|
LOC=$(cat $LOCATIONFILE)
|
|
if [[ $LOC == "-" ]]; then
|
|
rm $LOCATIONFILE
|
|
LOC=$(awk -F[\;] '/^'$COPS_NUM';/ {print $2}' $RES/mccmnc.dat)
|
|
if [ -n "$LOC" ]; then
|
|
echo "$LOC" > /tmp/location
|
|
fi
|
|
else
|
|
LOC=$(awk -F[\;] '/^'$COPS_NUM';/ {print $2}' $RES/mccmnc.dat)
|
|
if [ -n "$LOC" ]; then
|
|
echo "$LOC" > /tmp/location
|
|
fi
|
|
fi
|
|
fi
|
|
else
|
|
case "$COPS_MCC$COPS_MNC" in
|
|
*[!0-9]* | '')
|
|
# Non-numeric characters or is blank
|
|
;;
|
|
*)
|
|
if [ -n "$LOC" ]; then
|
|
LOC=$(awk -F[\;] '/^'"$COPS_MCC$COPS_MNC"';/ {print $2}' $RES/mccmnc.dat)
|
|
echo "$LOC" > /tmp/location
|
|
else
|
|
echo "-" > /tmp/location
|
|
fi
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
T=$(echo "$O" | awk -F[,\ ] '/^\+CPIN:/ {print $0;exit}' | xargs)
|
|
if [ -n "$T" ]; then
|
|
[ "$T" == "+CPIN: READY" ] || REG=$(echo "$T" | cut -f2 -d: | xargs)
|
|
fi
|
|
|
|
T=$(echo "$O" | awk -F[,\ ] '/^\+CME ERROR:/ {print $0;exit}')
|
|
if [ -n "$T" ]; then
|
|
case "$T" in
|
|
"+CME ERROR: 10"*) REG="SIM not inserted";;
|
|
"+CME ERROR: 11"*) REG="SIM PIN required";;
|
|
"+CME ERROR: 12"*) REG="SIM PUK required";;
|
|
"+CME ERROR: 13"*) REG="SIM failure";;
|
|
"+CME ERROR: 14"*) REG="SIM busy";;
|
|
"+CME ERROR: 15"*) REG="SIM wrong";;
|
|
"+CME ERROR: 17"*) REG="SIM PIN2 required";;
|
|
"+CME ERROR: 18"*) REG="SIM PUK2 required";;
|
|
*) REG=$(echo "$T" | cut -f2 -d: | xargs);;
|
|
esac
|
|
fi
|
|
|
|
# CREG
|
|
eval $(echo "$O" | busybox awk -F[,] '/^\+CREG/ {gsub(/[[:space:]"]+/,"");printf "T=\"%d\";LAC_HEX=\"%X\";CID_HEX=\"%X\";LAC_DEC=\"%d\";CID_DEC=\"%d\";MODE_NUM=\"%d\"", $2, "0x"$3, "0x"$4, "0x"$3, "0x"$4, $5}')
|
|
case "$T" in
|
|
0*) REG="0";;
|
|
1*) REG="1";;
|
|
2*) REG="2";;
|
|
3*) REG="3";;
|
|
5*) REG="5";;
|
|
6*) REG="6";;
|
|
7*) REG="7";;
|
|
*) REG="";;
|
|
esac
|
|
|
|
# MODE
|
|
if [ -z "$MODE_NUM" ] || [ "x$MODE_NUM" == "x0" ]; then
|
|
# MODE_NUM=$(echo "$O" | awk -F[,] '/^\+COPS/ {print $4;exit}' | xargs)
|
|
MODE_NUM=$(echo "$O" | awk -F[,] '/^\+COPS: 0,2/ {print $4;exit}' | xargs)
|
|
fi
|
|
case "$MODE_NUM" in
|
|
2*) MODE="UMTS";;
|
|
3*) MODE="EDGE";;
|
|
4*) MODE="HSDPA";;
|
|
5*) MODE="HSUPA";;
|
|
6*) MODE="HSPA";;
|
|
7*) MODE="LTE";;
|
|
*) MODE="-";;
|
|
esac
|
|
|
|
# TAC
|
|
OTX=$(sms_tool -d $DEVICE at "at+cereg")
|
|
TAC=$(echo "$OTX" | awk -F[,] '/^\+CEREG/ {printf "%s", toupper($3)}' | sed 's/[^A-F0-9]//g')
|
|
if [ "x$TAC" != "x" ]; then
|
|
TAC_HEX=$(printf %d 0x$TAC)
|
|
else
|
|
TAC="-"
|
|
TAC_HEX="-"
|
|
fi
|
|
|
|
CONF_DEVICE=$(uci -q get 3ginfo.@3ginfo[0].device)
|
|
if echo "x$CONF_DEVICE" | grep -q "192.168."; then
|
|
if grep -q "Vendor=1bbb" /sys/kernel/debug/usb/devices; then
|
|
. $RES/modem/hilink/alcatel_hilink.sh $DEVICE
|
|
fi
|
|
if grep -q "Vendor=12d1" /sys/kernel/debug/usb/devices; then
|
|
. $RES/modem/hilink/huawei_hilink.sh $DEVICE
|
|
fi
|
|
if grep -q "Vendor=19d2" /sys/kernel/debug/usb/devices; then
|
|
. $RES/modem/hilink/zte.sh $DEVICE
|
|
fi
|
|
SEC=$(uci -q get 3ginfo.@3ginfo[0].network)
|
|
SEC=${SEC:-wan}
|
|
else
|
|
|
|
if [ -e /usr/bin/sms_tool ]; then
|
|
REGOK=0
|
|
[ "x$REG" == "x1" ] || [ "x$REG" == "x5" ] || [ "x$REG" == "x6" ] || [ "x$REG" == "x7" ] && REGOK=1
|
|
VIDPID=$(getdevicevendorproduct $DEVICE)
|
|
if [ -e "$RES/modem/$VIDPID" ]; then
|
|
case $(cat /tmp/sysinfo/board_name) in
|
|
"zte,mf289f")
|
|
. "$RES/modem/usb/19d21485"
|
|
;;
|
|
*)
|
|
. "$RES/modem/$VIDPID"
|
|
;;
|
|
esac
|
|
fi
|
|
fi
|
|
|
|
fi
|
|
|
|
sanitize_string() {
|
|
[ -z "$1" ] && echo "-" || echo "$1" | tr -d '\r\n'
|
|
}
|
|
sanitize_number() {
|
|
[ -z "$1" ] && echo "-" || echo "$1"
|
|
}
|
|
|
|
cat <<EOF
|
|
{
|
|
"conn_time":"$(sanitize_string "$CONN_TIME")",
|
|
"conn_time_sec":"$(sanitize_number "$CT")",
|
|
"conn_time_since":"$(sanitize_string "$CONN_TIME_SINCE")",
|
|
"rx":"$(sanitize_number "$RX")",
|
|
"tx":"$(sanitize_number "$TX")",
|
|
"modem":"$(sanitize_string "$MODEL")",
|
|
"mtemp":"$(sanitize_string "$TEMP")",
|
|
"firmware":"$(sanitize_string "$FW")",
|
|
"cport":"$(sanitize_string "$DEVICE")",
|
|
"protocol":"$(sanitize_string "$PROTO")",
|
|
"csq":"$(sanitize_number "$CSQ")",
|
|
"signal":"$(sanitize_number "$CSQ_PER")",
|
|
"operator_name":"$(sanitize_string "$COPS")",
|
|
"operator_mcc":"$(sanitize_string "$COPS_MCC")",
|
|
"operator_mnc":"$(sanitize_string "$COPS_MNC")",
|
|
"location":"$(sanitize_string "$LOC")",
|
|
"mode":"$(sanitize_string "$MODE")",
|
|
"registration":"$(sanitize_string "$REG")",
|
|
"simslot":"$(sanitize_string "$SSIM")",
|
|
"imei":"$(sanitize_string "$NR_IMEI")",
|
|
"imsi":"$(sanitize_string "$NR_IMSI")",
|
|
"iccid":"$(sanitize_string "$NR_ICCID")",
|
|
"lac_dec":"$(sanitize_number "$LAC_DEC")",
|
|
"lac_hex":"$(sanitize_string "$LAC_HEX")",
|
|
"tac_dec":"$(sanitize_number "$TAC_DEC")",
|
|
"tac_hex":"$(sanitize_string "$TAC_HEX")",
|
|
"tac_h":"$(sanitize_string "$T_HEX")",
|
|
"tac_d":"$(sanitize_number "$T_DEC")",
|
|
"cid_dec":"$(sanitize_number "$CID_DEC")",
|
|
"cid_hex":"$(sanitize_string "$CID_HEX")",
|
|
"pci":"$(sanitize_number "$PCI")",
|
|
"earfcn":"$(sanitize_number "$EARFCN")",
|
|
"pband":"$(sanitize_string "$PBAND")",
|
|
"s1band":"$(sanitize_string "$S1BAND")",
|
|
"s1pci":"$(sanitize_number "$S1PCI")",
|
|
"s1earfcn":"$(sanitize_number "$S1EARFCN")",
|
|
"s2band":"$(sanitize_string "$S2BAND")",
|
|
"s2pci":"$(sanitize_number "$S2PCI")",
|
|
"s2earfcn":"$(sanitize_number "$S2EARFCN")",
|
|
"s3band":"$(sanitize_string "$S3BAND")",
|
|
"s3pci":"$(sanitize_number "$S3PCI")",
|
|
"s3earfcn":"$(sanitize_number "$S3EARFCN")",
|
|
"s4band":"$(sanitize_string "$S4BAND")",
|
|
"s4pci":"$(sanitize_number "$S4PCI")",
|
|
"s4earfcn":"$(sanitize_number "$S4EARFCN")",
|
|
"rsrp":"$(sanitize_number "$RSRP")",
|
|
"rsrq":"$(sanitize_number "$RSRQ")",
|
|
"rssi":"$(sanitize_number "$RSSI")",
|
|
"sinr":"$(sanitize_number "$SINR")"
|
|
}
|
|
EOF
|
|
exit 0
|
|
|