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