#! /bin/sh

. $TS_GLOBAL

case "$1" in
init)
    if ! pkg_initialized $PACKAGE; then
	pkg_set_init_flag $PACKAGE

	if [ -n "$DEBUG_NETWORK" ] ; then
		        debug="-d"
	fi

	modprobe ppp_generic
	modprobe ppp_async
	modprobe ppp_deflate
	modprobe ppp_synctty

	export CELULAR_COPS_GSM="$CELULAR_COPS_GSM"
	export CELULAR_APN_GSM="$CELULAR_APN_GSM"
	export CELULAR_NUMBER="$CELULAR_NUMBER"

	if [ -z "$CELULAR_DEVICE" ] ; then
		CELULAR_DEVICE="ttyS0"
	fi

	fbtruetype "Connecting to Network"

	pppd updetach connect 'chat -vs -E -t 3 -f /etc/chatfile' $CELULAR_DEVICE 115200 logfile /var/log/pppd.log defaultroute crtscts noauth deflate 0 asyncmap 0 mtu 1500 mru 1500 noipdefault usepeerdns idle 600 persist disconnect /etc/reconnect user $CELULAR_USER password $CELULAR_PASSWORD 

	errors=`cat /var/log/pppd.log | grep Failed`

	case $errors in
	"Failed (+CGPRS: 0)")
		echo_log "\n\nError: No GSM/EDGE available\n" $debug
		fbtruetype "Error: No GSM/EDGE available"

	;;
	"Failed (+COPS: 000,000,\"\")")
		echo_log "\n\nError: No Telco\n" $debug
		fbtruetype "Error: No Telco"
	;; 
	"Failed (+CPIN: SIM PIN)")
		echo_log "\n\nError: PIN on SIM Card\n" $debug
		fbtruetype "Error: PIN on SIM Card"
	;;
	"Failed (ERROR)")
		echo_log "\n\nError: No SIM Card\n" $debug
		fbtruetype "Error: No SIM Card"
	;;
	"Failed (NO CARRIER)")
		echo_log "\n\nError: No Carrier, Check Connection\n" $debug
		fbtruetype "Error: No Carrier, Check Connection"
	;;
	*)
		echo "SETNETWORKUP=TRUE" >> $TS_RUNTIME
		cat /etc/ppp/resolv.conf > /etc/resolv.conf
	;;
	esac

    fi
;;
help)
    echo "Usage: $0 init|console"
    ;;
  *)
    exit 1
    ;;
esac

exit 0
