The main conferencing infrastructure components of Office Communications Server 2007 R2 are the Focus instances, Focus Factory, Conferencing Server Factory and conferencing servers for each media type. SQL Server databases are used for storing the persistent state.
The following figure shows the conferencing component interrelationships.
The Focus Factory and Focus components run in the main conferencing process, which is also the Session Initiation Protocol (SIP) Proxy process (RTCSrv). The Conferencing Server Factory is a fairly lightweight component (hosted by the RTCHost process) that is accessed by the Focus once for each media type when that media needs to be activated for the conference. The Conferencing Server Factory is an application running on each Front End Server and uses an HTTP interface. Communication between the Focus and conferencing servers, and between the Conferencing Server Factory and conferencing servers is HTTP-based.
The Focus is the central policy and state manager for a conference and acts as the coordinator for all aspects of the conference. The Focus is responsible for enforcing the conference control policy, managing the overall security for a conference, managing conference participant roles and privileges, sending conference state notifications to clients and providing a conduit for control commands to flow between clients and conferencing servers.
When a new media type must be activated for a conference, the Focus also instantiates the conference on the appropriate conferencing server, communicates with the conferencing server about adding a new user, obtains the authorization credentials so the client can connect to that conference, and then sends the media information to the client. The same sequence is repeated for all clients who want to add this media. When a new media type is added to the conference, the sequence is repeated with the new conferencing server for that media type. By centralizing the security enforcement and roster management, the Focus relieves each of the conferencing servers of this duty.
The Focus Factory is a SIP entity that creates, deletes, and modifies meetings in the conferencing database. The Focus Factory manipulates meetings in the conferencing database according to Centralized Conferencing Control Protocol (C3P) commands that are issued by clients.
Conferencing Server Factory
The Conferencing Server Factory is responsible for provisioning a conference for a particular media type on a conferencing server. The Conferencing Server Factory can also take into account the current load on the conferencing servers before assigning a conferencing server to a conference. There is one Conferencing Server Factory instance on each Front End Server, which handles all media types.
A Focus holds important information for the entire conference, including all conference participants. If a Focus instance fails, it must be possible to restart the conference. To support this, any state information that is needed to resume the conference persists in a conferencing database, which runs on the SQL Server back-end database. In Office Communications Server 2007 R2, presence and registrar information, and conferencing information are stored in different tables of the same physical database.
The important metadata associated with a conference in the conferencing database includes the following:
- Conference ID.
- PSTN Meeting ID.
- Expiration date and time of the conference.
- List of meeting participant roles and the privileges associated
with those roles.
- Conference key for participants without an identity in Active
- Supported media types.
- Authorization types (for example, closed, open, and anonymous).
The conferencing database contains the metadata for a conference but does not contain calendar information. Conference calendar information (for example, meeting start and end times), the recurrence schedule, and exceptions to recurrence are all important for a prescheduled conference, but that information is maintained outside of the conferencing database. Instead, conference calendar information is maintained by scheduling clients, as appropriate, typically as an Exchange Server calendar item.
The Focus stores all conference state information on the Back-End Database Server to ensure that state information is accessible to all Front End Servers. With this model, if a client loses connectivity to the conferencing server, the client can reconnect, and its request can be handled by any Front End Server. This provides a natural failover model for front-end failures, as well as temporary loss of network connectivity from client to server. Similarly, information about conferencing server load persists on the Back-End Database Server, so that it is available to a Conferencing Server Factory instance running on any Front End Server. This data is written by a Conferencing Server Factory to the database, but any conferencing server for a particular media type under the control of the Conferencing Server Factory can read the database.