Chat Script Examples
This section contains chat scripts that you can use as a reference
for creating your own chat scripts. The modem manufacturer's guide
and information from your ISP and other target hosts contain chat
requirements for the modem and your target peers. In addition, numerous
PPP web sites have sample chat scripts.
Basic Modem Chat Script
The following is a basic chat script that you can use as a template
for creating your own chat scripts.
ABORT BUSY
ABORT 'NO CARRIER'
REPORT CONNECT
TIMEOUT 10
"" AT&F1M0&M5S2=255
SAY "Calling myserver\n"
TIMEOUT 60
OK "ATDT1-123-555-1212"
ogin: pppuser
ssword: \q\U
% pppd
The next table describes the contents of the chat script.
| |
ABORT BUSY
| Abort transmission if the modem receives this message from the
opposite peer.
|
ABORT 'NO CARRIER'
| Abort transmission if the modem reports ABORT 'NO
CARRIER' when dialing. The cause for this message is usually
a dialing or modem negotiation failure.
|
REPORT CONNECT
| Gather the CONNECT string from the modem.
Print the string.
|
TIMEOUT 10
| Set initial timeout to 10 seconds. The modem's response should
be immediate.
|
"" AT&F1M0&M5S2=255
| M0 – Turn off the speaker during connect. &M5 – Make the modem require error
control. S2=255 – Disable the TIES “+++”
break sequence.
|
SAY "Calling myserver\n"
| Display the message Calling myserver on the
local machine.
|
TIMEOUT 60
| Reset the timeout to 60 seconds to allow more time for link
negotiation.
|
OK "ATDT1-123-555-1212"
| Call the remote peer by using the phone number 123-555-1212.
|
ogin: pppuser
| Log in to the peer by using UNIX-style login. Supply the user
name pppuser.
|
ssword: \q\U
| \q – Do not log if debugging with the –v option. \U – Insert in this location the contents
of the string that follows –U, which is specified
on the command line. Usually, the string contains the password.
|
% pppd
| Wait for the % shell prompt, and run the pppd command.
|
|
/etc/ppp/myisp-chat.tmpl Chat
Script Template
This release includes the /etc/ppp/myisp-chat.tmpl,
which you can modify for use at your site. /etc/ppp/myisp-chat.tmpl is similar to the basic modem chat script except that
the template does not include a login sequence.
ABORT BUSY
ABORT 'NO CARRIER'
REPORT CONNECT
TIMEOUT 10
"" "AT&F1"
OK "AT&C1&D2"
SAY "Calling myisp\n"
TIMEOUT 60
OK "ATDT1-123-555-1212"
CONNECT \c
| |
ABORT BUSY
| Abort transmission if the modem receives this message from the
opposite peer.
|
ABORT 'NO CARRIER
| Abort transmission if the modem reports ABORT 'NO
CARRIER' when dialing. The cause for this message is usually
a dialing or modem negotiation failure.
|
REPORT CONNECT
| Gather the CONNECT string from the modem.
Print the string.
|
TIMEOUT 10
| Set initial timeout to 10 seconds. The modem's response should
be immediate.
|
"" "AT&F1"
| Reset the modem to factory defaults.
|
OK "AT&C1&D2"
| Reset the modem so that, for &C1, DCD from the modem follows
carrier. If the remote side hangs up the phone for some reason, then
the DCD drops. For &D2, DTR high-to-low transition causes the modem to
go “on-hook” or hang up.
|
SAY "Calling myisp\n"
| Display the message “Calling myisp” on the local
machine.
|
TIMEOUT 60
| Reset the timeout to 60 seconds to allow more time for link
negotiation.
|
OK "ATDT1-123-555-1212"
| Call the remote peer by using the phone number 123-555-1212.
|
CONNECT \c
| Wait for the CONNECT message from the opposite
peer's modem.
|
|
Modem Chat Script for
Calling an ISP
Use the next chat script as a template for calling an ISP from
a dial-out machine with a U.S. Robotics Courier modem.
ABORT BUSY
ABORT 'NO CARRIER'
REPORT CONNECT
TIMEOUT 10
"" AT&F1M0&M5S2=255
SAY "Calling myisp\n"
TIMEOUT 60
OK "ATDT1-123-555-1212"
CONNECT \c
\r \d\c
SAY "Connected; running PPP\n"
The following table describes the contents of the chat script.
| |
ABORT BUSY
| Abort transmission if the modem receives this message from the
opposite peer.
|
ABORT 'NO CARRIER'
| Abort transmission if the modem receives this message from the
opposite peer.
|
REPORT CONNECT
| Gather the CONNECT string from the modem.
Print the string.
|
TIMEOUT 10
| Set initial timeout to 10 seconds. The modem's response should
be immediate.
|
"" AT&F1M0M0M0M0&M5S2=255
| M0 – Turn off the speaker during connect. &M5 – Make the modem require error
control. S2=255 – Disable the TIES “+++”
break sequence.
|
SAY "Calling myisp\n"
| Display the message Calling myisp on the
local machine.
|
TIMEOUT 60
| Reset the timeout to 60 seconds to allow more time for link
negotiation.
|
OK "ATDT1-123-555-1212"
| Call the remote peer by using the phone number 123-555-1212.
|
CONNECT \c
| Wait for the CONNECT message from the opposite
peer's modem.
|
\r \d\c
| Wait until the end of the CONNECT message.
|
SAY “Connected; running PPP\n”
| Display the informative message Connected; running
PPP on the local machine.
|
|
Basic Chat Script Enhanced
for a UNIX-Style Login
The next chat script is a basic script that is enhanced for
calling a remote Oracle Solaris peer or other UNIX-type peer. This chat
script is used in How to
Create the Instructions for Calling a Peer.
SAY "Calling the peer\n"
TIMEOUT 10
ABORT BUSY
ABORT 'NO CARRIER'
ABORT ERROR
REPORT CONNECT
"" AT&F1&M5S2=255
TIMEOUT 60
OK ATDT1-123-555-1234
CONNECT \c
SAY "Connected; logging in.\n"
TIMEOUT 5
ogin:--ogin: pppuser
TIMEOUT 20
ABORT 'ogin incorrect'
ssword: \qmypassword
"% " \c
SAY "Logged in. Starting PPP on peer system.\n"
ABORT 'not found'
"" "exec pppd"
~ \c
The following table explains the parameters of the chat script.
| |
TIMEOUT 10
| Set initial timeout to 10 seconds. The modem's response should
be immediate.
|
ABORT BUSY
| Abort transmission if the modem receives this message from the
opposite peer.
|
ABORT 'NO CARRIER'
| Abort transmission if the modem receives this message from the
opposite peer.
|
ABORT ERROR
| Abort transmission if the modem receives this message from the
opposite peer.
|
REPORT CONNECT
| Gather the CONNECT string from the modem.
Print the string.
|
"" AT&F1&M5S2=255
| &M5 – Make the modem require error
control. S2=255 – Disable the TIES “+++”
break sequence.
|
TIMEOUT 60
| Reset the timeout to 60 seconds to allow more time for link
negotiation.
|
OK ATDT1-123-555-1234
| Call the remote peer by using the phone number 123-555-1212.
|
CONNECT \c
| Wait for the CONNECT message from the opposite
peer's modem.
|
SAY "Connected; logging in.\n"
| Display the informative message Connected; logging
in to give the user status.
|
TIMEOUT 5
| Change the timeout to enable quick display of the login prompt.
|
ogin:--ogin: pppuser
| Wait for the login prompt. If the prompt is not received, send
a RETURN and wait. Then, send the user name pppuser to
the peer. The sequence that follows is referred to by most ISPs as
the PAP login. However, the PAP login is not related in any way to
PAP authentication.
|
TIMEOUT 20
| Change the timeout to 20 seconds to allow for slow password
verification.
|
ssword: \qmysecrethere
| Wait for the password prompt from the peer. When the prompt
is received, send the password \qmysecrethere.
The \q prevents the password from being written
to the system log files.
|
"% " \c
| Wait for a shell prompt from the peer. The chat script uses
the C shell. Change this value if the user prefers to log in with
a different shell.
|
SAY "Logged in. Starting PPP on peer system.\n"
| Display the informative message Logged in. Starting
PPP on peer system to give the user status.
|
ABORT 'not found'
| Abort the transmission if the shell encounters errors.
|
"" "exec pppd"
| Start pppd on the peer.
|
~ \c
| Wait for PPP to start on the peer.
|
|
Starting PPP right after the CONNECT \c is
often called a PAP login by ISPs, though the
PAP login is actually not part of PAP authentication.
The phrase ogin:--ogin: pppuser instructs
the modem to send the user name pppuser in response
to the login prompt from the dial-in server. pppuser is
a special PPP user account name that was created for remote user1 on the dial-in server. For instructions about creating
PPP user accounts on a dial-in server, refer to How to Configure Users of the Dial-in Server.
Chat Script for External
ISDN TA
The following chat script is for calling from a dial-out machine
with a ZyXEL omni.net. ISDN TA.
SAY "Calling the peer\n"
TIMEOUT 10
ABORT BUSY
ABORT 'NO CARRIER'
ABORT ERROR
REPORT CONNECT
"" AT&FB40S83.7=1&K44&J3X7S61.3=1S0=0S2=255
OK ATDI18882638234
CONNECT \c
\r \d\c
SAY "Connected; running PPP\n"
The following table explains the parameters of the chat script.
| |
SAY "Calling the peer"
| Display this message on the screen of the dial-out machine.
|
TIMEOUT 10
| Set the initial timeout to 10 seconds.
|
ABORT BUSY
| Abort transmission if the modem receives this message from the
opposite peer.
|
ABORT 'NO CARRIER'
| Abort transmission if the modem receives this message from the
opposite peer.
|
ABORT ERROR
| Abort transmission if the modem receives this message from the
opposite peer.
|
REPORT CONNECT
| Gather the CONNECT string from the modem.
Print the string.
|
"" AT&FB40S83.7=1&K44&J3X7S61.3=1S0=0S2=255
| The letters in this line have the following meaning: &F – Use factory default
B40 – Do asynchronous PPP
conversion
S83.7=1 – Use data over speech
bearer
&K44 – Enable CCP compression
&J3 – Enable MP
X7 – Report DCE side rates
S61.3=1 – Use packet fragmentation
S0=0 – No auto answer
S2=255 – Disable TIES escape
|
OK ATDI18882638234
| Make an ISDN call. For multilink, the second call is placed
to the same telephone number, which is normally what is required by
most ISPs. If the remote peer requires a different second phone number,
append “+nnnn.”. nnnn represents the second phone number.
|
CONNECT \c
| Wait
for the CONNECT message from the opposite peer's
modem.
|
\r \d\c
| Wait until the end of the CONNECT message.
|
SAY "Connected; running PPP\n"
| Display this message on the screen of the dial-out machine.
|
|
Refer to the chat(1M) man page for descriptions of options and other
detailed information about the chat script. For an explanation of
expect-send strings, refer to Chat-Script
Field in /etc/uucp/Systems File.
For More Chat Script
Examples
A number of web sites offer sample chat scripts and assistance
in creating the chat scripts. For example, see http://ppp.samba.org/ppp/index.html.