The Group Chat feature relies on several protocols: Session Initiation Protocol (SIP)/Transport Layer Security (TLS), Windows Communication Foundation (WCF), HTTPS, and Message Queuing (also known as MSMQ).
Session Initiation Protocol (SIP)
By using SIP over TLS as its key client-server communications protocol, the Group Chat feature harnesses the core real-time communications (RTC) capabilities of Office Communication Server 2007 R2, including the client-side and server side application programming interfaces (APIs), authentication, encryption, registration, presence, and routing.
Furthermore, because SIP is a general-purpose signaling protocol that can transport payloads that contain other protocols (for example, Session Description Protocol (SDP) or Centralized Conferencing Control Protocol (C3P)), most of the Group Chat client-server traffic consists of SIP INFO messages containing an XML-based protocol, XCCOS. XCCOS is a proprietary format for transmitting data between Front End Servers and Group Chat clients. In addition to transporting the chat messages, it provides support for federated Group Chat, channel invitations, activity notifications, and posting of files.
The Group Chat Lookup and Channel services register as SIP endpoints with an Office Communications Server Front End pool. Clients communicate with them by using SIP INFO messages that contain XCCOS commands and responses.
Windows Communication Foundation (WCF)
When a deployment includes multiple Group Chat Servers, the Lookup service uses WCF over TLS on each Group Chat Server to monitor the load on each server and determine which Channel service instances should receive new client connections.
The Channel services also use WCF to relay messages with each other. Clients are balanced across the available Channel service instance. As a result, when a new message comes in to a Chat Room (channel) on one Channel service instance, in addition to rebroadcasting the message to the other active participants subscribed to that Chat Room over SIP, the Channel service forwards the message over WCF to the other Channel service instances in the array, which in turn forwards the messages to the Chat Room subscribers actively connected to those other instances.
Uploading and downloading files to and from Group Chat clients and the Web service occurs over HTTPS.
This traffic is the only Group Chat client-server communication that does not occur over SIP.
For deployments that include the optional Compliance service, each Channel service uses Message Queuing to publish the following events to the Compliance service:
- New chat messages
- A user entering or exiting a chat room
- File uploads and downloads
- Queries and searches against the chat history
The Compliance service temporarily stores the events and chat messages in its back-end database. In addition to extracting the events and chat messages from the database and writing them to files in a shared directory, the Compliance service also obtains copies of all uploaded files and writes them to an Attachment subdirectory in the shared directory for pickup for pickup by your archiving solution.