WebACD Inbox Plug-In
The WebACD client plug-in architecture is based on an event model, where individual plug-ins can subscribe to any / all of the available events, and take the appropriate actions. Additional API calls allow the plug-in to call back to the WebACD server to retrieve certain data and state information. The C++ based plug-in model supports multiple plug-ins to one WebACD Inbox client. Each plug-in can subscribe to available events; when an event occurs, all plug-ins with subscriptions are notified.
Plug-in Auto-Discovery
The WebACD client performs an auto-discovery when the WebACD client login is performed. If the plug-in install is performed while the user is logged into the WebACD Inbox, he or she will need to restart the client in order for the plug-in to be detected.
WebACD Plug-in Category
All WebACD third-party plug-ins should use the following category ID: static const GUID CATID_WEBACD_PLUGIN = {0x7499c923, 0x1b0b, 0x494d, {0x9b, 0x56, 0xe7, 0x5b, 0x15, 0xd6, 0x55, 0xff}};
Plug-in Category Support
- Third-party plug-ins should be based on COM / ATL.
- Each plug-in should add the following code (macro) in its class definition:
BEGIN_CATEGORY_MAP(xxxxPlugin) IMPLEMENTED_CATEGORY(CATID_WEBACD_PLUGIN) END_CATEGORY_MAP()
This code will allow the plugin to register itself with the CATID_WEBACD_PLUGIN category during the COM server registration.
Plug-in Installation
Each 3rd party plug-in should have its own installation program. The installation program needs to call the command shown below in order to register itself as a WebACD plug-in. regsvr32 /s XXXPlugin.dll
Plug-in Auto-Discovery
The WebACD client uses the Component Categories Manager to find all installed / registered WebACD plug-ins. After the client finds a compatible plug-in, it first goes through the plug-in authentication process (see "Plug-in Authentication"). Next, the client initializes all accepted plug-ins. After a plug-in is successfully initialized, it will receive its subscribed events from the WebACD client.
Plug-in Initialization
Each plug-in should implement the IWebACDPlugin interface, which includes an Init(¿)
method. The plug-in subscribes to any of the available WebACD events inside the Init() method by using the callback method, subscribeEvent(EventType)
.
Plug-in Authentication
WebACD has a site-level setting that controls whether or not plug-in signature verification is required. If this setting is enabled, a plug-in must be authenticated before it can be used. If it is disabled, authentication will take place automatically. Since this setting resides internally at Webex, at the site level, all sites intended for use with a particular plug-in must be configured accordingly by Webex personnel. If you believe that the site has not been set to use your plug-in, please send an email to webex-meetings-api-dev@cisco.com so they can check the setting.
All plug-ins use the following rules:
- A plug-in is authenticated at the site level. A plug-in that is authenticated for site A still has to be authenticated for site B.
- If a plug-in is digitally signed by a trusted WebACD plug-in vendor, then WebACD will automatically authenticate the plug-in.
- If a plug-in is not provided by a trusted WebACD plug-in vendor, then WebACD will generate a pop-up window asking the agent to accept the plug-in.
- A plug-in only needs to be authenticated once for a site. Once a plug-in is accepted, WebACD will not ask the CSR to accept it again after its auto-discovery.
- The WebACD client stores a keyed hash value in the Windows registry for each authenticated plug-in.
- Changing the "Enforce Plug-in Signature Verification" selection in Super Admin does not affect authenticated plug-ins.
Event Model Summary
Table 2-1 shows a summary of the events that can be subscribed to on the WebACD Inbox client.
Parameters Passed to Event
Incoming Request Parameters
Event | Sync/Async | Event Summary |
---|---|---|
Incoming Request | Sync | Invoked when a new session request is routed to the WebACD Inbox Client. |
Request Accepted on page 7 | Async | Invoked when a new session request is accepted by the CSR. |
Join Session | Async | Invoked when the CSR joins a session. |
Leave Session | Async | invoked when the CSR leaves a session. |
Session Ended | Async | Invoked when a session has ended. |
CSR Status Changed | Async | Invoked when a CSR's availability status is changed. |
Event Details
This section describes the details of each event supported by the WebACD client plug-in.
Incoming Request
Return to Event Model Summary
This synchronous event occurs when a new support request is routed to the CSR's WebACD Inbox.
Parameters Passed to Event
Request Accepted Parameters
Parameter | Type | Description |
---|---|---|
CSR ID | Unsigned Int | Unique identifier for the CSR. |
Customer Data | See Note | Customer information in string format. |
Queue ID | Unsigned Int | Unique identifier for the queue. |
Request ID | Unsigned Int | Unique identifier for the request. |
Session ID | Unsigned Int | Unique identifier for the session. |
Return Values
Values | Type | Description |
---|---|---|
CSR availability |
|
Returns the status of a CSR. |
Request Accepted
Return to Event Model Summary
This asynchronous event occurs when a CSR accepts a support request.
Parameters Passed to Event
Request Accepted Parameters
Parameter | Type | Description |
---|---|---|
CSR ID | Unsigned Int | Unique identifier for the CSR. |
Customer Data | See Note | Customer information in string format. |
Queue ID | Unsigned Int | Unique identifier for the queue. |
Request ID | Unsigned Int | Unique identifier for the request. |
Request Wait Time | Unsigned Int | Request for an estimation of how long until a CSR is available. |
Session ID | Unsigned Int | Unique identifier for the session. |
Return Values
Optional (such as Ticket ID, Ticket URL).
Session Started
Return to Event Model Summary
This asynchronous event occurs when a CSR starts a support session.
Parameters Passed to Event
Session Started Parameters
Parameter | Type | Description |
---|---|---|
CSR ID | Unsigned Int | Unique identifier for the CSR. |
Customer Data | See Note | Customer information in string format. |
Queue ID | Unsigned Int | Unique identifier for the queue. |
Request ID | Unsigned Int | Unique identifier for the request. |
Session ID | Unsigned Int | Unique identifier for the session. |
Session Start Time | Unsigned Int (seconds since 1970/1/1 0:0:0) | The date and time that the session started. |
Return Values
None
Join Session
Return to Event Model Summary
This asynchronous event occurs when a CSR joins a support session.
Parameters Passed to Event
Join Session Parameters
Parameter | Type | Description |
---|---|---|
CSR ID | Unsigned Int | Unique identifier for the CSR. |
Customer Data | See Note | Customer information in string format. |
Join Session Time | Unsigned Int (seconds since 1970/1/1 0:0:0) | The date and time that the CSR joined the session. |
Queue ID | Unsigned Int | Not Required. Unique identifier for the queue. |
Request ID | Unsigned Int | Unique identifier for the request. |
Session ID | Unsigned Int | Unique identifier for the session. |
Return Values
None
Leave Session
Return to Event Model Summary
This asynchronous event occurs when a CSR leaves a support session.
Parameters Passed to Event
Leave Session Parameters
Parameter | Type | Description |
---|---|---|
CSR ID | Unsigned Int | Unique identifier for the CSR. |
Customer Data | See Note | Customer information in string format. |
Leave Session Time | Unsigned Int (seconds since 1970/1/1 0:0:0) | The date and time that the CSR left the session. |
Queue ID | Unsigned Int | Not Required. Unique identifier for the queue. |
Request ID | Unsigned Int | Unique identifier for the request. |
Session ID | Unsigned Int | Unique identifier for the session. |
Return Values
None
Session Ended
Return to Event Model Summary
This asynchronous event occurs when a CSR ends a support session.
Parameters Passed to Event
Session Ended Parameters
Parameter | Type | Description |
---|---|---|
CSR ID | Unsigned Int | Unique identifier for the CSR. |
Customer Data | See Note | Customer information in string format. |
Queue ID | Unsigned Int | Not Required. Unique identifier for the queue. |
Request ID | Unsigned Int | Unique identifier for the request. |
Session End Time | Unsigned Int (seconds since 1970/1/1 0:0:0) | The date and time that the CSR left the session. |
Session ID | Unsigned Int | Unique identifier for the session. |
Return Values
None
CSR Status Changed
Return to Event Model Summary
This asynchronous event occurs when a CSR's availability status changed.
Parameters Passed to Event
CSR Status Changed Parameters
Parameter | Type | Description |
---|---|---|
CSR ID | Unsigned Int | Unique identifier for the CSR |
CSR Status Change From |
Unsigned Int
|
The CSR's previous availability status. |
CRS Status Change to |
Unsigned Int
|
The CSR's current availability status. |
Return Values
None