Real-Time Events

Real-time events (such as call events, state events, and so on) are sent by the Cisco Finesse Notification Service, using the XEP-0060 Publish-Subscribe extension of the XMPP (Extensible Messaging and Presence Protocol) protocol. All real-time events are sent over HTTPS.

The agents must remain connected to the Cisco Notification Service to retain the user presence information. If not, it can result in unexpected behavior or cause the desktop not to respond as expected.

Note

The developer content below only applies to the third-party application building its own XMPP client to communicate with the Finesse server. Gadgets running on the desktop need not do anything to receive events, as the desktop handles this automatically and makes the events available through the respective Javascript API interfaces.

Applications that need to communicate with the Notification Service must use XMPP over the BOSH (Bidirectional-streams Over Synchronous HTTP)/WebSocket transport.

BOSH/WebSocket is an open technology for real-time communication and is useful for emulating a long-lived, bidirectional TCP connection between two entities (such as client and server). See documentation at the XMPP Standards Foundation (http://www.xmpp.org) for details about both XMPP and BOSH/WebSocket (XEP-0124).

Client applications can communicate with the Cisco Finesse Notification Service through BOSH/WebSocket over HTTPS, using the binding URI https://<FQDN>:7443/http-bind. Developers can create their own BOSH/WebSocket library or use any that are available publicly. Finesse desktop uses the Strophe.js XMPP library internally to manage its XMPP connections over BOSH/Websocket.

Applications receive notification events of feeds to which they are subscribed. Users are currently subscribed to a few feeds by default (subject to change). Other feeds require an explicit subscription (see Subscription Management).

XMPP Connection Management

  1. After creating the connection, the client application must send a priority stanza with a non-negative presence priority to ensure all events are recieved. It is advisable to set the presence priority as 0 by default. For more details about the presence information, see the Mapping the Extensible Messaging and Presence Protocol (XMPP) to Common Presence and Instant Messaging (CPIM) documenation.

  2. Stream management is not supported by the Finesse Notification service and clients cannot use this feature.

  3. Finesse depends on the presence availability of the agent to drive automatic logouts. Therefore, ensure that the whitespace pings are enabled and have retries to handle failures. Finesse uses ping interval value of 10 seconds and 2 retries.