#!/system/bin/sh
chatscript=/data/.chatscript
rm $chatscript

DEV=$2  
#`/system/bin/getprop emdoor.pppd.dev`
MODETYPE=$1 
# `/system/bin/getprop emdoor.pppd.modetype`
PWD=$5 
#`/system/bin/getprop emdoor.pppd.pwd`
USER=$4 
#`/system/bin/getprop emdoor.pppd.user`
APN=$3  
#`/system/bin/getprop emdoor.pppd.apn`
DIAL=$6
#`/system/bin/getprop emdoor.pppd.dial`

case "$MODETYPE" in
    "WCDMA") /system/bin/log -t pppd "==> WCDMA <=="
echo "ABORT    'BUSY'
ABORT    'NO ANSWER'
ABORT    'RINGING'
ABORT    'NO CARRIER'
TIMEOUT 30
'' AT
OK AT+CGDCONT=1,\"IP\",\"$APN\"
OK ATDT$DIAL
CONNECT
" >> $chatscript
;;
    "TDSCDMA") /system/bin/log -t pppd "==> TD-SCDMA <=="
echo "ABORT    'BUSY'
ABORT    'NO CARRIER'
TIMEOUT 25
\"\"     AT
OK       AT+CFUN=1
OK       AT+CGDCONT=1,\"IP\",\"$APN\"
OK       ATD$DIAL
CONNECT
" >> $chatscript
;;
    "CDMA") /system/bin/log -t pppd "==> CDMA <=="
echo "ABORT    'BUSY'
ABORT    'NO CARRIER'
ABORT    'ERROR'
ABORT    '+CME ERROR:'
TIMEOUT  25
\"\"     AT
OK       ATE0
OK       AT
OK       'ATDT$DIAL'
CONNECT
" >> $chatscript
;;
esac

user=$USER
pass=$PWD
no_user_pass=1

# to check user
case "$USER" in
    "@NULL") user=*; no_user_pass=0
    ;;
esac  

# to check password
case "$PWD" in
    "@NULL") pass=*; no_user_pass=0
    ;;
esac 

/system/bin/log -t pppd "begin pppd $MODETYPE $DEV $APN $USER $PWD $DIAL"

PPPD_PID=0

# to judge if there need to confirm user and password
case "$no_user_pass" in
	"1")
/system/bin/pppd \
        /dev/$DEV  \
        115200 \
        nodetach \
        crtscts \
        debug \
        usepeerdns \
        defaultroute \
        noauth \
        novj \
        novjccomp \
        noipdefault \
        ipcp-accept-local \
        ipcp-accept-remote \
        linkname ppp0 \
        user "$user" \
        password "$pass" \
        connect '/system/bin/chat -v -f /data/.chatscript' &
	PPPD_PID=$!
	;;

	"0")
/system/bin/pppd \
        /dev/$DEV  \
        115200 \
        nodetach \
        crtscts \
        debug \
        usepeerdns \
        defaultroute \
        noauth \
        novj \
        novjccomp \
        noipdefault \
        ipcp-accept-local \
        ipcp-accept-remote \
        linkname ppp0 \
	    user "" \
	    password "" \
        connect '/system/bin/chat -v -f /data/.chatscript' &
	PPPD_PID=$!
	;;
esac

#/system/bin/log -t pppd "pppd exit!"

#PPPD_EXIT=$?

#/system/bin/setprop "emdoor.pppd.exit" "$PPPD_EXIT"
/system/bin/setprop "emdoor.pppd.pid" "$PPPD_PID"

