mirror of https://gitee.com/openkylin/ppp.git
78 lines
2.2 KiB
Bash
Executable File
78 lines
2.2 KiB
Bash
Executable File
#!/bin/sh
|
|
###################################################################
|
|
#
|
|
# Script to dial the remote system, negotiate the connection, and send
|
|
# it the id. Then wait for the modem to disconnect. Reset the modem
|
|
# to answer mode and wait for the system to call back.
|
|
#
|
|
# The telephone number and modempass are used when establishing the
|
|
# connection to the modem.
|
|
#
|
|
PHONE=555-1212
|
|
MODEMPASS=modem_identifier
|
|
#
|
|
# Once the modem calls back, the account name and password are used for
|
|
# a UNIX style login operation.
|
|
#
|
|
ACCOUNT=my_account_name
|
|
PASSWORD=my_password
|
|
|
|
###################################################################
|
|
#
|
|
# Step 1. Dial the modem and negotiate the initial dialog.
|
|
# note: the modem is configured to ignore loss of DCD at this point.
|
|
# it is important that this be performed because the loss of DCD
|
|
# will normally prevent system from working since 'modem' is used
|
|
# for pppd.
|
|
#
|
|
# The script is terminated normally when the carrier is lost.
|
|
#
|
|
chat -v \
|
|
TIMEOUT 3 \
|
|
ABORT '\nBUSY\r' \
|
|
ABORT '\nNO ANSWER\r' \
|
|
ABORT '\nRINGING\r\n\r\nRINGING\r' \
|
|
'' AT \
|
|
'OK-+++\c-OK' 'AT&C0&D2S0=0H0' \
|
|
TIMEOUT 30 \
|
|
OK ATDT$TELEPHONE \
|
|
CONNECT '' \
|
|
assword: $MODEMPASS \
|
|
"\nNO CARRIER\r"
|
|
|
|
if [ "$?" = "0" ]; then
|
|
|
|
###################################################################
|
|
#
|
|
# Step 2. Wait for the call back from the remote. This will wait for at most
|
|
# 30 seconds for the call back should the first attempt fail or
|
|
# something happen with the callback logic at the remote.
|
|
#
|
|
# note: when the callback occurs, the DCD setting is re-enabled.
|
|
#
|
|
# If some voice call should happen during this period, the system will
|
|
# answer the telephone and then hang up on them. I realize that this is
|
|
# rude, but there is little that this script can do.
|
|
#
|
|
chat -v \
|
|
TIMEOUT 30 \
|
|
ABORT '\nVOICE\r' \
|
|
'\nRING\r' 'AT&C1A' \
|
|
CONNECT '' \
|
|
TIMEOUT 10 \
|
|
ogin:--ogin: $ACCOUNT \
|
|
TIMEOUT 45 \
|
|
assword: $PASSWORD
|
|
|
|
if [ "$?" = "0" ]; then
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
###################################################################
|
|
#
|
|
# The script has failed. Terminate the connection mode.
|
|
#
|
|
chat -v TIMEOUT 3 "" AT 'OK-+++\c-OK' 'AT&C1&D2S0=0H0' OK
|
|
exit 1
|