4.3. 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( ) to request the data. 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_EXTENSION event is generated in response to the gc_Extension( ) request. The GCEV_EXTENSION event has a GC_PARM_BLK associated with it that contains the requested information.
- Extract the information from the GC_PARM_BLK associated with the GCEV_EXTENSION 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 8 shows the parameters that can be retrieved and when the information should be retrieved.
RTCP Information GCSET_CHAN_CAPABILITY IPPARM_RTCPINFO In any state but has no meaning before the Connected state. Contains 0's prior to the Connected state. RTCPINFO* Coder Information IPSET_CALLINFO IPPARM_LOCAL_CAPABILITY After the Connected or Answered state. IP_CAPABILITY* Display Information IPSET_CALLINFO IPPARM_DISPLAY Any state after Offered or Proceding. char* User to User Information IPSET_CALLINFO IPPARM_USERUSER_INFO Any state after Offered or Proceding. char* Call Duration IPSET_CALLINFO IPPARM_CALL DURATION Only after gc_DropCall( ) but before gc_Release( ) int* Phone List IPSET_CALLINFO IPPARM_PHONELIST Any state after Offered or Proceding. char* Nonstandard Object ID IPSET_CALLINFO IPPARM_NONSTANDARDDATA_OBJID See Section 4.3.1, "Retrieving Nonstandard Data From Protocol Messages" for more information. char* Nonstandard Data IPSET_CALLINFO IPPARM_NONSTANDARDDATA_DATA See Section 4.3.1, "Retrieving Nonstandard Data From Protocol Messages" for more information. Uint[8] Vendor Product ID IPSET_VENDORINFO IPPARM_VENDOR_PRODUCT_ID Any state after Offered or Proceding. char* Vendor Version ID IPSET_VENDORINFO IPPARM_VENDOR_VERSION_ID Any state after Offered or Proceding. char* H.221 Nonstandard Information IPSET_VENDORINFO IPPARM_H221NONSTD Any state after Offered or Proceding. IP_H221_NON STANDARD* Conference ID IPSET_CONFERENCE IPPARM_CONFERENCE_ID Any state after Offered or Proceding. Uint[8] Conference Goal IPSET_CONFERENCE IPPARM_CONFERENCE_GOAL Any state after Offered or Proceding. char* 1. This field is the value_buf field in the GC_PARM_DATA structure associated with the GCEV_EXTENSION event generated in response to the gc_Extension( ) function requesting the information.
2. Display information, user to user information, phone list, nonstandard object ID, nonstandard data, vendor information, and H221 nonstandard information may not be present.
3.Vendor information is included in a Q931 SETUP message received from a peer. The vendor information that is sent with a Q931 SETUP message to a peer when issuing outbound calls is set up in the config.val file.
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_EXTENSION 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. Coder information is available after a disconnect.
Click here to contact Telecom Support Resources
Copyright 2003, Intel Corporation