Dialogic 05-2239-009 User Manual

Page of 604
Dialogic
®
 Global Call IP Technology Guide — November 2007
145
Dialogic Corporation
IP-Specific Operations
will not contain the requested information. If phone list and display information are requested and 
only phone list is available, then only phone list information is available in the GC_PARM_BLK. 
An error is generated if there is an internal error (such as memory cannot be allocated).
All call information is available until a gc_ReleaseCallEx( ) is issued.
4.5.1
Retrieving Nonstandard Data From Protocol Messages 
(H.323)
Any received Q.931 message can include Nonstandard Data. The application can use the 
gc_Extension( ) function with an ext_id of IPEXTID_GETINFO to retrieve the data while a call is 
in any state. The target_type should be GCTGT_GCLIB_CRN and the target_id should be the 
actual CRN. The information is included with the corresponding GCEV_EXTENSIONCMPLT 
termination event. 
Note:
When retrieving nonstandard data, it is only necessary to specify the 
IPPARM_NONSTANDARDDATA_DATA parameter ID in the extension request. It is not 
necessary to specify the ID for the nonstandard identifier parameter (that is, 
IPPARM_NONSTANDARDDATA_OBJID or IPPARM_H221NONSTANDARD). The call 
control library ensures that the GCEV_EXTENSIONCMPLT event includes all the correct 
information. 
When retrieving nonstandard data from the GC_PARM_BLK associated with the 
GCEV_EXTENSIONCMPLT event, it is important to use the extended gc_util_..._ex( ) functions 
because the IPPARM_NONSTANDARDDATA_DATA parameter is defined to support data that 
may be longer than 255 bytes. The actual maximum data length is configured by the application via 
the max_parm_data_size field in the IPCCLIB_START_DATA structure when it initializes the 
library; the default size is 255, but the application can set any value up to 4096. 
4.5.2
Examples of Retrieving Call-Related Information
The following code demonstrates how to do the following:
create a structure that identifies which information should be retrieved, then use the 
gc_Extension( ) with an extID of IPEXTID_GETINFO to issue the request
extract the data from a structure associated with the GCEV_EXTENSIONCMPLT event 
received as a termination event to the gc_Extension( ) function 
Similar code can be used when using SIP, except that the code must include only information 
parameters supported by SIP (see 
Specifying Call-Related Information to Retrieve
The following function shows how an application can construct and send a request to retrieve call-
related information.