#!/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