Siebel Communications Server Administration Guide > Developing a Communications Driver > Adaptive Communications Design >
Initialization of Communications Drivers
Driver initialization may involve initializing two handles for each communications driver implementation: ISC_DRIVER_HANDLE (the driver handle) and ISC_SERVICE_HANDLE (the service handle).
For drivers loaded on a Siebel Server machine, the driver handle is typically initialized only once, rather than once for each agent session. This depends on your driver implementation.
The driver handle and service handle can be implemented in any appropriate language, but must be implemented together using the same language.
Loading Communications Drivers
The process of loading a communications driver is as follows:
- The channel manager invokes the driver handle method APIVersion, to check the driver's API version. The API version defined in the driver's header file must match the API version for Communications Server. See APIVersion.
- The channel manager invokes the driver handle method CreateISCDriverInstance, to create the driver instance. The channel string passed to this method is collected from the driver record that is created in the Communications Drivers and Profiles view, in the Administration - Communications screen. See CreateISCDriverInstance.
- The channel manager invokes the driver handle method RequestCommandEventList, to retrieve the list of events and commands this driver supports. See RequestCommandEventList.
- The channel manager invokes the driver handle method RequestService, to create a service object. See RequestService.
If any step listed above fails, the driver loading fails. If multiple driver profiles must be loaded, the above process is repeated for each profile.
During initialization of an interactive communications driver, the CreateISCDriverInstance method is called to create the driver handle.
This method uses driver and profile parameter data (parameters prefaced with "Driver:" or parameters without a prefacing keyword) from the communications configuration, specified in the Communications Drivers and Profiles view.
For more information about the CreateISCDriverInstance method, see CreateISCDriverInstance.
After the driver handle has been created, the driver handle method RequestService is invoked, to request the driver handle to provide a service. Driver parameters (parameters prefaced with "Service:" or parameters without a prefacing keyword) are passed, which were specified in the Communications Drivers and Profiles view.
In response to this request, the driver handle returns the service handle (ISC_SERVICE_HANDLE), one instance for each agent. Calling methods of the service handle makes the feature set of the communications system available.
The driver handle and service handle together make up the implementation of the communications driver, along with other program data and logic.
Your implementation of the service handle invokes methods of the client handle, ISC_CLIENT_HANDLE. The client handle is implemented by Siebel Systems.
For more information about the RequestService method, see RequestService.