Dialogic Dialogic Global Call IP IP Phone User Manual


 
248
Dialogic Corporation
The Dialogic
®
Global Call API library supports the ability to send and receive tunneled signaling
messages in supported H.225 message types as an optional feature that is disabled by default for
backwards compatibility. The ability to send and receive TSMs can only be enabled when starting
the system; once enabled, the tunneled signaling message feature cannot be disabled without
restarting the system. The feature can be enabled for any virtual board by setting a specific bitmask
value in a field of the appropriate IP_VIRTBOARD data structure; see Section 4.18.2, “Enabling
Tunneled Signaling Messages”, for details. When the feature is enabled, applications can use the
standard Global Call parameter mechanism to set up a TSM to be sent in the next outgoing H.225
message. To receive a TSM, the application requests the Dialogic
®
Global Call API library to
forward the TSM after it has received a Global Call state change event that is associated with one of
the supported message types. For most H.225 message types, the application uses gc_Extension( )
to request the TSM contents which the library returns via a GCEV_EXTENSIONCMPLT
asynchronous completion event. In the singular case of the Facility message, the tunneled signaling
message content is provided via the unsolicited GCEV_EXTENSION event that notifies the
application of the Facility message itself.
An application has no ability to specify which H.225 message types it wishes to receive tunneled
signaling messages in, and should therefore be prepared to handle TSMs contained in any of the
specified H.225 message types so that TSMs are not lost.
Applications construct a tunneled signaling message by constructing a GC_PARM_BLK
composed of Global Call parameter elements that contain the TSM protocol identification and
message content. The TSM protocol identification can use either a protocol object ID, specified in
an IP_TUNNELPROTOCOL_OBJECTID data structure, or alternate identification data, specified
in an IP_TUNNELPROTOCOL_ALTID structure. Only one TSM can be sent per H.225 message.
A tunneled signaling message can also include nonstandard data. The nonstandard data is handled
as additional parameter elements in the same GC_PARM_BLK that contains the TSM. As in other
Global Call implementations of nonstandard data, the protocol used for the nonstandard data in a
TSM can be identified by either H.221 protocol or a protocol object ID. Only one nonstandard data
element can be sent per tunneled signaling message.
The maximum data length for the Global Call parameters used for the tunneled signaling message
content and the optional nonstandard data content is configured at system start-up. The maximum
data length for these parameters is configured by setting the max_parm_data_size field in the
IPCCLIB_START_DATA structure. The default size is 255 bytes (for backwards compatibility),
but applications may configure it to be as large as 4096 bytes. Applications must use the extended
gc_util_..._ex( ) functions to insert or extract any GC_PARM_BLK parameter elements whose
data length has been configured to be greater than 255 bytes.
In practice, applications may not be able to utilize the full maximum length of the tunneled
signaling message content parameter element as configured in max_parm_data_size, particularly if
the tunneled signaling message contains optional nonstandard data. The H.323 stack limits the
overall size of messages to be max_parm_data_size + 512 bytes, and any messages that exceed this
limit are truncated without any notification to the application.
For all supported H.225 message types except Setup, the application presets the TSM contents to
send by passing the configured GC_PARM_BLK in a call to the gc_SetUserInfo( ) function. When
the application subsequently calls one of the Global Call functions listed in Table 16, “H.225
Messages and Global Call Functions for Sending Tunneled Signaling Messages”, on page 253, the
library and stack use the preset data to construct and send a tunneled signaling message in the