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.