This state table encapsulates the code needed to initiate a trombone operation that is performed in several parts. It requests an outbound call to be made by the trombone custom server ready for a trombone operation.
If the wait_time parameter is set to zero, it returns as soon as the request for an outbound call has been sent. On successful completion, the outbound call to the third party should be in progress. The IBMTromboneRdy state table can then be used to determine if the outbound call is successful, has failed, or is still progressing.
If the wait_time parameter is non-zero, it waits for that amount of time for a response to the make call request. On successful completion, a third party has been called, and is connected to Blueworx Voice Response. The caller and third party are not connected on the TDM bus at this time. The IBMTromboneConn state table should be used to complete the connection.
This state table is called by the user’s application, along with a number of parameters using the InvokeStateTable action. See IBMTromboneXmpA and IBMTromboneXmpB for examples of how to use this state table.
The source code is well commented and customization should be easy. The functionality to log data has been provided in a separate state table that may be invoked (IBMTromboneLog) to prevent this state table becoming too complex and cluttered.
The number to dial for the outgoing part of the trombone (see the definition of phone_number in the MakeCall state table action for details).
The format string for the number to dial for the outgoing part of the trombone (see the definition of format in the MakeCall state table action for details).
If this is blank, no event logging is performed. If a filename is supplied, event logging of the trombone calls and the results are logged to an event log with the given filename. The logging is performed by the IBMTromboneLog state table.
Some user-defined data for simple communications from the IBMTromboneCall state table to the IBMTromboneOut state table.
This may be used, for example, to reference a prompt to be played as an announcement to the third party before the trombone operation connects the third party to the caller.
The name of the state table to use for the outbound part of the trombone operation. If this is blank, the default state table IBMTromboneOut is used.
The entry point within the state table to use for the outbound part of the trombone operation. If this is blank, the default label begin is used.
The amount of time to wait for a response to the MakeCall request that is sent to IBM_Trombone_Custom_Server.
If this is set to zero, the state table returns as soon as the MakeCall request has been sent, without checking to see if the MakeCall has failed or succeeded.
If this is set to a non-zero value, the state table waits for up to this amount of time to see if the MakeCall has failed or succeeded. The IBMTromboneRdy state table is used to perform this test.
The returned status of the trombone operation.
If the value is zero, the trombone operation was successful and was terminated either by the third party hanging up, or by the caller requesting a disconnection by dialling the correct DTMF sequence.
If this value is non-zero, the trombone operation did not complete successfully. Table 1 shows the meanings of the possible call_status values.
This state table returns different edges depending on which range of possible values the call_status lies in (also defined in Table 1). This allows the general area of the problem to be determined immediately by the return edge of the InvokeStateTable action that called IBMTromboneMake.
The IBMTromboneMake state table can return any of the following values:
The Call Reference (SV237) of the outbound part of the trombone operation. It is supplied to provide a unique link between the two halves of the trombone operation for debug purposes. This value is set only if the wait_time is non-zero and the outbound call is successful within the wait_time specified.
Some user-defined data for simple communications from the outbound state table to the inbound state table. This may be used, for example, to indicate the response of the third party to the trombone request (such as a reason code for connection refused). The inbound state table can then play a prompt to the caller appropriate to the third party response. This value is set only if the wait_time is non-zero and the outbound call is successful within the wait_time specified.