From 4a90d86f56382ae4007ace104b3f5f9a7146fc3a Mon Sep 17 00:00:00 2001 From: Maarten van Gompel Date: Mon, 7 Dec 2020 17:50:36 +0100 Subject: [PATCH] Sane message when terminating call with unknown number and more verbose output to stderr from modem scripts --- scripts/modem/sxmo_modemcall.sh | 22 +++++++++++++++------- scripts/modem/sxmo_modemdial.sh | 1 + scripts/modem/sxmo_modemmonitor.sh | 7 +++++-- scripts/modem/sxmo_modemtext.sh | 3 ++- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/scripts/modem/sxmo_modemcall.sh b/scripts/modem/sxmo_modemcall.sh index 94919b2..334cc9a 100755 --- a/scripts/modem/sxmo_modemcall.sh +++ b/scripts/modem/sxmo_modemcall.sh @@ -19,6 +19,7 @@ fatalerr() { mmcli -m "$(modem_n)" --voice-delete-call "$CALLID" done alsactl --file /usr/share/sxmo/alsa/default_alsa_sound.conf restore + echo "$1">&2 notify-send "$1" setsid -f sh -c 'sleep 2; sxmo_statusbarupdate.sh' kill -9 0 @@ -32,7 +33,7 @@ gracefulexit() { modem_cmd_errcheck() { RES="$(mmcli "$@" 2>&1)" OK="$?" - echo "Command: mmcli $*" + echo "Command: mmcli $*">&2 if [ "$OK" != 0 ]; then fatalerr "Problem executing mmcli command!\n$RES"; fi echo "$RES" } @@ -75,7 +76,7 @@ toggleflagset() { acceptcall() { CALLID="$1" - echo "Attempting to initialize CALLID $CALLID" + echo "Attempting to initialize CALLID $CALLID">&2 DIRECTION="$( mmcli --voice-status -o "$CALLID" -K | grep call.properties.direction | @@ -85,12 +86,15 @@ acceptcall() { if [ "$DIRECTION" = "outgoing" ]; then modem_cmd_errcheck -m "$(modem_n)" -o "$CALLID" --start log_event "call_start" "$CALLID" + echo "Started call $CALLID">&2 elif [ "$DIRECTION" = "incoming" ]; then if [ -x "$XDG_CONFIG_HOME/sxmo/hooks/pickup" ]; then + echo "Invoking pickup hook (async)">&2 "$XDG_CONFIG_HOME/sxmo/hooks/pickup" & fi modem_cmd_errcheck -m "$(modem_n)" -o "$CALLID" --accept log_event "call_pickup" "$CALLID" + echo "Picked up call $CALLID">&2 else fatalerr "Couldn't initialize call with callid <$CALLID>; unknown direction <$DIRECTION>" fi @@ -132,15 +136,19 @@ incallmonitor() { while true; do sxmo_statusbarupdate.sh if mmcli -m "$(modem_n)" -K -o "$CALLID" | grep -E "^call.properties.state.+terminated"; then - fatalerr "Call with $NUMBER terminated" + if [ "$NUMBER" = "--" ]; then + fatalerr "Call with unknown number terminated" + else + fatalerr "Call with $NUMBER terminated" + fi fi - echo "Call still in progress" + echo "Call still in progress">&2 sleep 3 done } incallmenuloop() { - echo "Current flags are $FLAGS" + echo "Current flags are $FLAGS">&2 CHOICES=" $([ "$WINDOWIFIED" = 0 ] && echo Windowify || echo Unwindowify) ^ togglewindowify $([ "$WINDOWIFIED" = 0 ] && echo 'Screenlock ^ togglewindowify; sxmo_screenlock &') @@ -165,11 +173,11 @@ incallmenuloop() { dmenu -idx $DMENUIDX -l 14 "$([ "$WINDOWIFIED" = 0 ] && echo "-c" || echo "-wm")" -fn "Terminus-30" -p "$NUMBER" | ( PICKED="$(cat)"; - echo "Picked is $PICKED" + echo "Picked is $PICKED">&2 echo "$PICKED" | grep -Ev "." CMD=$(echo "$CHOICES" | grep "$PICKED" | cut -d'^' -f2) DMENUIDX=$(echo "$(echo "$CHOICES" | grep -n "$PICKED" | cut -d ':' -f1)" - 1 | bc) - echo "Eval in call context: $CMD" + echo "Eval in call context: $CMD">&2 eval "$CMD" incallmenuloop ) & wait # E.g. bg & wait to allow for SIGINT propogation diff --git a/scripts/modem/sxmo_modemdial.sh b/scripts/modem/sxmo_modemdial.sh index 3117279..4ac5444 100755 --- a/scripts/modem/sxmo_modemdial.sh +++ b/scripts/modem/sxmo_modemdial.sh @@ -4,6 +4,7 @@ trap "gracefulexit" INT TERM fatalerr() { # E.g. hangup all calls, switch back to default audio, notify user, and die mmcli -m "$(mmcli -L | grep -oE 'Modem\/([0-9]+)' | cut -d'/' -f2)" --voice-hangup-all + echo "$1" >&2 notify-send "$1" (sleep 0.5; sxmo_statusbarupdate.sh) & kill -9 0 diff --git a/scripts/modem/sxmo_modemmonitor.sh b/scripts/modem/sxmo_modemmonitor.sh index ae001bd..b4cb2fe 100755 --- a/scripts/modem/sxmo_modemmonitor.sh +++ b/scripts/modem/sxmo_modemmonitor.sh @@ -4,12 +4,13 @@ NOTIFDIR="$XDG_DATA_HOME"/sxmo/notifications trap "gracefulexit" INT TERM err() { + echo "$1">&2 notify-send "$1" gracefulexit } gracefulexit() { - echo "gracefully exiting $0!" + echo "gracefully exiting $0!">&2 kill -9 0 } @@ -71,6 +72,7 @@ checkforincomingcalls() { INCOMINGNUMBER=$(lookupnumberfromcallid "$VOICECALLID") if [ -x "$XDG_CONFIG_HOME/sxmo/hooks/ring" ]; then + echo "Invoking ring hook (async)">&2 "$XDG_CONFIG_HOME/sxmo/hooks/ring" "$(sxmo_contacts.sh | grep -E "^${INCOMINGNUMBER//+/\\+}:")" & else sxmo_vibratepine 2500 & @@ -86,7 +88,7 @@ checkforincomingcalls() { none \ "Pickup - $(sxmo_contacts.sh | grep -E "^${INCOMINGNUMBER//+/\\+}:")" & - echo "Number: $INCOMINGNUMBER (VOICECALLID: $VOICECALLID)" + echo "Call from number: $INCOMINGNUMBER (VOICECALLID: $VOICECALLID)">&2 } checkfornewtexts() { @@ -109,6 +111,7 @@ checkfornewtexts() { TIME="$(echo "$TEXTDATA" | grep sms.properties.timestamp | sed -E 's/^sms\.properties\.timestamp\s+:\s+//')" mkdir -p "$LOGDIR/$NUM" + echo "Text from number: $NUM (TEXTID: $TEXTID)">&2 printf %b "Received from $NUM at $TIME:\n$TEXT\n\n" >> "$LOGDIR/$NUM/sms.txt" printf %b "$TIME\trecv_txt\t$NUM\t${#TEXT} chars\n" >> "$LOGDIR/modemlog.tsv" mmcli -m "$(modem_n)" --messaging-delete-sms="$TEXTID" diff --git a/scripts/modem/sxmo_modemtext.sh b/scripts/modem/sxmo_modemtext.sh index 02e51e4..bccefb8 100755 --- a/scripts/modem/sxmo_modemtext.sh +++ b/scripts/modem/sxmo_modemtext.sh @@ -12,6 +12,7 @@ menu() { } err() { + echo "$1">&2 echo "$1" | menu dmenu -fn Terminus-20 -c -l 10 kill $$ } @@ -72,7 +73,7 @@ sendtextmenu() { printf %b "Edit Message ($(echo "$TEXT" | head -n1))\nSend to → $NUMBER\nSave as Draft\nCancel" | menu dmenu -c -idx 1 -p "Confirm" -fn "Terminus-20" -l 10 )" - echo "$CONFIRM" | grep -E "^Send" && (echo "$TEXT" | sxmo_modemsendsms.sh "$NUMBER" -) && exit 0 + echo "$CONFIRM" | grep -E "^Send" && (echo "$TEXT" | sxmo_modemsendsms.sh "$NUMBER" -) && echo "Sent text to $NUMBER">&2 && exit 0 echo "$CONFIRM" | grep -E "^Cancel$" && exit 1 echo "$CONFIRM" | grep -E "^Edit Message" && TEXT="$(editmsg "$NUMBER" "$TEXT")" echo "$CONFIRM" | grep -E "^Save as Draft$" && err "Draft saved to $(draft "$NUMBER" "$TEXT")"