ppp and pppd configurations for GPRS

Here are configurations of both ppp and pppd for FreeBSD, using Ericsson T39 cell phone (should work with any) over serial cable. pppd section is based on Mikko Rapeli instructions for Linux, ppp section is based on papers from some meeting I visited. Both configurations works fine for me.

pppd

/etc/ppp/options

/dev/cuad0					# First serial port device
38400						# Serial port speed. Feel free to experiment here

connect /etc/ppp/gprs-connect-chat		# Connect script

:10.0.0.2					# Accept IP assigned by provider
noipdefault
ipcp-accept-local

local						# Ignore carrier detect signal

novj						# Turn off header compression,
novjccomp					# essential in some GPRS networks

disconnect /etc/ppp/gprs-disconnect-chat	# Disconnect script
defaultroute					# Add default routing

/etc/ppp/gprs-connect-chat

exec chat
        TIMEOUT         5                               \
        ECHO            ON                              \
        ABORT           '\nBUSY\r'                      \
        ABORT           '\nERROR\r'                     \
        ABORT           '\nNO ANSWER\r'                 \
        ABORT           '\nNO CARRIER\r'                \
        ABORT           '\nNO DIALTONE\r'               \
        ABORT           '\nRINGING\r\n\r\nRINGING\r'    \
        ''              '\rAT'                          \
        TIMEOUT         12                              \
        SAY             "Press CTRL-C to close the connection at any stage!"    \
        SAY             "\ndefining PDP context...\n"   \
        OK              ATE1                            \
        OK              'AT+CGDCONT=1,"IP","internet","",0,0'   \
        OK              AT+CGQREQ=1,0,0,0,0,0           \
        OK              AT+CGQMIN=1,0,0,0,0,0           \
        OK              ATD*99#                 \
        TIMEOUT         22                              \
        SAY             "\nwaiting for connect...\n"    \
        CONNECT         ""                              \
        SAY             "\nConnected." \
        SAY             "\nIf the following ppp negotiations fail,\n"   \
        SAY             "try restarting the phone.\n"

/etc/ppp/gprs-disconnect-chat

exec chat -V -s -S      \
ABORT           "BUSY"          \
ABORT           "ERROR"         \
ABORT           "NO DIALTONE"   \
SAY             "\nSending break to the modem\n"        \
""              "\K"            \
""              "+++ATH"        \
SAY             "\nPDP context detached\n"

ppp

/etc/ppp/ppp.conf

gprs:
 ident user-ppp VERSION (built COMPILATIONDATE)
 set device /dev/cuad0
 set speed 38400
 set dial "ABORT BUSY \"\" \
   ATE1 OK AT+CGDCONT=1,\\\"IP\\\",\\\"internet\\\" OK \
   AT+CGQREQ=1,0,0,0,0,0 OK AT+CGQMIN=1,0,0,0,0,0 OK ATDT*99# CONNECT"
 set timeout 0
 enable dns   # if you're on local network and don't like ppp overwriting your
              # resolv.conf every time you connect, comment this out
 set ctsrts off
 set authname eurotel    # those can be usually chosen at will
 set authkey gprs
 set timeout 300
 set ifaddr 0 0 255.255.255.0
 add default HISADDR

Configuration which works with Bluetooth (rfcomm_pppd -a 00:0e:07:e5:d0:dd -c -C 1 -l rfcomm-client):

rfcomm-client:
 # This is IMPORTANT option
 enable force-scripts

 # You might want to change these
 set phone "*99***1#"

 # You might want to adjust dial string as well
 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
       \"\" AT OK-AT-OK ATE1Q0 OK \\dATD\\T TIMEOUT 40 CONNECT"
 set login
 set timeout 6000
 enable dns
 resolv rewrite

 set ifaddr 10.0.0.2/0 10.0.0.0/0 0 0
 add default HISADDR

Last revision: 16 December 2006

 

Back to Pav's BSD corner