Use Dial to send DTMF digits. Hook flash and ground key signals are not supported with SIP
Dial assumes that a telephone channel is active (from a preceding inbound call or outbound MakeCall) and sends digits immediately.
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.
The Dial action works in three distinct steps:
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.
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.
Actions Ground Key and Hook Flash are not applicable to common channel signaling processes.
When used with a common channel signaling process, Phone Number specifies the digit string to send to the process.
When using a common channel signaling process, Format must contain only “#” characters. The “,” and “.” characters are not supported.
Pause is not applicable to common channel signaling processes and is ignored.
Ring Wait is not applicable to common channel signaling processes and is ignored.
Ring Time is not applicable for VoIP and is ignored.
Dial can have one of the following results:
When using an ASCII editor, code this action with these parameters in the following order:
Or:
Or:
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.