#!/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