7.3.2 Technology-Specific Feature Access
The gc_Extension( ) function provides a single common interface to access various technology-specific features supported by underlying call control libraries.
This Global Call function utilizes an extension function identifier (ext_id) to specify the feature. The associated technology's Global Call Technology User's Guide for each call control library lists all its supported extension function identifiers (ext_id values) and the associated features that are accessible via the gc_Extension( ) function (if any).
By specifying the associated parameter identifiers (also described in the associated Global Call Technology User's Guide), and either the target line device or a specific call, those features unique to the subject technology may be utilized entirely using the Global Call API. Without FTE support, a Global Call application requiring this feature support would also have to be written to the specific call control API in addition to the Global Call API.
For example, in an ISDN platform the application may use the gc_Extension( ) function to set D or B channel states. As the concept of B and D channels is ISDN specific and inherently foreign to other protocols, without FTE support, the application would have to link directly with the ISDN call control library then call the required ISDN library functions cc_SetBChanState( ) or cc_SetDChanState( ).
The gc_Extension( ) function may be supported in either asynchronous mode, synchronous mode or both depending on the call control library.
If the gc_Extension( ) function is supported and called in synchronous mode, the relevant information parameters returned in the GC_PARM_BLK buffer must be processed or copied prior to the next Global Call function call. The reason for this is that the GC_PARM_BLK buffer will be deallocated within Global Call in a subsequent function call.
If the gc_Extension( ) function is supported and called in asynchronous mode, relevant information may be returned via the call control library via GCEV_EXTENSIONCMPLT termination event and its referenced extension block structure, EXTENSIONEVTBLK. The EXTENSIONEVTBLK structure contains technology-specific information and is referenced via the extevtdatap pointer in the METAEVENT structure associated with the GCEV_EXTENSIONCMPLT event. See the Global Call API Library Reference for more information about these structures.
The gc_Extension( ) function can also be used to transmit information to the remote endpoint. In this case, while the application at the local end point receives a GCEV_EXTENSIONCMPLT, the application at the remote end point will receive an unsolicited GCEV_EXTENSION notification event from the network with the transmitted information. The EXTENSIONEVTBLK structure contains the transmitted information and is referenced via the extevtdatap pointer in the METAEVENT structure associated with the GCEV_EXTENSION event.
The application at the local end point may also receive an unsolicited GCEV_EXTENSION event with information from the network.
It is important to note that the EXTENSIONEVTBLK structure referenced in the GCEV_EXTENSION event has a persistence only until the next call of gc_GetMetaEvent( ). In other words, any information contained or referenced in the associated EXTENSIONEVTBLK structure must be either processed or copied in the application, or risk having the memory space containing the actual information being lost on the next gc_GetMetaEvent( ) call.
Click here to contact Telecom Support Resources
Copyright 2002, Intel Corporation