| 
 | ignore "0\r" or "OK\r\n" timeout 2 | # Ignore modem response. | |
| 
 | send "ATE0T\r" | # Initialize modem: Echo OFF, | |
| 
 | expect "0\r" or "OK\r\n" timeout 2 | # | Enable responses (Numeric), | 
| 
 | send "ATQ0V0X0T\r" | # | Limit response codes. | 
| 
 | expect "0\r" timeout 2 | # Confirm commands successful. | |
| 
 | send "ATS0=0\r" | # Set AutoAnswer OFF | |
| 
 | expect "0\r" timeout 2 | # Confirm command successful. | |
| 
 | send "AT&C1&D2\r" | # Detect carrier and DTR. | |
| 
 | expect "0\r" timeout 2 | # Confirm command successful. | |
| 
 | done | 
 | 
 | 
| connect: | send "ATDT%N\r" | # Tone dialing command. | |
| 
 | 
 | # %N from Call Home setup. | |
# Expect a connection response.
expect "16\r" or "15\r" or "14\r" or "12\r" or "10\r" or "5\r" or "1\r" busy "7\r" timeout 60
done
| retry: | send "A/" | # Repeat the previous command. | 
# Expect a connection response.
expect "16\r" or "15\r" or "14\r" or "12\r" or "10\r" or "5\r" or "1\r" busy "7\r" timeout 60
| 
 | done | 
 | 
 | 
 | 
| disconnect: | 
 | 
 | 
 | |
| 
 | delay 2 | # Separate from previous data. | ||
| 
 | send | "+++" | # Assure command mode. | |
| 
 | delay 2 | # Allow mode switching delay. | ||
| 
 | send | "ATH0T\r" | # Set modem  | |
| 
 | 
 | 
 | # | (i.e., hang up). | 
| 
 | ignore "0\r" or "OK\r" timeout 2 | # Ignore modem response. | ||
| 
 | send | "ATE0Q1\r" | # Initialize modem: Echo OFF, | |
| 
 | ignore "0\r" timeout 1 | # | Disable responses. | |
| 
 | 
 | 
 | ||
| 
 | done | 
 | 
 | 
 | 
| condin: | send | "AT&FQ0T\r" | # Reset to factory defaults. | |
| 
 | ignore "0\r" or "OK\r\n" timeout 2 | # Ignore modem response. | ||
| 
 | send | "ATE0T\r" | # Initialize modem: Echo OFF, | |
| 
 | expect "0\r" or "OK\r\n" timeout 2 | # | Enable responses (Numeric), | |
| 
 | send | "ATQ0V0X0T\r" | # | Limit response codes. | 
| 
 | expect "0\r" timeout 2 | # Confirm commands successful. | ||
| 
 | send | "ATS0=2\r" | # Set AutoAnswer ON | |
| 
 | expect "0\r" timeout 2 | # Confirm command successful. | ||
| 
 | send | "AT&C1&D2\r" | # Detect carrier and DTR. | |
| 
 | expect "0\r" timeout 2 | # Confirm command successful. | ||
| 
 | done | 
 | 
 | 
 | 
| waitcall: ignore | "2\r" timeout 1 | # Ignore first ring. | ||
| 
 | expect | "2\r" timeout 10 | # Pick up second ring | |
| 
 | 
 | 
 | # | or timeout. | 
| 
 | 
 | 
 | # Expect a connection response. | |
expect "16\r" or "15\r" or "14\r" or "12\r" or "10\r" or "5\r" or "1\r"
