#!/bin/sh

if [ "$(nvram get gprs_packetsize)" == "0" ]; then
 insmod acm
else
 insmod acm maxpacketsize=$(nvram get gprs_packetsize)
fi
# default is the motorola v3xx vendor/product
if [ "$(nvram get gprs_vid)" == "" -o "$(nvram get gprs_pid)" == "" ]; then
 insmod usbserial vendor=0x22b8 product=0x6402
else
 if [ "$(nvram get gprs_packetsize)" == "0" ]; then
  insmod usbserial vendor=$(nvram get gprs_vid) product=$(nvram get gprs_pid)
 else
  insmod usbserial vendor=$(nvram get gprs_vid) product=$(nvram get gprs_pid) maxpacketsize=$(nvram get gprs_packetsize)
 fi
fi

insmod modem
insmod pl2303
insmod ftdi_sio

while true; do
  kill -9 $(ps|grep pppd|grep gprs|awk -F' ' '{print $1}') 2>/dev/null

  # /tmp/ppp/zerocd

  # sleep 5

  if [ -z "$(nvram get gprs_usbloc)" ]; then
   if [ -c /dev/usb/acm/0 ]; then
    DEVICE="/dev/usb/acm/0"
   else
    DEVICE="/dev/usb/tts/0"
   fi
  else
   DEVICE=$(grep ": $(nvram get gprs_usbloc) :" /proc/bus/usb/devpath | awk -F':' '{print $1}')
  fi
  DEVICE=/dev/usb/acm/0
  export DEVICE
  
  /usr/local/dial/prepare # copies the needed files to /tmp/ppp/peers 
  
  pppd call motov3xx >> /tmp/chat.log

  sleep 25
done
              
