#!/bin/sh # Copyright (c) 1996, Eric Schenk. # # This script is intended to give an example of a connection script that # uses the "message" facility of diald to communicate progress through # the dialing process to a diald monitoring program such as dctrl or diald-top. # It also reports progress to the system logs. This can be useful if you # are seeing failed attempts to connect and you want to know when and why # they are failing. # # This script requires the use of chat-1.9 or greater for full # functionality. It should work with older versions of chat, # but it will not be able to report the reason for a connection failure. # Configuration parameters # The initialization string for your modem MODEM_INIT="ATZ&C1&D2%C0" # The phone number to dial PHONE_NUMBER="5551212" # The chat sequence to recognize that the remote system # is asking for your user name. USER_CHAT_SEQ="name:--name:--name:--name:--name:--name:--name:" # The string to send in response to the request for your user name. USER_NAME="USER" # The chat sequence to recongnize that the remote system # is asking for your password. PASSWD_CHAT_SEQ="word:" # The string to send in response to the request for your password. PASSWORD="PASSWORD" # The prompt the remote system will give once you are logged in # If you do not define this then the script will assume that # there is no command to be issued to start up the remote protocol. PROMPT="annex:" # The command to issue to start up the remote protocol PROTOCOL_START="ppp" # The string to wait for to see that the protocol on the remote # end started OK. If this is empty then no check will be performed. START_ACK="Switching to PPP." # Pass a message on to diald and the system logs. function message () { [ $FIFO ] && echo "message $*" >$FIFO logger -p local2.info -t connect "$*" } # Initialize the modem. Usually this just resets it. message "Initializing Modem" chat TIMEOUT 5 "" $MODEM_INIT TIMEOUT 45 OK "" if [ $? != 0 ]; then message "Failed to initialize modem" exit 1 fi # Dial the remote system. message "Dialing system" chat \ TIMEOUT 45 \ ABORT "NO CARRIER" \ ABORT BUSY \ ABORT "NO DIALTONE" \ ABORT ERROR \ "" ATDT$PHONE_NUMBER \ CONNECT "" case $? in 0) message Connected;; 1) message "Chat Error"; exit 1;; 2) message "Chat Script Error"; exit 1;; 3) message "Chat Timeout"; exit 1;; 4) message "No Carrier"; exit 1;; 5) message "Busy"; exit 1;; 6) message "No DialTone"; exit 1;; 7) message "Modem Error"; exit 1;; *) esac # We're connected try to log in. message "Loggin in" chat \ TIMEOUT 5 \ $USER_CHAT_SEQ \\q$USER_NAME \ TIMEOUT 45 \ $PASSWD_CHAT_SEQ $PASSWORD if [ $? != 0 ]; then message "Failed to log in" exit 1 fi # We logged in, try to start up the protocol (provided that the # user has specified how to do this) if [ $PROMPT ]; then message "Starting Comm Protocol" chat TIMEOUT 15 $PROMPT $PROTOCOL_START if [ $? != 0 ]; then message "Prompt not received" exit 1 fi fi if [ $START_ACK ]; then chat TIMEOUT 15 $START_ACK "" if [ $? != 0 ]; then message "Failed to start Protocol" exit 1 fi fi # Success! message "Protocol started"