>VFP 6.0 sp4
>I currently have a VFP routine that works as an autodialer. How can I programmatically detect whether or not the modem found a busy signal or even detected a dialtone. Is there any way to get the result codes from the modem.
>
Most modems will return a result code that indicates line status encountered during dialing and connection - the ATX# (# in the range of 1-6 generally, with 1-4 now almost universally supported) command tells the modem to return result codes describing error and progress conditions with various degrees of detail. It may be a numeric or string response - ATV# (# in the range of 0-1) usually determines the verbosity - 0 usually returns a numeric code, and 1 a string. This varies modem to modem, so you need to check the command set for the modem in use.
One alternative is to use a TAPI control - Exceletel Express costs under $150 for a single developer license, and handles dial-out, busy, answer and caller id for single line TAPI compliant modems, and is known to work with VFP 6 - in fact, a VFP based demo is available for evaluation from
www.componentsource.com for all of their range of products. It's an ActiveX control, and is much easier to use than low-level I/O; it relies on modem configuration information controlled by WIndows in the Modem Control Panel Applet, so differences in instruction sets for modems, port assignments and the like are handled without your explicit intervention. If you are not an experienced comm app programmer and are not comfortable writing your own API calls to TAPI functions, the cost of the control will be less than what it would take for you to write equivalent functionality, and relieves you of differences regarding I/O ports and interrupts, or the use of USB rather than RS-232 devices, and can interface directly with TAPI-compliant phone systems without a modem at all.
>TIA
>Rob