Previous Topic

Next Topic

Book Contents

Book Index

Home Page

SendModemCommands Variable

Use the SendModemCommands variable to send specific commands directly to the modem. Some situations that require the use of SendModemCommands are as follows:

In order to use call transfer features, you must have a phone line, PBX, or phone system that supports call transfers. Active Call Center will use the modem to activate the call transfers features already provided on your phone line. The same applies to three-way calling.

To use the SendModemCommands variable, set the value of the variable to the commands to send to the modem. These commands are usually based on the "AT" command set - refer to your modem's manual for detailed information.

By default, Active Call Center will disconnect the call immediately after the modem commands have been sent. If a delay is required before disconnecting the call, set the SendModemCommandsHangupDelay variable to the number of milliseconds of delay desired. For an example, refer to the section below on three-way calling.

Since SendModemCommands is processed after the macro has executed there is no need to worry about the macro not executing in its entirety (in fact, barring errors macros will always completely execute once they are started).

Every voice modem seems to have a slightly different way to send pages or perform call transfers - experiment with the options provided to find one that works with your modem.

Examples of Numeric Pages

One command that may work to do a numeric page to 555-1212 is:

SendModemCommands = _
"AT#VBT=1#VSR=7200#VTS=5,5,5,1,2,1,2"

Notice the phone number is the last part of the command with the digits of the number separated by commas.

Other commands that may work to send a simple numeric pages to 555-1212:

For another technique to perform numeric paging, refer to the section on the PlayTouchTones Variable.

Examples of Hook-Flash Call Transfers

A hook flash is initiated by including an exclamation point in the dial string. One way to use SendModemCommands to do a hook flash call transfer to 555-1212 might be as follows:

SendModemCommands = _
"AT#VBT=1#VSR=7200#VTS=!,[0,0,20],5,5,5,1,2,1,2"

As in the numeric page example, the number is again at the end of the string. The other items in and around the phone number are as follows:

Other commands that might also work for hook-flash transfers are as follows:

Three-Way or Conference Calling

We do not recommend three-way or conference calling with the SendModemCommands variables. However, several users have pointed out that there is a legitimate need for such an option even if it only works with severe limitations.

Effectively making three-way calls with modems is nearly impossible because voice modems can't tell when the two parties have left the call. After the call has ended, the modem may remain in a state that effectively ties up the phone line for an indefinite period of time.

Therefore, any method of making three-way calls must guarantee that the call will be disconnected at some point. We have found the only reliable method to guarantee that the call gets disconnected is to introduce a fixed length time delay using the SendModemCommandsHangupDelay variable. This forces a conference call to last only a specific amount of time before disconnecting. Active Call Center does not offer and more than likely will not offer a way around this limitation.

Again, we do not recommend three-way calling, but daring users can implement it approximately as follows:

' Send the three-way dialing commands
SendModemCommands = _
"AT#VBT=1#VSR=7200#VTS=!,[0,0,20],5,5,5,1,2,1,2,[0,0,20],!"
' Force the call to last 3 minutes.
SendModemCommandsHangupDelay = "180000"

Note that the dial commands for a three-way call require two hook-flashes (exclamation points): one at the beginning to start the three-way call and one at the end to connect the three parties. For a discussion of hook-flash style modem commands that may work for your modem, refer to the section above on hook-flash transfers.

It may also be possible to implement conference calling with the PlayTouchTones variable.

"AT" Modem Command Basics

The "AT" command set is a standard set of commands used by many voice modems that have Rockwell or compatible chipsets. All commands in the "AT" command set are prefixed with "AT".

The "AT" is followed by any of a number of different command codes. Some useful codes to know are:

For example, the hook-flash transfer string "AT&F0E0X3DT!,,18005551212" is interpreted as follows:

Troubleshooting SendModemCommands

It's extremely difficult to diagnose problems with SendModemCommands functions. Every modem seems to exhibit slightly different behavior, and differences in phone systems compound things only further.

Troubleshooting SendModemCommands is something that should be left to experienced computer users. Novices will find this a difficult and frustrating task. To troubleshoot SendModemCommands:

Step 1. Create a Call Tree for testing purposes.

Step 2. Download and install the PortMon diagnostic utility.

Step 3. Start the Active Call Center Call Monitor

Step 4. Dial into the system and perform diagnostics.

Step 5. Analyze the PortMon log.

Step 6. Change the modem commands to try to eliminate the error.

Step 7. If All Else Fails...

Step 8. Once the command works in the test tree, use the command in other Call Trees where it's needed.

Remember: once it can be verified that the commands are actually reaching the modem, the answer lies in finding the correct command string to accomplish the required task.

Conclusion? We have customers that use SendModemCommands successfully for call transfers and numeric paging. It wasn't necessarily easy for them to figure out the specific commands required, but once they did their systems worked without further modification.

See Also

Variables Used in Macros

Response Variable

GotoNode Variable

Speak Variables

SpeakInteractive Variables

SpeakInteractiveWave Variables

Record Variables

Touch Tone Buffer Variables

Caller ID Variables

Call Information Variables

TransferCallTo Variable

PlayTouchTones Variable

Node Variables

Creating Extra Global Variables