4.5. Retrieving Current Call-Related Information
To support large numbers of channels, the call control library must perform all operations in asynchronous mode. To support this, an extension function variant allows the retrieval of a parameter as an asynchronous operation.
The retrieval of call-related information is a four step process:
- Set up a GC_PARM_BLK that identifies which information is to be retrieved. The GC_PARM_BLK includes GC_PARM_DATA blocks. The GC_PARM_DATA blocks specify only the Set_ID and Parm_ID fields, that is, the value_size field is set to 0. The list of GC_PARM_DATA blocks indicate to the call control library the parameters to be retrieved.
- Use the gc_Extension( ) function to request the data. The target_type should be GCTGT_GCLIB_CRN and the target_id should be the actual CRN. The ext_id function parameter (extension ID) should be set to IPEXTID_GETINFO, the parmblkp function parameter should point to the GC_PARM_BLK set up in step 1, and the mode function parameter should be set to EV_ASYNC (asynchronous).
- A GCEV_EXTENSIONCMPLT event is generated in response to the gc_Extension( ) request. The extevtdatap field in the METAEVENT structure for the GCEV_EXTENSIONCMPLT event is a pointer to an EXTENSIONEVTBLK structure that contains a GC_PARM_BLK with the requested call-related information.
- Extract the information from the GC_PARM_BLK associated with the GCEV_EXTENSIONCMPLT event. In this case, the GC_PARM_BLK contains real data, that is, the value_size field is not 0, but includes the size of the data following for each parameter requested.
Table 9 shows the parameters that can be retrieved and when the information should be retrieved. The table also identifies which information can be retrieved when using H.323 and which information can be retrieved using SIP.
Call ID IPSET_CALLINFO IPPARM_CALLID Any state after Offered or Proceeding. String,max. length = IP_CALLID_LENGHT (16 octets) H.323 only Call Duration IPSET_CALLINFO IPPARM_CALLDURATION After Disconnected, before Idle. Unsigned long (value in ms) H.323 only Conference Goal IPSET_CONFERENCE IPPARM_CONFERENCE_GOAL Any state after Offered or Proceeding. Uint[8] H.323 only Conference ID IPSET_CONFERENCE IPPARM_CONFERENCE_ID Any state after Offered or Proceeding. char*, max. length = IP_CONFERENCE_ID_LENGTH (16) H.323 only Display Information IPSET_CALLINFO IPPARM_DISPLAY Any state after Offered or Proceeding. char*,max. length = MAX_DISPLAY_LENGTH (82), null-terminated H.323 and SIP Nonstandard Control IPSET_NONSTANDARDCONTROL IPPARM_NONSTANDARDDATA_DATA IPPARM_NONSTANDARDDATA_OBJID or IPPARM_H221NONSTANDARD See Section 4.5.1, Retrieving Nonstandard Data From Protocol Messages When Using H.323 for more information. char*, max. length = MAX_NS_PARM_DATA_LENGHT (128) char*, max. length = MAX_NS_PARM_OBJID_LENGHT (40)
H.323 only Nonstandard Data IPSET_NONSTANDARDDATA IPPARM_NONSTANDARDDATA_DATA IPPARM_NONSTANDARDDATA_OBJID or IPPARM_H221NONSTANDARD See Section 4.5.1, Retrieving Nonstandard Data From Protocol Messages When Using H.323 for more information. char*, max. length = MAX_NS_PARM_DATA_LENGHT (128) char*, max. length = MAX_NS_PARM_OBJID_LENGHT (40) H.323 only Phone List IPSET_CALLINFO IPPARM_PHONELIST Any state after Offered or Proceeding. char*,maximum length = 131 H.323 and SIP User to User Information IPSET_CALLINFO IPPARM_USERUSER_INFO Any state after Offered or Proceeding. char*,max. length = MAX_USERUSER_INFO_LENGTH (131 octets) H.323 only Vendor Product ID IPSET_VENDORINFO IPPARM_VENDOR_PRODUCT_ID Any state after Offered or Proceeding. char*,maximum length = MAX_PRODUCT_ID_LENGTH (32) H.323 only Vendor Version ID IPSET_VENDORINFO IPPARM_VENDOR_VERSION_ID Any state after Offered or Proceeding. char*,maximum length = MAX_VERSION_ID_LENGTH (32) H.323 only H.221 Nonstandard Information IPSET_VENDORINFO IPPARM_H221NONSTD Any state after Offered or Proceeding. IP_H221_NON STANDARD(see note 4) H.323 only Notes:
1. This field is the value_buf field in the GC_PARM_DATA structure associated with the GCEV_EXTENSIONCMPLT event generated in response to the gc_Extension( ) function requesting the information.
2. Display information, user to user information, phone list, nonstandard data, vendor information and nonstandard control information, and H221 nonstandard information may not be present.
3.Vendor information is included in a Q931 SETUP message received from a peer.
4. The nonstandard object id and nonstandard data parameters described here refer to nonstandard data contained in a SETUP message for example. This should not be confused with the nonstandard data included in protocol messages sent using gc_Extension( ) which can be retrieved from the metaevent associated with a GCEV_EXTENSION event.If an attempt is made to retrieve information in a state in which the information is not available, no error is generated. The GC_PARM_BLK associated with the generated GCEV_EXTENSIONCMPLT event 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_ReleaseCall( ) is issued.
Click here to contact Telecom Support Resources
Copyright 2003, Intel Corporation