State table definitions

This section describes the state tables supplied with the ISDN call transfer application.

Six state tables are provided as compiled state tables and ASCII state table source code. The compiled state tables are compiled directly from the ASCII state table source code. The source code for the state tables is provided in the directory $CUR_DIR/ca/ISDN_Call_Transfer_dir.

The state tables fall into two groups:

Outbound state tables
An outbound state table provides functions to make the outbound call for the transfer operation:
Helper state tables:
The helper state tables encapsulate code that is used to provide interaction between the inbound and outbound state tables during the transfer, and other utility functions:

The following sections describe the state tables.

ISDN_Imm_Xfer

The ISDN_Imm_Xfer state table is used as the default outbound state table for blind transfers. It attempts to perform a blind make call and returns the success or failure to the ISDN Signalling Process using the ISDN_Call_Transfer custom server.

After the results of the MakeCall have been reported, it enters into a WaitEvent for up to 30 seconds to allow the transfer to complete. When the switch completes, the transfer channel is hung up and the WaitEvent exited. If the switch does not hangup, the WaitEvent times out and the state table terminates, which hangs up the call.

You can customize the application, but you must not change the basic functions.

Parameters:

String phone_number (maximum of 40 characters)

The number to dial for the outgoing part of the transfer. For more information, see the definition of phone_number in the description of the MakeCall state table action in the Blueworx Voice Response for AIX: Application Development using State Tables information.

String format (maximum of 50 characters)

The format string for the number to dial for the outgoing part of the transfer. For more information, see the definition of format in the description of the MakeCall state table action in the Blueworx Voice Response for AIX: Application Development using State Tables information.

String log_filename (maximum of 64 characters)

If this parameter is blank, no event logging is performed.

If you specify a file name, event logging of the transfer calls is performed and the results are logged in the file you specify. The logging is performed by the ISDN_Xfer_Log state table.

String user_data1 (maximum of 64 characters)

User data supplied by the SetUserData custom server call. Also see ISDN_Xfer_Data, which is a state table that can set this data for you.

String user_data2 (maximum of 16 characters)

User data supplied by the SetUserData custom server call. Also see ISDN_Xfer_Data, which is a state table that can set this data for you.

String user_data3 (maximum of 16 characters)

User data supplied by the SetUserData custom server call. Also see ISDN_Xfer_Data, which is a state table that can set this data for you.

String user_data4 (maximum of 16 characters)

User data supplied by the SetUserData custom server call. Also see ISDN_Xfer_Data, which is a state table that can set this data for you.

String user_data5 (maximum of 16 characters)

User data supplied by the SetUserData custom server call. Also see ISDN_Xfer_Data, which is a state table that can set this data for you.

ISDN_SupA_Xfer

The ISDN_SupA_Xfer state table is used as the default outbound state table for screened transfers when not using DTTA hardware.

The state table attempts to perform a make call and returns the success or failure to the ISDN Signaling Process using the ISDN_Call_Transfer custom server.

After the results of the MakeCall have been reported, if the make call was successful, it enters into a WaitEvent for up to 30 seconds to allow the transfer to complete. When the switch completes, the transfer channel is hung up and the WaitEvent exited. If the switch does not hang up, the WaitEvent times out and the state table terminates, which hangs up the call. If the make call was not successful, it hangs up immediately.

You can customize the application, but you must not change the basic functions. Comments in the source code show where you can insert code to perform a consultation with the third party.

Parameters:

String phone_number (maximum of 40 characters)

The number to dial for the outgoing part of the transfer. For more information, see the definition of phone_number in the description of the MakeCall state table action in the Blueworx Voice Response for AIX: Application Development using State Tables information.

String format (maximum of 50 characters)

The format string for the number to dial for the outgoing part of the transfer. For more information, see the definition of format in the description of the MakeCall state table action in the Blueworx Voice Response for AIX: Application Development using State Tables information.

String log_filename (maximum of 64 characters)

If this parameter is blank, no event logging is performed.

If you specify a file name, event logging of the transfer calls is performed and the results are logged in the file you specify. The logging is performed by the ISDN_Xfer_Log state table.

String user_data1 (maximum of 64 characters)

User data supplied by the SetUserData custom server call. Also see ISDN_Xfer_Data, which is a state table that can set this data for you.

String user_data2 (maximum of 16 characters)

User data supplied by the SetUserData custom server call. Also see ISDN_Xfer_Data, which is a state table that can set this data for you.

String user_data3 (maximum of 16 characters)

User data supplied by the SetUserData custom server call. Also see ISDN_Xfer_Data, which is a state table that can set this data for you.

String user_data4 (maximum of 16 characters)

User data supplied by the SetUserData custom server call. Also see ISDN_Xfer_Data, which is a state table that can set this data for you.

String user_data5 (maximum of 16 characters)

User data supplied by the SetUserData custom server call. Also see ISDN_Xfer_Data, which is a state table that can set this data for you.

ISDN_Xfer_C5

The ISDN_Xfer_C5 state table encapsulates the states needed to concatenate up to 5 strings. It returns the result as a single string.

Parameters:

String in0

The first string.

String in1

The second string.

String in2

The third string.

String in3

The fourth string.

String in4

The fifth string.

String out (this value is returned)

The concatenation of the input strings (in0 + in1 + in2 + in3 + in4).

ISDN_Xfer_C10

The ISDN_Xfer_C10 state table encapsulates the states needed to concatenate up to 10 strings. It returns the result as a single string.

Parameters:

String in0

The first string.

String in1

The second string.

String in2

The third string.

String in3

The fourth string.

String in4

The fifth string.

String in5

The sixth string.

String in6

The seventh string.

String in7

The eighth string.

String in8

The ninth string.

String in9

The tenth string.

String out (this value is returned)

The concatenation of the input strings (in0 + in1 + in2 + in3 + in4 + in5 + in6 + in7 + in8 + in9).

ISDN_Xfer_Data

The ISDN_Xfer_Data state table encapsulates the actions necessary to use the SetUserData custom server function. It is called by the incoming state table to set up some user-defined data to be supplied to the outbound state table during a transfer. This call must be made before the TransferCall action is performed.

You can customize the application, but you must not change the basic functions.

Parameters:

String log_filename (maximum of 64 characters)

If this parameter is blank, no event logging is performed.

If you specify a file name, event logging of the supplied data is performed and the results are logged in the file you specify. The logging is performed by the ISDN_Xfer_Log state table.

String user_data1 (maximum of 64 characters), (this value is returned)

User data supplied to the SetUserData custom server call.

String user_data2 (maximum of 16 characters), (this value is returned)

User data supplied to the SetUserData custom server call.

String user_data3 (maximum of 16 characters), (this value is returned)

User data supplied to the SetUserData custom server call.

String user_data4 (maximum of 16 characters), (this value is returned)

User data supplied to the SetUserData custom server call.

String user_data5 (maximum of 16 characters), (this value is returned)

User data supplied to the SetUserData custom server call.

Number return_code, (this value is returned)

This value is returned to indicate whether or not the call to the ISDN_Xfer_Data state table was successful. The possible return values are:

0
The state table ran successfully
1
The OHSL to the ISDN_Call_Transfer custom server failed.
2
The SendData to the ISDN_Call_Transfer custom server failed.

ISDN_Xfer_Log

The ISDN_Xfer_Log state table encapsulates the actions needed to log debug data in a file.

The state table first checks the logging_on flag to see if the supplied data should be sent to the log file. The data to be logged consists of a header string, followed by six general strings; these are concatenated before being logged using a LogEvent action. The state table always returns edge 0, regardless of any errors.

Parameters:

Number logging_on

A value of 1 means perform data logging; any other value causes the state table to exit without logging anything.

String header

The header string for the logging function. This must contain at least the file name, in a format required by the LogEvent state table action.

String in_1

The first string to log.

String in_2

The second string to log.

String in_3

The third string to log.

String in_4

The fourth string to log.

String in_5

The fifth string to log.

String in_6

The sixth string to log.

ISDN_Xfer_Stat

The ISDN_Xfer_Stat state table encapsulates the actions necessary to use the GetUserStatus custom server function. It is used by the incoming state table to receive the user-specified status values returned by the outbound state table after the make call. This call must be made after the TransferCall action and before the TerminateCall or ReconnectCall actions.

You can customize the application, but you must not change the basic functions.

Parameters:

String log_filename (maximum of 64 characters)

If this parameter is blank, no event logging is performed.

If you specify a file name, event logging of the supplied data is performed and the results are logged in the file you specify. The logging is performed by the ISDN_Xfer_Log state table.

Number user_status

The status of the call to get the user status information. The possible values are:

0
User status data is present.
1
Request to get user status is not valid at this time.
2
No user status data is available.

char user_status1[64]

User-defined status field that was sent by the outbound state table during a transfer after the outbound call was made.

char user_status2[16]

User-defined status field that was sent by the outbound state table during a transfer after the outbound call was made.

char user_status3[16]

User-defined status field that was sent by the outbound state table during a transfer after the outbound call was made.

char user_status4[16]

User-defined status field that was sent by the outbound state table during a transfer after the outbound call was made.

char user_status5[16]

User-defined status field that was sent by the outbound state table during a transfer after the outbound call was made.

Number return_code (this value is returned)

This value is returned to indicate whether or not the call to the ISDN_Xfer_Data state table was successful. The possible return values are:

0
The state table ran successfully
1
The OHSL to the ISDN_Call_Transfer custom server failed.
2
The SendData to the ISDN_Call_Transfer custom server failed.
3
The ReceiveData failed with a Timeout edge.
4
The ReceiveData failed with a No More Data edge.
5
The ReceiveData failed with a Data Not Found edge.
6
The ReceiveData failed with a Host Problem edge.
7
The ReceiveData failed with a Host Not Open edge.