Use MakeCall to make an outbound call.
Use MakeCall to make an outbound call. MakeCall acquires a free channel (it does not assume that a channel is already active, as Dial does) and then sends a set of digits (digit string) to the switch to identify the target number.
System Variable 178 (System : Call : Permitted channel groups) allows you to specify the channel groups from which MakeCall can select an available channel. Use AssignData to specify the permitted channel groups (for example, SV178 = 1,2,3). When this variable contains its initialized value of NULL, MakeCall uses any available channel in any channel group for outgoing calls. SV178 is supported for both channel associated signaling and common channel signaling.
System variable 228 (System : Call : Permitted channels) allows you to specify the channels that MakeCall can use. Use AssignData to specify the logical channel numbers (1 to 360) of the permitted channels. (As an example, specifying SV228 = 5,119,317 would allocate trunk 1 channel 5, trunk 4 channel 29, and trunk 11 channel 17). When this variable contains its initialized value of NULL, SV178 (System : Call : Permitted channel groups) controls which channels can be used. When SV228 is set to anything else, it overrides SV178. SV228 is supported for both channel associated signaling and common channel signaling.
System Variable 177 (System : Call : Current channel group) identifies the channel group of the channel most recently used by this application. The variable is initialized to a value of 0 when the channel is disconnected.
Information is passed between a state table and a signaling process using system variables 541 (System : Call Info : Info out ) and 542 (System : Call Info : Info in). SV541 is read when the MakeCall state table action is entered. When the action returns SV541 is reset and SV542 is set with the response information from the signaling process.
AssignData should be used to set the string contained in variable SV541. AssignData can also be used to reset SV541 by writing a blank string to it. See AssignData. for more information about the operations that can be performed.
Information relating to a far-end hangup or disconnect, such as cause and diagnostics, can also be communicated by the signaling process to the application using system variable 543 (System : Call Info : Disconnect info). A far-end hangup can be detected from the state table if one of the call actions fails (for example, with an edge of outbound line problem)and SV543 is set at that point. SV543 is only set a maximum of once per call, and is reset at the start of each new call.
The information passed between the state table and signaling process is a tag string"a sequence of tag identifiers (labels), each of which has an associated value and list of attributes. These attributes also have associated values. So, for example, the ISDN signaling process may use tags to specify whether the call is part of a transfer or whether the call is a fax. The SS7 signaling process may use the tags to pass the calling, called, diverting and originating numbers to or from an application.
A list of the tags (and associated attributes) supported by the ISDN and SS7 signaling processes is shown below. For detailed information about their structure and usage, see the following:
The existence of the CLGN (calling party number) and CLDN (called party number) tags does not affect the way applications are launched, nor the way application profiles are used. SV185 and SV186 are still used for these purposes.
If you write your own signaling processes, although you have the freedom to define your own syntactic rules for tag strings, , it is recommended—especially when passing multiple tags or attributes—that you use the new signaling interface subroutines provided for tag manipulation, as the data can then be more easily retrieved using the new tag operators in AssignData. For more details about these subroutines, refer to the Blueworx Voice Response for AIX: Programming for the Signaling Interface information. Note that if you use the same tags with your signaling processes as those used by Blueworx Voice Response, you may obtain unexpected results when the state table is run with a Blueworx Voice Response signaling process.
This problem can be eliminated if trunk channels are configured to handle either inbound calls or outbound calls, but not bothway calls. You can minimize the potential for this problem by configuring the switch and hunt groups to locate free channels for inbound calls beginning with the first channel in the trunk, and for outbound calls beginning with the last channel. This configuration significantly reduces the possibility for "collision" between an inbound call and an outbound call attempting to use the same channel at the same time.
Like Dial and TransferCall, MakeCall can detect voice energy. For channel associated signaling protocols, when MakeCall issues a call, the call is considered "answered" in most signaling protocols when the receiver on the ringing phone is lifted (off hook). In some protocols, the call is not considered answered until voice energy is detected. If MakeCall detects voice energy, the call is successful, unless the signaling protocol has "positive answer detect". In this case, voice energy is ignored.
MakeCall causes an automatic fade out of any background music. You can override this on non-CAS signaling protocols by using the system variable System : Music : Automatic fade before actions (SV226).
Blueworx Voice Response passes the MakeCall parameters to the signaling process. The signaling process then selects a free channel from the specified channel groups and establishes the call. In the event of a glare condition, when the network delivers an incoming call on the channel selected for the outgoing call, the signaling process is responsible for retrying the call.
For common channel signaling processes such as SS7 or ISDN, MakeCall does not detect voice energy, because positive answer detection is assumed to be part of the common channel signaling protocol.
Use MakeCall to establish calls over ISDN. The ISDN signaling process selects a free channel from the channel groups as defined by SV178 (System : Call : Permitted channel groups). The ISDN signaling process then sends a SETUP message to the network specifying the chosen channel and the called number. In the event of a glare condition, when the network delivers an incoming call on the channel selected for the outgoing call, the ISDN signaling process will retry the call on another channel. The ISDN network will then establish the call. In the event of any problem establishing the call, the ISDN network will return a message to Blueworx Voice Response which includes a cause code. The cause code indicates why the call could not be established. For compatibility with existing state tables, the cause code is mapped into one of the usual results. The mapping of cause codes to results is described in more detail in Possible results. The MakeCall action completes when the ISDN network has connected the call end-to-end as indicated by the CONNECT message from the network, or when the ISDN network has indicated that the call cannot be established by sending one of the DISCONNECT, RELEASE, or RELEASE COMPLETE messages.
Notes:
When MakeCall is invoked, the parameter values define both the digit string that contains all the numbers MakeCall sends and a format for the digit string. The format defines where MakeCall should pause as it sends the digits specified in the digit string.
MakeCall 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 about the Pause parameter, see Parameters.
. (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 MakeCall action with the result Outbound Line Problem.” For more information about the Pause parameter, see Parameters.
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 (2 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.
When you define the digit string and format for a call that is to be made using multifrequency (MF) signaling, the digit string must include the characters that define the MF auxiliary signals that send a start digit (KP) and stop digit (ST). MF auxiliary signals as follows:
Character MF Auxiliary Signal * Code op11
# Code op12
D KP or KP1
B KP2
C ST
For example, using MF signaling, the digit string and format used to send an area code and telephone number preceded by a 9 would look like this:
D9CD4085551212C ###,###########
The switch reads this combination as KP (start of a digit sequence), 9 (get a trunk), ST (end of a digit sequence), pause, KP (start of a digit sequence), 4085551212 (the telephone number), ST (end of a digit sequence).
MakeCall can recognize the call progress tones. The tones that are received when an application executes a MakeCall action depend on the precise switch configuration for your system. To display the call progress tone values, from the Welcome window, select Configuration, then Pack Configuration. The information on the call progress tones is under the Direction & Tones button. For more information see the Blueworx Voice Response for AIX: Configuring the System information.
To succeed, MakeCall expects certain call progress tones (for example, a dial tone before dialing, and a ring tone after dialing). If other tones are detected (for example, a busy tone), the System : Progress tone type (SV176) and System : Progress tone ID (SV175) system variables are set to identify the tone received. The tones that MakeCall recognizes are assigned specific results that identify the tone, as listed under Parameters. If MakeCall does not recognize a tone, it returns the Unexpected Tone result.
Note that the dial tone provided by the public switched telephone network in Italy is not recognized.
The MakeCall action works in four distinct steps:
If no free channels are available in the selected channel groups, the action terminates with a No Lines Available result. If glare occurs (an incoming call arrives at the same time) on the channel when Blueworx Voice Response goes off-hook, MakeCall selects another channel repeatedly until it can go off-hook successfully. 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 or Network Busy result, depending on the tone received.
After the number has been dialed, MakeCall 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, or Network Busy 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 MakeCall identify the number and format of the digit string. They also include three timing parameters.
If you are using a common channel signaling process, Phone Number specifies the digit string sent to the process.
For ISDN Phone Number is sent to the network in the Called Party Number information element of the SETUP message. The Numbering Type and Numbering Plan in the Called Party Number are those defined during ISDN configuration.
If you are using a common channel signaling process, , Format can contain only "#" characters.
For ISDN, the "." and "," characters are not supported, and are ignored if specified in the format string. When establishing calls using ISDN signaling there is no need to wait to allocate a trunk or to wait for a dial tone. The entire digit string is sent to the network at once.
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.
For SS7,Ring Time is not applicable and is ignored.
For ISDN, Ring Time specifies how long to wait while the called party is being alerted.
MakeCall can have one of the following results:
For ISDN the network has received the SETUP message, and successfully connected the call.
Invalid number format
Invalid transit network selection
Number changed
Invalid number format
For ISDN the telephone number dialed was busy.
Destination out of order
Incoming calls barred
For ISDN the network was busy and the call could not be setup.
Switching equipment or network congestion
Resources unavailable, unspecified
Bearer capability not presently available
No route to destination
For ISDN the called number did not answer within the specified timeout.
No answer from user (user alerted)
Call rejected
For ISDN there was a problem with the network establishing the call.
Temporary failure
Quality of service unavailable
Requested facility not subscribed
Service or option not available, unspecified
Service or option not implemented, unspecified
Recovery on timer expiry
Facility rejected
Bearer capability not authorized
Requested facility not implemented
Incompatible destination
Outgoing calls barred
Channel type not implemented
For ISDN no outbound line was available.
For ISDN activity on the specified channel prevented the action from establishing the call.
Identified channel does not exist
When using an ASCII editor, code this action with these parameters in the following order:
For example:
label: "Check Edges" MakeCall("735789", "######", 4, 15, 15) edge EDGE_MK_SUCCESSFUL: successful edge EDGE_MK_INVALID_PHONE_NO: invalid_phone_no edge EDGE_MK_PHONE_BUSY: phone_busy edge EDGE_MK_NETWORK_BUSY: network_busy edge EDGE_MK_NO_ANSWER: no_answer edge EDGE_MK_OUTBOUND_LINE_PROBLEM: outbound_line_problem edge EDGE_MK_NO_LINES_AVAILABLE: no_lines_available edge EDGE_MK_ACTIVE_CHANNEL: active_channel edge EDGE_MK_UNEXPECTED_TONE: unexpected_tone ;
The parameters and edges are described above under "Parameters" and "Possible results". For more information, see Testing a state table using the debugger.