dialer.device 1.6 © 1994, Iain Hibbert dialer.device is an autodialer/login program for all types of network software that use the serial port, but don't know how to deal with modems or login prompts. It also enables you to have your modem hangup on DTR drop dialer.device will work with *any* software that usually accesses a serial port, such as any [C]SLIP or PPP devices for AmiTCP, any version of AmigaNOS, any terminal program, and even the 'version' command. 1. Installation --------------- This archive should contain three files: dialer.device ; the autodialer dialer0.config ; an example configuration dialer.readme ; this file Copy dialer.device to your DEVS: directory, and create config files in ENV: (and ENVARC:), then point your network software at dialer.device instead of its usual serial.device. For automatic hangup, configure your modem to drop the line when DTR is dropped (&D2 on most modems), then you just need to take the system offline (in the case of AmiTCP) or exit the network software (AmigaNOS) to hangup. 2. Configuration ---------------- Each unit of dialer.device can be configured differently, thus is is possible to have several network connections using the same telephone line. The configuration is held in a file called dialerX.config in your ENV: directory, where X is the unit number (the unit number may be any 32-bit number). Only lines starting with valid keywords are interpreted, this is a low-level device and no error messages are currently produced, if you have any problems check the config file. When you have correctly configured dialer.device and your modem, you can test it with the 'version' command, just type: version dialer.device unit 0 at the shell prompt, and it should dial out and login to your network provider, then hangup immediately. Success is indicated by printing the version number of the serial device indicated by the DEVICE keyword - this is because when dialer.device has finished its login, it steps out of the way and leaves the network software to deal directly with the serial device so there is no degradation in performance :-) The valid keywords are: DEVICE The device to use. When dialer.device is successfully opened, it returns a pointer to this device instead of itself. default: "serial.device" UNIT The unit number of the serial device to use. default: 0 BAUD The Baud Rate to use default: INITSTRING The first string that is sent to the modem, it should initialise the modem, and cause it to return an OK within 5 seconds, or else the device will return, unopened. default: "ATZ" DIALSTRING The string we send before each phone number. default: "ATDT" PHONE Multiple PHONE keywords are allowed. Each will be dialled in turn, until we either get a "CONNECT", "ERROR", or "NO DIALTONE" message from the modem, or else the window is closed. N.B. If there are no numbers to dial, the dialer will assume that there is no modem on the line and will skip directly to the CONVERSE stage (no MODEMINIT, no Dialling) DIALTIMEOUT When dialling, we will attempt to abort the dial if this many seconds pass before we get a recognised result. The device will continue dialling with the next number. default: 60 CONVERSE Multiple CONVERSE keywords are allowed, none are required. The first string is waited for, then the second string plus a CR is sent. To send without waiting, leave the first string empty (ie ""). TIMEOUT The timeout to use when waiting for a CONVERSE string, if we timeout, the device will fail to open. default: 30 WINDOWSIZE Status window size when it opens default: 320 11 320 100 ZOOMSIZE Alternative size, for when you press the Zoom gadget. default: 320 11 320 11 A is delimited by spaces, or " quote characters. "This is one String" This is four strings You can insert CR or LF into the string by using \r and \n 3. Copyright ------------ dialer.device is © 1994 Iain Hibbert and is freely distributable as long as all of its files are included in their original form without additions, deletions, or modifications of any kind, and only a nominal fee is charged for its distribution. This software is provided "AS IS" without warranty of any kind, either expressed or implied. Reading Legal mush can turn your brain to guacamole. By using dialer.device you accept either the whole risk or the quality and performance of the program. 4. The Author ------------- Iain Hibbert 4 Avondale Road plunky@skate.demon.co.uk Bath 2:250/320.33@fidonet Avon BA1 3EG 39:138/14.33@amiganet England You should probably be able to reach me at one of the above addresses, if you are using Comms software regularly. Please contact me if you have any problems or suggestions. I do not guarantee to implement any suggestions or fix any bugs, but it can't hurt to try. 5. History ---------- 1.0 First Release 1.4 1.0 would think it was successful if you aborted after receiving the CONNECT message (ie during the login phase) 1.6 removed the requirement to have PHONE keywords, at request 6. Bugs ------- Thats all, there is no more.. Actually, there is one slight strangeness to do with the OpenDevice() exec.library function call - *sometimes* if the device fails to open, it tries again (once only) - this can manifest if you abort the dialling, the dialer starts to try again (just close it again), or if the login fails and the device tries again. I do not know why it does this. Any other problems, let me know..