lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | ################################################################### |
| 3 | # |
| 4 | # Script to dial the remote system, negotiate the connection, and send |
| 5 | # it the id. Then wait for the modem to disconnect. Reset the modem |
| 6 | # to answer mode and wait for the system to call back. |
| 7 | # |
| 8 | # The telephone number and modempass are used when establishing the |
| 9 | # connection to the modem. |
| 10 | # |
| 11 | PHONE=555-1212 |
| 12 | MODEMPASS=modem_identifier |
| 13 | # |
| 14 | # Once the modem calls back, the account name and password are used for |
| 15 | # a UNIX style login operation. |
| 16 | # |
| 17 | ACCOUNT=my_account_name |
| 18 | PASSWORD=my_password |
| 19 | |
| 20 | ################################################################### |
| 21 | # |
| 22 | # Step 1. Dial the modem and negotiate the initial dialog. |
| 23 | # note: the modem is configured to ignore loss of DCD at this point. |
| 24 | # it is important that this be performed because the loss of DCD |
| 25 | # will normally prevent system from working since 'modem' is used |
| 26 | # for pppd. |
| 27 | # |
| 28 | # The script is terminated normally when the carrier is lost. |
| 29 | # |
| 30 | chat -v \ |
| 31 | TIMEOUT 3 \ |
| 32 | ABORT '\nBUSY\r' \ |
| 33 | ABORT '\nNO ANSWER\r' \ |
| 34 | ABORT '\nRINGING\r\n\r\nRINGING\r' \ |
| 35 | '' AT \ |
| 36 | 'OK-+++\c-OK' 'AT&C0&D2S0=0H0' \ |
| 37 | TIMEOUT 30 \ |
| 38 | OK ATDT$TELEPHONE \ |
| 39 | CONNECT '' \ |
| 40 | assword: $MODEMPASS \ |
| 41 | "\nNO CARRIER\r" |
| 42 | |
| 43 | if [ "$?" = "0" ]; then |
| 44 | |
| 45 | ################################################################### |
| 46 | # |
| 47 | # Step 2. Wait for the call back from the remote. This will wait for at most |
| 48 | # 30 seconds for the call back should the first attempt fail or |
| 49 | # something happen with the callback logic at the remote. |
| 50 | # |
| 51 | # note: when the callback occurs, the DCD setting is re-enabled. |
| 52 | # |
| 53 | # If some voice call should happen during this period, the system will |
| 54 | # answer the telephone and then hang up on them. I realize that this is |
| 55 | # rude, but there is little that this script can do. |
| 56 | # |
| 57 | chat -v \ |
| 58 | TIMEOUT 30 \ |
| 59 | ABORT '\nVOICE\r' \ |
| 60 | '\nRING\r' 'AT&C1A' \ |
| 61 | CONNECT '' \ |
| 62 | TIMEOUT 10 \ |
| 63 | ogin:--ogin: $ACCOUNT \ |
| 64 | TIMEOUT 45 \ |
| 65 | assword: $PASSWORD |
| 66 | |
| 67 | if [ "$?" = "0" ]; then |
| 68 | exit 0 |
| 69 | fi |
| 70 | fi |
| 71 | |
| 72 | ################################################################### |
| 73 | # |
| 74 | # The script has failed. Terminate the connection mode. |
| 75 | # |
| 76 | chat -v TIMEOUT 3 "" AT 'OK-+++\c-OK' 'AT&C1&D2S0=0H0' OK |
| 77 | exit 1 |