Dial

Purpose

Use Dial to send DTMF digits. Hook flash and ground key signals are not supported with SIP


A screen capture of the Action Dial window

Description

Dial assumes that a telephone channel is active (from a preceding inbound call or outbound MakeCall) and sends digits immediately.

Format

When Dial is invoked, the parameter values define both the digit string that contains all the numbers Dial sends and a format for the digit string. The format defines where Dial should pause as it sends the digits specified in the digit string.

Dial recognizes three format characters:

#, which means “This is a digit.”

, (comma), which means “Wait the number of seconds specified by the Pause parameter.” For more information, see Pause.

. (period), which means “Wait the number of seconds specified by the Pause parameter to receive a dial tone. Proceed sending the digit string as soon as the dial tone is received. If the dial tone is not received before the specified time elapses, terminate the Dial action with the result Outbound Line Problem.” For more information, see Pause.

If the Dial Tone Detection system parameter is set to no dial tone, the period has the same effect as a comma.

For example, the format of a digit string that dials 9 to get a trunk, followed by a seven-digit telephone number, could be either #,####### or #.#######, depending on whether you want Blueworx Voice Response to proceed immediately after pausing, or proceed only when a dial tone is received. When the action pauses, it waits for the system default time (two seconds) unless you define a different wait time using the Pause parameter.

If the switch does not send a standard dial tone, use a comma rather than a period to format the digit string. This will ensure that the digits are sent after the time specified by the Pause parameter, regardless of the tone received.

Usage notes

The Dial action works in three distinct steps:

  1. It goes off-hook and dials the number string, including the format.
  2. It waits for a ring tone.
  3. It waits for the phone to be answered.

While dialing the number, a period (.) in the dial string causes the action to wait for a dial tone before proceeding. If the action does not receive a dial tone within the time specified in the Pause parameter, it terminates with an Outbound Line Problem result. If it receives a tone other than a dial tone, it terminates with an Unexpected Tone, Phone Busy, Network Busy, or Dial Tone result, depending on the tone received.

After the number has been dialed, Dial waits for a ring tone. Because some protocols do not provide ring tones, and because it is possible for the call to be answered before a ring tone is generated, the action can also detect that the call has been answered during this time. This means that, depending on the protocol, an answer is detected either by signaling or by voice energy. If a ring tone or an answer is not detected within the time specified in the Ring Wait parameter, the action terminates with an Outbound Line Problem result. If an answer is detected, the action terminates with a Succeeded result. If the action receives a tone other than a ring tone, the action terminates with an Unexpected Tone, Phone Busy, Network Busy, or Dial Tone result, depending on the tone received.

In the final step, the action waits for up to the time specified in the Ring Time parameter for the call to be answered. This is detected by signaling for protocols that support answer detection or by voice energy for protocols that do not (loop start and ground start). If the call is not answered in the specified time, the action terminates with a No Answer result.

Parameters

The parameters for Dial identify whether the action is sending a ground key, hook flash, or a digit string to the switch. The parameters differ, depending on what you are sending.

Possible results

Dial can have one of the following results:

Succeeded
The switch has received the signal and performed the requested action.
Invalid Phone Number
The phone number or format string specified in the action contained invalid characters or too many characters, or the number of digits in the number did not match the number of # characters in the format string.
Phone Busy
The telephone number dialed was busy.
Network Busy
The combination of the digit string and format dialed a telephone number and the network was busy.
No Answer
The telephone number did not answer within the specified timeout.
Outbound Line Problem
The combination of the digit string and format dialed a telephone number but there was a problem with the line.
Dial Tone
When the application tried to execute the action, it encountered a dial tone.
Unexpected Tone
Unexpected call progress tone was detected. See the Blueworx Voice Response for AIX: Configuring the System information.
Caller Hung Up
The other end has hung up.

ASCII syntax

When using an ASCII editor, code this action with these parameters in the following order:

  1. "GROUND_KEY"
  2. Monitor time

Or:

  1. "HOOK_FLASH"
  2. Monitor time

Or:

  1. "DIGITS"
  2. Number
  3. Format string
  4. Pause time
  5. Ring wait time
  6. Ring time

For example:

label: "Check Edges"
	Dial("GROUND_KEY", 100)
	  edge EDGE_DIAL_SUCCESSFUL:		  successful
	  edge EDGE_DIAL_INVALID_PHONE_NO:	invalid_phone_no
	  edge EDGE_DIAL_PHONE_BUSY:		 phone_busy
	  edge EDGE_DIAL_NETWORK_BUSY: 	 network_busy
	  edge EDGE_DIAL_NO_ANSWER:		 no_answer
	  edge EDGE_DIAL_LINE_PROBLEM: 	 line_problem
	  edge EDGE_DIAL_DIALTONE:		  dialtone
	  edge EDGE_DIAL_UNEXPECTED_TONE:	 unexpected_tone
	  edge EDGE_HUP: 				   hup
	;
	Dial("HOOK_FLASH", 100);
	Dial("DIGITS", "5367", "####", 3, 10, 10);

The parameters and edges are described above under "Parameters" and "Possible results". For more information, see Testing a state table using the debugger.