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

Methods of ISC_CLIENT_HANDLE


The client handle, ISC_CLIENT_HANDLE, is implemented by Siebel Systems. The communications driver calls client handle methods in order to communicate with the Siebel application, such as to send communications events and associated data.

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

BeginBatch

Begins a set of client methods to be invoked in a batch when the corresponding EndBatch method is invoked. Using these methods can reduce network overhead. Developers can use these methods at their discretion, subject to the driver implementation design. See also EndBatch.

ISC_RESULT (*BeginBatch)
  /* in  */(ISC_CLIENT_HANDLE               handle);

CacheCommandInformation

Notify the Siebel client about command-status caching.

For the ith command in commandNames, the command description is at the ith position in commandDescriptions, and the command status is at the ith position in commandStatuses. The SCCommandFlags bit flags are used by commandStatuses.

ISC_RESULT (*CacheCommandInformation)
  /* in  */(ISC_CLIENT_HANDLE               handle,
  /* in  */ const struct ISC_StrParamList*  commandNames,
  /* in  */ const struct ISC_StrParamList*   commandDescriptions,
  /* in  */ const struct ISC_LongParamList* commandStatuses);

CleanAllWorkItem

Notifies the Siebel client that all work items for this service session have been removed.

ISC_RESULT (*CleanAllWorkItem)
   /* in  */(ISC_CLIENT_HANDLE      handle);

EndBatch

Ends a set of client methods to be invoked in a batch when this method is invoked, given the use of the corresponding BeginBatch method to begin the batch. See also BeginBatch.

ISC_RESULT (*BeginBatch)
  /* in  */(ISC_CLIENT_HANDLE               handle);

HandleError

Handle asynchronous errors:

  • If clntCmdTrackID is not 0 (zero), then it contains the same value that was passed to the service handle method InvokeCommand that caused the error.
  • If clntCmdTrackID is set to 0 (zero), the error occurred out of context or the error was associated with a failed call attempt—with which no call ID data is associated.

    ISC_RESULT (*HandleError)
       /* in  */(ISC_CLIENT_HANDLE   handle,
       /* in  */ const ISC_STRING    clntCmdTrackID,
       /* in  */ const ISC_STRING    error);

HandleEvent

Handle the named event received from the communications driver, using the given fields. By calling this method, the communications driver notifies the Siebel client of a communications event, such as a call coming in on the monitored teleset.

If notifyWhenDone is set to TRUE, then the communications driver is notified when event handling is finished. The event's ID is passed (using the trackingID parameter) in a call to the service handle method NotifyEventHandlingFinished. See NotifyEventHandlingFinished.

ISC_RESULT (*HandleEvent)
   /* in  */(ISC_CLIENT_HANDLE              handle,
   /* in  */ const ISC_STRING               name,
   /* in  */ const struct ISC_KVParamList*  fields,
   /* in  */ ISC_BOOLEAN                    notifyWhenDone,
   /* in  */ const ISC_STRING               trackingID);

IndicateNewWorkItem

Indicate a new incoming call by bringing the Siebel application to the front. If the end user has set the Enable Sound option in the User Preferences screen (Communications options), the ringin.au or other user-specified sound file will play.

ISC_RESULT (*IndicateNewWorkItem)
   /* in  */(ISC_CLIENT_HANDLE    handle,
   /* in  */ const ISC_STRING     trackingID,
   /* in  */ const ISC_STRING     oldTrackingID,
   /* in  */ const ISC_STRING     description,
   /* in  */ enum SCWorkItemMode  workItemMode);

ShowStatusText

Display textual status information in the status line of the Siebel client.

ISC_RESULT (*ShowStatusText)
   /* in  */(ISC_CLIENT_HANDLE   handle,
   /* in  */ const ISC_STRING    text);

UpdateObjectInformation

Notify the Siebel application about status changes of communications objects—for example, that an agent has become busy. Notifications about DN status will be used to keep track of when calls end and new calls start. For the object properties that can be provided using datasetInfo, see SCObjectProperty.

ISC_RESULT (*UpdateObjectInformation)
   /* in  */(ISC_CLIENT_HANDLE              handle,
   /* in  */ const ISC_STRING               trackingID,
   /* in  */ const ISC_STRING               mediaTargetAddr,
   /* in  */ const struct ISC_KVParamList*  datasetInfo);

WorkItemReleased

After a work item has been released, such as a phone call disconnected, the driver calls this function.

ISC_RESULT (*WorkItemReleased)
   /* in  */(ISC_CLIENT_HANDLE     handle,
   /* in  */ const ISC_STRING      trackingID,
   /* in  */ time_t                stopTime);

WorkItemResumed

After a work item has been resumed, such as a phone call resumed from hold at the switch, the driver calls this function.

ISC_RESULT (*WorkItemResumed)
   /* in  */(ISC_CLIENT_HANDLE     handle,
   /* in  */ const ISC_STRING      trackingID);

WorkItemStarted

After a work item has been started, such as a phone call connected, the driver calls this function.

ISC_RESULT (*WorkItemStarted)
   /* in  */(ISC_CLIENT_HANDLE     handle,
   /* in  */ const ISC_STRING      trackingID,
   /* in  */ const ISC_STRING      oldTrackingID,
   /* in  */ const ISC_STRING      description,
   /* in  */ const ISC_STRING      mediaTargetAddr,
   /* in  */ time_t                startTime);

WorkItemSuspended

After a work item has been suspended, such as a phone call put on hold at the switch, the driver calls this function.

ISC_RESULT (*WorkItemSuspended)
   /* in  */(ISC_CLIENT_HANDLE     handle,
   /* in  */ const ISC_STRING      trackingID);

Siebel Communications Server Administration Guide