*: Program: DIALER.PRG
*: System: Clipdial Intelligent Phone Dialer V#1.1
*: Author: Glendon G. Todd / Vega Group
*: Copyright (c) 1987, Public Domain by the Author
*: Uses: CLIPDIAL.DBF
*: Indexes: CLIPDIAL.NDX
*: Documented: 12/17/87 18:23 SNAP! version 2.01
* This is the "brains" of the Clipdial intelligent dialer. Clipdial
* expects to be passed a complete 10-digit phone number in the format
* (999) 999-9999. Be sure to include the space after the ")".
* Clipdial extracts the area code and exchange information from the phone
* number and uses this to determine whether the number is local or long
* distance. For a local call, Clipdial strips off the area code
* information and dials the 7-digit local number. For a long distance
* number, Clipdial prefixes the number with "1-", and then dials the
* complete long distance number. Clipdial also checks the DSR line
* coming from the modem. If DSR is not asserted, Clipdial assumes that
* the modem is not on and aborts with an error message.
* Clipdial uses the database file Clipdial.dbf to keep track of what
* telephone exchanges are in the local calling area. This database
* must be in the current default directory or on Clipper's PATH. (Not
* the DOS path.) If Clipdial does not find this database file, it will
* dial the phone number exactly as passed to it. Clipdial uses Clipper's
* work area 10 for it's database file. Anything else in work area 10
* will be lost.
* This copy of Clipdial is currently configured for the metro Washington
* D.C. area. However, it is easy to reconfigure for any other area of
* the country. The string "703/212/301" in line #60 tells Clipdial
* what area codes the local calling area is contained in. Simply replace
* this string with a string containing your local area code(s). Then the
* Clipdial.dbf file must be edited (using dBase or some such) so that it
* contains the exchange codes which are within your local calling area.
* (There is a list of these exchanges in the front of your phone book.)
* For support, comments, questions or whatever, contact :
* Glendon Todd
* 312 Van Buren St.
* Falls Church, VA 22046
* Compuserve 71121,352
* Voice (703) 532-8191
* Revision history
* 11/26/87 - Version 1.0 - first public domain release
* 12/17/87 - Version 1.1 - Repaired a bug in 1.0 which was causing
* it to create it's index improperly.
mdial_num = phone_no
acode = substr(phone_no,2,3)
exchg = substr(phone_no,7,3)
mdial_num = "1 "+phone_no
if acode $ "703/212/301"
database = alias()
use clipdial index clipdial
index on exchange to clipdial
if .not. eof()
mdial_num = substr(mdial_num,9,8)
call modemcmd with "DT"+mdial_num
@23,10 say "Wait for ring, then pick up phone and press spacebar, please!"
do while inkey()=0
call modemcmd with "H0"
@12,20 say "Modem is not on"
*: EOF: DIALER.PRG