#!/bin/bash
#
# Log response of one or more USSD code to the systemlog. Multiple codes may be
# provided by using a semicolon delimiter (e.g. "<code1>;<code2>;...")

USSD_CODE=$(bglocalconf|grep "wan.cellular.monitor_ussd"|cut -d= -f2|xargs)
if [ "$USSD_CODE" ]; then
  MODEM_PATH=$(mmcli -L -K|grep "modem-list.value\[1\]"|cut -d: -f2|xargs)
  IFS=';' read -ra CODES <<< "$USSD_CODE"
  for code in "${CODES[@]}"; do
    if [ "$code" ]; then
      RESPONSE=$(mmcli -m $MODEM_PATH --3gpp-ussd-initiate="${code}")
      echo "USSD['${code}']: ${RESPONSE}"
      bgsystemlog -l INFO -s NETWORK -m "USSD['${code}']: ${RESPONSE}"
    fi
  done
fi
