#!/bin/bash
HOMEDIR=/root
LOGCALLSMADE=$HOMEDIR/.phone/log-calls-made.txt
LOGCALLSACCEPTED=$HOMEDIR/.phone/log-calls-accepted.txt
LOGCALLSMISSED=$HOMEDIR/.phone/log-calls-missed.txt
CALLERCHECK=$HOMEDIR/.phone/callerid

case "$1" in

receivesms)
  CALLERID=`$CALLERCHECK "$2"`
  openvt -w -s -- /etc/htcunid/event.d/whiptail receivesms2 "$2" "$3" "$CALLERID"
  ;;

ring)
  CALLERID=`$CALLERCHECK "$2"`
  openvt -w -s -- /etc/htcunid/event.d/whiptail ring2 "$2" "$CALLERID"
  ;;

dial)
  CALLERID=`$CALLERCHECK "$2"`
  echo "`date` $2" >> $LOGCALLSMADE
  openvt -w -s -- /etc/htcunid/event.d/whiptail dial2 "$2" "$CALLERID"
  ;;

receivesms2)
  unicode_start; unset TERMCAP; export TERM=linux
  whiptail --title "New SMS, `date`" --fb --msgbox " From: $4\nNumber: $2 \n\n$3" 20 50
  clear
  ;;

ring2)
  unicode_start; unset TERMCAP; export TERM=linux
  echo "`date` $2" >> $LOGCALLSACCEPTED
  if whiptail --title "Incoming call" --fb --yesno " From: $3\nNumber: $2\n\nAnswer?" 20 50 killonhangup killonanswer; then
    htcunid answer
    whiptail --fb --msgbox "In call\n\nFrom: $3\nNumber: $2" 20 50 killonhangup
    htcunid hangup
  else
      echo "`date` $2" >> $LOGCALLSMISSED
      whiptail --fb --msgbox "Missed call, `date`\n\nFrom: $3\nNumber: $2" 20 50
  fi
  clear
  ;;

dial2)
  unicode_start; unset TERMCAP; export TERM=linux
  whiptail --infobox "In call\n\nTo: $3\nNumber: $2" 20 50 killonhangup
  while [ "$digit" != "^[" ]; do
    read -n 1 digit
    digit=`echo "$digit" | cat -v`
    case "$digit" in
    1|2|3|4|5|6|7|8|9|0|"*"|"#")
      htcunid atcmd "AT+VTS=$digit" >/dev/null
      ;;
    esac
  done    
  htcunid hangup
  clear
  ;;

answer)
  pkill -2 -f killonanswer
  ;;

hangup)
  pkill -2 -f killonhangup
  ;;

esac
