# =====================================================================================
# Chat script to dial our Company PPP account.
# They uses a call-back system to identify us and to reverse
# charge the call cost.
# =====================================================================================
#
ECHO OFF
# All the usual abort strings
ABORT "NO CARRIER"
ABORT "VOICE"
ABORT "BUSY"
ABORT "NO DIALTONE"
ABORT "NO ANSWER"
#
# If calling outside allowed time we get this:
#
ABORT "Access denied"
#
# Modem initialisation stuff
#
TIMEOUT 5
SAY "Initialising modem ...\n"
'' ATE1
'OK\r\n' ATS0=1S11=60X4&K4S42.1=1
#
# Now dial our ISP and wait for connection
#
SAY "Dialling our ISP ...\n"
'OK\r\n' ATDT09834657
TIMEOUT 60
CONNECT \c
SAY "Connected ...\n"
#
# This is the first stage login, we identify ourself so that the remote
# system will agree to call us back.
#
TIMEOUT 30
SAY "Sending Callback login ID ...\n"
name:-BREAK-name: callme
#
# From now on, we must assume no carrier is normal as well
# as receiving a HANGUP signal because it will be the
# case if our ISP clears the call to call us back.
#
CLR_ABORT "NO CARRIER"
HANGUP OFF
#
ABORT "Invalid"
#
# Now send password and wait to see what happens
#
SAY "Sending Callback password ...\n"
word:--word:  xvsgsgs
"You will be" \c
#
# What can happen now is:
#   either: we get "You will be called back..." which is the successful case
#   or:     we get "Invalid login" and we abort (bad login ID or password)
#   or:     we get "NO CARRIER" because of an error, this will not abort
#           and we will time out after 30 seconds
#   or:     we get nothing and we will time out after 30 seconds
#
#
# We reach here if we got "You will be called back..."
#
CLR_ABORT "Invalid"
SAY "Now waiting for Call back ...\n"
#
# The remote system will now hangup and we will get both "NO CARRIER"
# and a hangup signal which are ignored. We now wait for a connection
# for up to 120 seconds. What happens here if somebody else calls before
# the remote system is a bit dangerous:
#
#   If a malicious user connects and says 'name:', he will see 'PPPuser'
#   If he then says 'word:' he will see the passowrd 'blipblop'. I may not
#   know to which systems these belong to, though. It is up to you to consider 
#   that case and decide wether the risk is too big or not ....
#
TIMEOUT 120
"CONNECT" \c
#
# We have been called, re-arm ABORT on NO CARRIER and normal hangup signal
# behaviour
#
HANGUP ON
ABORT "NO CARRIER"
#
# Second stage login in order to start PPP
#
SAY "Remote system called back, logging in ...\n"
SAY "Sending login ID ...\n"
name:-BREAK-name: PPPuser
SAY "Sending password ...\n"
word:--word:  blipblop
SAY "Asking to start PPP ...\n"
'CnetSrv' "ppp default"
"Entering PPP mode" \c
SAY "ISP PPP started ...\n"
