MakeCall

Purpose

Use MakeCall to make an outbound call.


A screen capture of the Action MakeCall window

Description

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.

Note: For region/country-specific notes on the use of this function, refer to the README file located in the directory /usr/lpp/dirTalk/homologation. The file name is in the format README_homologation.xxxx, where xxxx is the region/country identifier.

Specifying channels and channel groups

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.

Transferring information between a state table and a signaling process

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:

SS7 signaling process:

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.

Using MakeCall with FXS loop start

MakeCall may occasionally fail if your switch protocol is FXS loop start. Because glare conditions cannot be detected reliably on loop start, MakeCall fails when an inbound call and an outbound call attempt to use the same channel at the same time. In this case, Blueworx Voice Response flags a B-bit fault error and ports an alarm to the System Monitor.

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.

Detecting voice energy

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.

Background music

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).

Using MakeCall with a custom-written signaling process

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.

Using MakeCall with ISDN

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:

  1. For ISDN, the MakeCall action does not detect voice energy, because positive answer detection is part of the ISDN protocol.
  2. ISDN does not support "blind" make calls.

Format

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.

MF signaling

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).

Call progress tones>

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.

Usage notes

The MakeCall action works in four distinct steps:

  1. It selects an idle channel on which to make the call
  2. It goes off-hook and dials the number string
  3. It waits for a ring tone.
  4. It waits for the phone to be answered

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.

Parameters

The parameters for MakeCall identify the number and format of the digit string. They also include three timing parameters.

Phone Number
Specifies the digit string MakeCall sends to the switch. Phone Number can be a variable or a constant.

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.

Format
Defines the format of the digit string sent by Phone Number. Format can be a variable or a constant.

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
Specifies how long to wait when a comma or a period is specified in the format (see Format). The unit of measure is seconds. When waiting for a dial tone (when a period is specified in the format), the default is set by the Maximum Dial Tone Wait system parameter; the maximum allowable value is 30 seconds. If this parameter is left as 0, the default value is used.

Pause is not applicable to common channel signaling processes and is ignored.

Ring Wait
Specifies how long to wait after sending the digits for a ringback tone. The unit of measure is seconds. The default is set by the Maximum Ring Wait system parameter; the maximum allowable value is 30 seconds. If this parameter is left as 0, the default value is used unless Ring Time is also 0. If both values are 0, MakeCall sends the digits requested, then immediately returns the Succeeded result without waiting for any further activity on the channel (also known as a "blind" MakeCall).

Ring Wait is not applicable to common channel signaling processes and is ignored.

Ring Time
Specifies how long to wait while the telephone rings. The unit of measure is seconds. The default is set by the Maximum Ring Time system parameter; the maximum allowable value is 120 seconds. If this parameter is left as 0, the default value is used unless Ring Wait is also 0. See the Ring Wait description.

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.

Note: ISDN does not support "blind" make calls.

Possible results

MakeCall can have one of the following results:

Succeeded
The switch has received the signal and made the call.

For ISDN the network has received the SETUP message, and successfully connected the call.

Invalid Phone Number
The phone number or format string specified in the action contained invalid characters, or the number of digits in the number did not match the number of # characters in the format string.
For ISDN the telephone number dialed was invalid.
Cause Codes:
Unlocated (unassigned) number

Invalid number format

Invalid transit network selection

Number changed

Invalid number format

Phone Busy
The telephone number dialed was busy.

For ISDN the telephone number dialed was busy.

Cause Codes:
User Busy

Destination out of order

Incoming calls barred

Network Busy
The network was busy and the telephone number could not be dialed.

For ISDN the network was busy and the call could not be setup.

Cause Codes:
No route to specified transit network

Switching equipment or network congestion

Resources unavailable, unspecified

Bearer capability not presently available

No route to destination

No Answer
The telephone number dialed did not answer within the specified timeout.

For ISDN the called number did not answer within the specified timeout.

Cause Codes:
No User Responding

No answer from user (user alerted)

Call rejected

Outbound Line Problem
There was a problem with the outbound line.

For ISDN there was a problem with the network establishing the call.

Cause Codes:
Network out of order

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

No Line Available
No outbound line was available to make the call.

For ISDN no outbound line was available.

Cause Codes:
No circuit or channel available
Channel Active
Activity on the channel prevented the action from making the call.

For ISDN activity on the specified channel prevented the action from establishing the call.

Cause Codes:
Channel unacceptable

Identified channel does not exist

Unexpected Tone
Unexpected call progress tone was detected. See the Blueworx Voice Response for AIX: Configuring the System information.
Note: When a MakeCall action is unsuccessful, use TerminateCall to return the channel to a non-active state before retrying the MakeCall.

ASCII syntax

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

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

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.