Data Modem 2400: Configuring for Credit Card Dialing



I have a Macintosh Portable which is now equipped with an Apple Macintosh
Portable Modem. When used to dial local numbers or when dialing direct, it
works just like a Hayes modem is supposed to.

In my use of the Portable however, I often dial long distance numbers. My
technique for doing this is to dial with a 0 (instead of a 1) and then dial my
credit card number. On a normal Hayes modem, this is done as follows:

ATDT013012869000;

Notice the semicolon at the end of the dial string, which tells the modem to
return to command mode when done with the phone number.

As the call is completed, AT&T will come around and ask for a credit card
number. Since the modem is still in command mode, I give the following
command:

ATDT1234567890

This command tells the modem to send my credit card number. After this, the
call is typically completed and I can do my stuff.

The trouble with the Macintosh Portable modem is that when it is given the
second command string, it hangs up the phone before doing the credit card

number. This is not good. I need a solution.

Your problem is caused by a feature of the Macintosh Portable Data Modem 2400
and its use of the dial command. The feature in question is dial tone sensing
-- waiting for a dial tone before actually dialing the requested number. It is
a common feature of many, but not all, Hayes and Hayes-compatible modems and
actually originated with another modem manufacturer.

When you issue the first dial command, the modem goes off-hook, waits for a
dial tone, and then dials the number. After the second dial command, the modem
(which is already off-hook) again waits for a dial tone. Since there is no dial
tone present at this stage of a credit card call, the modem waits 2 seconds as
specified by modem register S6 and goes on-hook without dialing the credit card
number. It should also alert the user with a NO DIALTONE message.

There are a couple of ways to get around the problem. The first and probably
most acceptable way is to use additional dial command options designed just for
this kind of situation.

The W modifier can be put in the middle of a dial string to cause the modem to
wait for a "secondary" dial tone such as that generated by AT&T "dial 0 first"
calls.

ATTD 0 123 456-7890 W 12345678901234

The above command dials the destination number, and then pauses at the W for a
secondary dial tone. When the secondary dial tone is detected, the rest of the
number is dialed -- in this case, the credit card number. The number of
seconds the modem will wait for the secondary dial tone is controlled by the
value of modem register S7.

Some long distance services do not generate this secondary dial tone, and in
these cases a different modifier must be used. The @ symbol causes the modem
to wait for a 5-second silence before continuing, and is one alternative.

ATDT 0 123 456-7890 @ 12345678901234

This dials the destination number and then waits for a 5-second silence before
dialing the credit card number. If the 5-second silence isn't detected within
the number of seconds in modem register S7, the modem will go on-hook and
display the message NO ANSWER.

Another useful modifier is the comma character. It will generate 2-second
pauses (controlled by modem register S8) while dialing. Two in a row would
cause a 4-second pause.

ATDT 0 123 456-7890 ,, 12345678901234

This dials the destination part of the number and pauses 4 seconds before
dialing the credit card number.

The 5-second delay usually works, but is often excessive. Combinations of
commas can generate just the right amount of delay, depending on the long
distance carrier being used.

One last item to note is that the dial tone sensing is only active when result
code set 2 or 4 is used. This is controlled by the ATXn command, where n is a
value from 0 to 4 inclusive. If 0, 1, or 3 is used, your original method of
dialing would work.


Published Date: Feb 18, 2012