parent
391df5db6a
commit
c119ab0145
3 changed files with 66 additions and 44 deletions
@ -0,0 +1,43 @@ |
|||||||
|
#!/usr/bin/env sh |
||||||
|
LOGDIR="$XDG_CONFIG_HOME"/sxmo/modem |
||||||
|
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 |
||||||
|
notify-send "$1" |
||||||
|
(sleep 0.5; echo 1 > /tmp/sxmo_bar) & |
||||||
|
kill -9 0 |
||||||
|
} |
||||||
|
|
||||||
|
modem_n() { |
||||||
|
MODEMS="$(mmcli -L)" |
||||||
|
echo "$MODEMS" | grep -qoE 'Modem\/([0-9]+)' || fatalerr "Couldn't find modem - is your modem enabled?" |
||||||
|
echo "$MODEMS" | grep -oE 'Modem\/([0-9]+)' | cut -d'/' -f2 |
||||||
|
} |
||||||
|
|
||||||
|
dialmenu() { |
||||||
|
CONTACTS="$(contacts)" |
||||||
|
NUMBER="$( |
||||||
|
printf %b "Close Menu\n$CONTACTS" | |
||||||
|
grep . | |
||||||
|
sxmo_dmenu_with_kb.sh -l 10 -p Number -c -fn Terminus-20 |
||||||
|
)" |
||||||
|
echo "$NUMBER" | grep "Close Menu" && kill 0 |
||||||
|
|
||||||
|
NUMBER="$(echo "$NUMBER" | awk -F' ' '{print $NF}' | tr -d -)" |
||||||
|
echo "$NUMBER" | grep -qE '^[+0-9]+$' || fatalerr "$NUMBER is not a number" |
||||||
|
|
||||||
|
echo "Attempting to dial: $NUMBER" >&2 |
||||||
|
CALLID="$( |
||||||
|
mmcli -m "$(modem_n)" --voice-create-call "number=$NUMBER" | |
||||||
|
grep -Eo "Call/[0-9]+" | |
||||||
|
grep -oE "[0-9]+" |
||||||
|
)" |
||||||
|
echo "Starting call with CALLID: $CALLID" >&2 |
||||||
|
echo "$CALLID" |
||||||
|
} |
||||||
|
|
||||||
|
modem_n || fatalerr "Couldn't determine modem number - is modem online?" |
||||||
|
CREATEDCALLID="$(dialmenu)" |
||||||
|
sxmo_modemcall.sh pickup "$CREATEDCALLID" |
Loading…
Reference in new issue