Siebel CTI Administration Guide > Developing a Communications Driver > Siebel Adaptive Communications API Reference >

Methods of ISC_DRIVER_HANDLE


The driver handle, ISC_DRIVER_HANDLE, is implemented in the communications driver. Driver handle methods are invoked to request the driver to create a service handle, among other things. The service handle represents the functionality of the communications system with which you are integrating.

When a call to a driver handle method is successful, it returns 0 (zero). ISC_RESULT represents the API result type defined for the Siebel Adaptive Communications API.

APIVersion

Requests the driver to return the API version (Siebel Communications API, or SCAPI) for which the driver is implemented. The driver must return the SCAPI_VERSION defined in the header file.

ISCAPI long           APIVersion();

CreateISCDriverInstance

Requests the driver to create the driver handle ISC_DRIVER_HANDLE and to perform other initialization tasks, such as to connect to the CTI middleware.

ISCAPI ISC_RESULT   CreateISCDriverInstance
   /* in  */(const ISC_STRING               mediaTypeStr,
   /* in  */ const ISC_STRING               languageCode,
   /* in  */ const ISC_STRING               connectString,
   /* in  */ const struct ISC_KVParamList*  datasetParams,
   /* out */ ISC_DRIVER_HANDLE*             handle);

FreeSCStrParamList

Releases memory that was initially allocated for the driver.

ISCAPI void   FreeSCStrParamList
   /* in  */(struct ISC_StrParamList        strList);

NOTE:  Each driver must implement this function, in order to free its own memory. If this function is not implemented, then the driver is not loaded.

GetImplementationObject

Returns a data structure for an implementation object, such as might be part of a communications driver implementation. This function might be useful for extending the functionality of an existing driver.

If your communications driver implementation aggregates another communications driver, such that you have an additional object that mediates communication with the driver handle and service handle, then this method can return implementation objects such as the driver handle, service handle, or some other structure.

An aggregate communications driver implementation typically includes a Siebel driver and a separate driver called the aggregate communications driver that extends the main driver's functionality or replaces part of its functionality.

If you write an aggregate communications driver, then it might be useful to invoke the aggregate driver for certain functions. The aggregate communications driver intercepts certain commands for its special operation and passes other commands on to the existing communications driver.

The aggregate driver must be added to the Communications Drivers and Profiles view, so that the driver can be properly initialized and used.

Writing an aggregate communications driver to work with an existing communications driver can save much time compared with writing a driver from scratch.

ISCAPI ISC_RESULT   GetImplementationObject
   /* in  */(ISC_HANDLE     key,
   /* out */ ISC_HANDLE*    impObj);

ReleaseISCDriverInstance

Releases the driver handle that was created using CreateISCDriverInstance, release a CTI middleware connection, and so on.

ISCAPI ISC_RESULT   ReleaseISCDriverInstance
   /* in  */(ISC_DRIVER_HANDLE              handle);

RequestCommandEventList

Returns the list of supported commands or events.

ISCAPI ISC_RESULT   RequestCommandEventList
   /* in  */(const ISC_STRING            mediaTypeStr,
   /* out */ struct ISC_StrParamList*    commandList,
   /* out */ struct ISC_StrParamList*    eventList);

RequestMediaTypeList

Returns the supported channel type.

ISCAPI ISC_RESULT   RequestMediaTypeList
   /* out */(struct ISC_StrParamList*     mediaTypeList);

RequestService

Requests the driver to create the service handle ISC_SERVICE_HANDLE and to pass the service type (such as teleset monitoring), user-defined parameters, and the pointer to the Siebel client handle. The driver handle creates the service handle, which in turn communicates with the Siebel application for each agent:

  • For communications drivers provided with Siebel Business Applications, all parameter data is passed to the communications driver in the datasetParams parameter.
  • For a customer-implemented communications driver, additional data can be passed to the service handle using the paramString variable.

    ISCAPI ISC_RESULT   RequestService
       /* in  */(ISC_DRIVER_HANDLE                  handle,
       /* in  */ const struct ISC_CLIENT_INTERFACE  clntInterface,
       /* in  */ const ISC_STRING                   connectString,
       /* in  */ const struct ISC_KVParamList*      datasetParams,
       /* out */ ISC_SERVICE_HANDLE*                serviceHandle);

Siebel CTI Administration Guide Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Legal Notices.