This state table encapsulates some of the code needed to continue a trombone operation that is performed in several parts. It waits for a trombone connection to terminate, either by the caller or third party hanging up, or by the caller dialling a specified DTMF sequence. It requires that a trombone has already been set up successfully using the IBMTromboneMake and IBMTromboneConnect state tables.
IBMTromboneWait uses the WaitEvent state table action to wait for either party to hang-up, or for DTMFs to be sent from the caller. When it detects trombone termination, it calls the IBMTromboneDisc state table if necessary and closes the host server link to the IBM_Trombone_Custom_Server. On successful completion, the trombone operation is terminated, and, if the application allows, the caller can continue with the application that was being used before the trombone connection was made (unless a caller hang-up caused the trombone termination).
This state table can be 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 function 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.
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.
If this is blank, the state table ignores any DTMFs it receives from the caller during the trombone operation.
If this parameter contains a number (one or more digits), it terminates the trombone operation on receiving the given number from the caller. When the trombone terminates, the third party is disconnected, and the caller remains connected to Blueworx Voice Response.
If this parameter is set to -, the trombone terminates on reception of any DTMF from the caller.
Valid DTMF digits are 0 to 9, *, and #.
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 IBMTromboneWait.
The IBMTromboneWait state table can return any values between 208 and 214.