Tim Carr (Microsoft) Microsoft Office Communications Server 2007 R2 Audio Conferencing Deep Dive UNC 313
Download ReportTranscript Tim Carr (Microsoft) Microsoft Office Communications Server 2007 R2 Audio Conferencing Deep Dive UNC 313
Tim Carr (Microsoft) Microsoft Office Communications Server 2007 R2 Audio Conferencing Deep Dive UNC 313
Agenda
Roles and their Interactions Scheduling a meeting and meeting access types Demo: scheduling a conference PSTN join process and call flows Demo: PSTN join Planning & Deployment Demo: configuring global policy & conferencing attendant (CA) QFE changes Reports, CDRs and Performance Counters
Now Developed in der Schweiz
… at the Zurich Development Center
Sample PSTN Dial-in Enabled Deployment
OCS 2007 R2 Roles
Information Worker (UC endpoints) Remote Users Reverse Proxy Communicator Phone Edition Meeting Console Communicator Attendant Console Access Edge Federated Company Web Edge A/V Edge SIP Trunk Management MOM MMC WMI
Front End Back End
Registrar, Proxy, Presence Response Group SQL Database Mediation Server A/V MCU Web Conf MCU App Share MCU ABS,DL,Content Archiving Monitoring Group Chat Exchange 2007 SP1 Active Directory CWA Server PSTN and Mobile Phones TDM PBX PSTN GW IP PBX SIP/Media Translation Audio, Video Slide/Meeting Content Desktop Sharing Email, Unified Messaging Communicator Web Access
OCS 2007 R2 Audio Conferencing Roles
UC endpoints Communicator Phone Edition Meeting Console Communicator
Front End (FE) Back End (BE)
Active Directory PSTN and Mobile Phones SIP Trunk Mediation Server A/V MCU Web Conf MCU TDM PBX PSTN GW IP PBX SIP/Media Translation Audio, Video Slide/Meeting Content SQL Database CWA Server Communicator Web Access
OCS 2007 R2 Audio Conferencing Roles
Unified Communications Application Server (UCAS):
Conferencing Attendant (CA), Conferencing Announcement Service (CAS) & Personal Virtual Assistant (PVA)
Front End (FE) Back End (BE)
Other Roles and Dependencies: FE: Focus, Focus Factory, SIP proxy, MCU factory SQL Database BE: Conference Directory Outlook Add-in (for scheduling)
Still to come…
Scheduling a meeting and meeting access types Demo: scheduling a conference PSTN join process and call flows Demo: PSTN join Planning & Deployment Demo: configuring global policy & CA QFE changes Reports, CDRs and Performance Counters
Scheduling a conference
Conference Access Types
Access type
Invite Anyone (default) Invite Within Network Invite Within Network (Restricted) Locked meeting
CA IVR Behavior
Anonymous users can join, unless they are the first Users must authenticate to join Users must authenticate and be invited to join Users must authenticate and be an invited leader to join
Figure 1: scheduling a meeting Figure 2: locking a meeting
CA Access Numbers
Access numbers are global Access numbers are serviced by one pool (one CA) … but one pool/CA can have multiple access numbers
CA Access Numbers
Display number – phone number displayed in meeting invite Display name – display name that appears in OC contact list Line URI – used for routing SIP URI Serviced by pool – which CA serves the number Primary language – the default language use for first prompt Secondary languages – other supported languages
CA Access Numbers
Access Numbers are grouped into Regions Region = location profile One region can have multiple access numbers One access number can be assigned to multiple regions
CA Access Numbers
When a user schedules a meeting, their location profile is used to choose default Region … that Region’s Access Numbers are shown in the invite End user can change the Region … which changes what phone numbers are shown in the invite Invite has a link to Dial-in Conferencing page which shows all Access Numbers in all Regions Any access number can be used to join any conference
Dial-in Conferencing Information Page
A web page that provides Call-in phone numbers PIN management Reservation-less meeting entry information Hosted on CWA server (https://
Dial-in Conferencing Information Page
Dial-in Conference Creation
Important SIP Dialogs GetConferenceCapabilities – determine if there is a CA available when scheduling a conference AddConference – scheduling a conference GetConference – get a scheduled conference. Contains the conference’s location: confURI
Dial-in Conference Creation
Outlook with Conferencing Add-in SIP Proxy / Focus Factory SIP SERVICE:
GetConferencingCapabilities
OCS Database (Conf Directory) SELECT meeting capability Return meeting capabilities Return meeting capability data User finishes clicks send SIP SERVICE:
AddConference
Return Conference ID & URI INSERT meeting SIP SERVICE: GetConference SELECT meeting info Return meeting provisioning data Return meeting provisioning data Send meeting invitations to participants Exchange
Confirm Pool Supports CA
Use getConferencingCapabilities to determine which functions are supported by Call pool’s Focus Factory Note: This call is directed to the pool of the user that is creating the Conference
SERVICE sip:[email protected];gruu;opaque=app:conf:focusfactory SIP/2.0
From:
CA Support Confirmed
getConferencingCapabilities returns MCUs + pstn-bridge info
Content-Type: application/cccp+xml
Request CA for Conf. (AddConference)
Organizer requests a PSTN Bridge for the meeting being created
SERVICE sip:[email protected];gruu;opaque=app:conf:focusfactory SIP/2.0
From:
...
Request CA Access Numbers
Upon success, ID and Access Numbers returned
Still to come…
PSTN join process and call flows Demo: PSTN join Planning & Deployment Demo: configuring global policy & CA QFE changes Reports, CDRs and Performance Counters
PSTN Join
Joining A Conference from PSTN
PSTN Client dials the phone number in the meeting invite Mediation server routes call to next-hop pool Next-hop pool Inbound Routing performs RNL to locate contact object of CA, forwards call to pool hosting the CA Pool forwards call to the registered FE server endpoint of CA CA answers call, initiates IVR to welcome and authenticate user, and join them to the meeting.
Trusted Conferencing Identities
New in 2007 R2: OCS allows trusted services (apps) to join conferences with any identity they assert CA impersonates the caller (if they authenticate) during join CA, CAS, PVA are trusted services Allowed in Closed authenticated meetings Not counted towards meeting size limit Trusted services: …can send requests to conference without getting challenged …are located in different roster container, will not be visible in Client UI
CAS & PVA: Sharing a UCAS process
CAS
CAS plays sounds to the whole conference at once Entry/exit tones 1 CAS per conference Invited by AVMCU when AVMCU sees a conference participant has entryExitAnnouncements =true
PVA
PVA plays prompts to one participant; only that participant can hear “You are now (un)muted” 1 PVA per participant Created and invited by CAS CAS creates a PVA for each user that has entryExitAnnouncements= true
PSTN Join
Dial-in caller via Mediation Server SIP Proxy/Focus/ MCU Factory SIP INVITE Resolve to CA & SIP INVITE Conferencing Attendant (CA) Accept call Accept call Audio media established Prompt for Conf ID A/V MCU Send data via DTMF Get Focus for Conf ID ( ResolveConference ), add CA to conference Conference details If required, prompt user for credentials Send data via DTMF Send credentials for auth (Verifyconferencekey / verifyuserPIN) Auth successful (involves lookup on site where user is homed) AddUser INVITE with entryExitAnnouncements=true INVITE with REPLACEs (xfer) INVITE with REPLACEs (transfer from Mediation Server) Audio media established SIP INVITE CAS joins Focus CAS / PVA Audio media established Play prompts to caller when (un)muted and when other callers join/leave
Resolve Conf ID using Meeting ID
CA looks up the conference URI using the given meeting ID
SERVICE sip:pool.microsoft.com;gruu;opaque=app:conf:focusfactory:resolve SIP/2.0
To: sip:pool.microsoft.com;gruu;opaque=app:conf:focusfactory:resolve From: [CAAgruu] CSeq: 1 SERVICE Content-Type: application/cccp+xml ...SIP headers...
Resolve Conf ID using Meeting ID
The response…
SIP/2.0 200 OK To: [CAAgruu] From: sip:pool.microsoft.com;gruu;opaque=app:conf:focusfactory:resolve CSeq: 1 SERVICE Content-Type: application/cccp+xml ...SIP headers...
PSTN ID <-> URI: Conf. Directory
A mapping of Conference IDs to Conference URIs Necessary to convert SIP URIs to/from numeric-only IDs that numeric entry systems (such as PSTN) can enter No exposure to end users Admins need to maintain Conference Directories (Disaster Recovery, Decommissioning Pools, Moving Pools) Related Terms Directory ID: a short numeric ID used to identify a conference directory Conference Resolution: Process of mapping a conf ID to a conference URI
Still to come…
Planning & Deployment Demo: configuring global policy & CA QFE changes Reports, CDRs and Performance Counters
Usage Model
Category
Meeting type 50% Scheduled meetings 50% “Meet now” meetings
Description
Meeting participant distribution Meeting concurrency Meeting media distribution 50% internal 25% remote access 15% anonymous 10% federated 5% of users will be in conferences during working hours 100% of users join in first 10 minutes 50%: VoIP audio mixed with PSTN audio dial-ins 2:1 ratio of VoIP to PSTN audio 10%: PSTN audio dial-in conferencing only 25%: PSTN audio through 3 rd party ACP 15%: No audio e.g. IM-only Specific to CA Average CA call duration: 45 seconds Hearing music on hold (vs join direct): 60% calls MoH average duration: 5 minutes
Usage Model
Category
Meeting concurrency Meeting media distribution Specific to CA
Description
5% of users will be in conferences during working hours 50%: VoIP audio mixed with PSTN audio dial-ins 2:1 ratio of VoIP to PSTN audio 50% / (2+1) = ~16.5% PSTN 10%: PSTN audio dial-in Total PSTN audio users: 26.5% Average CA call duration: 45 seconds Hearing music on hold (vs join direct): 60% calls MoH average duration: 5 minutes
Example: 100k users
100k * 5% = 5,000 concurrent users 5000 * 26.5% = 1,325 concurrent PSTN dial-in users (during working hours) Concurrent calls hearing MoH: (60% * 1325 / 10 (ramp time) * 5 (avg MoH)) = 398 Without MoH: (40% * 1325 / 10 * (45/60)) = 40
Total: 438 concurrent CA calls
Extending the Example to Servers
Component Conferencing Attendant Supported Performance
450 simultaneous calls (based on a computer with 8 processor cores running at 2.33Ghz, and 4GB of memory) if it is only UCAS app active Collocated Access Edge & Web Conferencing Edge Server Access Edge Server: 5,000 client connections Web Conferencing Edge Server: 1,500 client connections Consolidated Edge Topology: Collocated Access Edge, Web Conferencing Edge & A/V Edge Servers Access Edge Server: 5,000 client connections Web Conferencing Edge Server: 1,000 client connections A/V Edge Server 500 concurrent audio/video sessions
Extending the Example to Servers
OCS Standard Edition (SE): max 5000 users on 1 server For 5000 users: 22 concurrent CA calls on 1 server OCS Enterprise Edition (EE): max 100,000 users on 8 FE servers + 1 BE server (~11k users per server) For 100k users: 438 concurrent CA calls on 8 FEs, or 55 concurrent CA calls per server 55 is 12% of max supported 450, so on average
you’re at 12% capacity
Deployment
Enterprise-voice recommended, but not required 1. Deploy OCS SE or EE with: AppServer (CA & CAS), and CWA 2. Create location profiles with normalization rules so calls can be routed to CA 3. Configure global policy: turn on dial-in conferencing support, specify whether anonymous users are allowed to participate 4. Deploy a Mediation Server to route calls to and from the PSTN 5. Deploy a third-party basic media gateway or configure the Mediation Server to perform SIP trunking 6. Configure CA 7. Deploy Outlook addin (scheduling support), inform users
Configuring Server for Dial-in Conferencing
Changes since RTM: Build 6907.37 “QFE2”
IVR Enhancements Authenticated users start conferences (not just leaders) Don’t prompt for authentication if conf started PSTN leaders are asked for passcode if there is one There is a way out of authentication loop (press *) Users can share phone-numbers/exts and still authenticate, as long as they have unique PINs Better error-handling on dial-in settings page Admin can schedule meetings on Boss’ calendar Admin & Boss can both change meetings (on OCS, owner=Boss) Outlook addin changes are in QFE8
Call Detail Records (CDR)
Monitoring Server collects CDRs By default data stored on Monitoring Server (not BE) Collocating with other server roles / DBs not recommended One Monitoring Server supports 200,000 users total , across multiple pools Data collected by Data Collection Agents Agents are automatically installed on FE … but they don’t collect anything until Monitoring Server deployed Main data points captured for conferences Conference URI, start time, end time User join time, leave time User join & leave time to conferencing servers (A/V, Data, IM etc)
Endpoint is PSTN or not
CDR: using Monitoring Server Reports
Reports can be filtered by: Dates (can choose range) Granularity (hourly, daily, weekly, monthly) Participant count, conference count, minutes
CDR: Example Report
Monitoring with SCOM
OCS management pack runs on Monitoring Server only So to monitor OCS with SCOM you must deploy Monitoring Server Monitoring Server collects performance counters Access counters with PerfMon Counters are reset when OCS processes restart
Performance Counters
Key conferencing performance counters: Incomplete Calls per sec, Total Incomplete calls Total calls successfully transferred to conference Current & Total # of Calls on MoH, timeouts on MoH Total Calls from UC Client, from PSTN Total # of Mute/Un-Mute/Entry/Exit announcements Current & Total # of: attendees that have joined conferences, active personal announcers, attendees Counters are useful for answering usage questions: Is the load distributed evenly across servers, pools?
How many concurrent calls?
Do I have enough servers? Should I buy more?
3 Top Takeaways 1. If planning PSTN conferencing deployment, use published capacity/scalability data to ensure your peak loads are handled smoothly
Do you have enough servers?
Do you have enough pools, in the right places?
2. Deploy QFE2 (build 6907.37) 3. Deploy Monitoring Server
Related Content
• • • • Breakout Sessions UNC402: ICE: The Secret of Edge Media Connectivity in OCS (Friday 1330h) UNC302: Network Considerations for Deploying OCS 2007 R2 (past) UNC303: Voice Administration and Monitoring for OCS 2007 R2 (past) UNC305: Voice Architecture and Planning for OCS2007 R2 (past) • • Interactive Theater Sessions UNC05-IS: Lessons Learned from Real-World Deployments of OCS 2007 R2 UNC07-IS: Troubleshooting Microsoft Office Communications Server 2007 R2 • • Hands-on Labs UNC05-HOL: Deploying and Configuring OCS 2007 R2 Enterprise Edition UNC09-HOL: Installing and Configuring Communicator Web Access 2007 R2
Complete an evaluation on CommNet and enter to win an Xbox 360 Elite!
Resources
www.microsoft.com/teched Sessions On-Demand & Community www.microsoft.com/learning Microsoft Certification & Training Resources http://microsoft.com/technet Resources for IT Professionals http://microsoft.com/msdn Resources for Developers
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.