#!/bin/sh
DIALTIMEOUT=20

# если мобильник подцеплен к COM1 а не к IR, заменить в скрипте ircomm0 на ttyS0
case "$1" in
mts0885)
  MODEM=ircomm0 SPEED=57600  MODEM_INIT=""
  IH_IP=" ipcp-accept-local ipcp-accept-remote noipdefault user mts"
  LOGSCRIPT="CONNECT"
  PHONE="0885"
  ;;
mtsgprs|*)
  MODEM=ircomm0 SPEED=115200 MODEM_INIT='AT+CGDCONT=1,\"IP\",\"internet.mts.ru\" OK'
  IH_IP=" ipcp-accept-local ipcp-accept-remote noipdefault
  debug usepeerdns user mts
  novj nobsdcomp novjccomp nopcomp noaccomp"
  LOGSCRIPT="CONNECT"
  PHONE="*99***1#"
  ;;
esac

# перед запуском pppd удаляет default router, по окончании - восстанавливает
# Более корректно было бы вставить эти действия в /etc/ppp/ip-up.local и /etc/ppp/ip-down.local
DR=`route -n | egrep '^0.0.0.0'| grep -v ppp | sed 's/^[^ ]*  *\([^ ]*\) .*/default gw \1/'` ;
if [ -n "$DR" ] ; then
   trap "echo route add $DR ; route add $DR ; exit"  2 3 9 15
   route delete $DR
   echo route delete $DR
   fi
##########################

##################### При обрыве соединения pppd перезапускается ####################
while  true ; do
pppd \
  connect 'chat -v ABORT "NO DIALTONE" ABORT "NO CARRIER" ABORT BUSY "" '"$MODEM_INIT"' ATDP'$PHONE' '"$LOGSCRIPT"' ;' \
  crtscts defaultroute modem -detach mru 1500 \
  $NASH_IP:$IH_IP /dev/$MODEM $SPEED
sleep $DIALTIMEOUT
done
