Audio Conferencing Deep Dive Tim Carr Microsoft Microsoft

  • Slides: 64
Download presentation
Audio Conferencing Deep Dive Tim Carr (Microsoft) Microsoft Office Communications Server 2007 R 2

Audio Conferencing Deep Dive Tim Carr (Microsoft) Microsoft Office Communications Server 2007 R 2 Audio Conferencing Deep Dive UNC 313

Agenda Roles and their Interactions Scheduling a meeting and meeting access types Demo: scheduling

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

Now Developed in der Schweiz … at the Zurich Development Center

Sample PSTN Dial-in Enabled Deployment

Sample PSTN Dial-in Enabled Deployment

OCS 2007 R 2 Roles Management Information Worker (UC endpoints) Remote Users Reverse Proxy

OCS 2007 R 2 Roles Management Information Worker (UC endpoints) Remote Users Reverse Proxy Communicator Phone Edition Meeting Console Communicator Attendant Console MOM MMC WMI Access Edge Front End Federated Company Back End ABS, DL, Content Active Directory Archiving Web Edge Monitoring A/V Edge SIP Trunk PSTN and Mobile Phones TDM PBX Registrar, Proxy, Presence Response Group SQL Database Group Chat Mediation Server A/V MCU Web Conf MCU App Share MCU Exchange 2007 SP 1 CWA Server SIP/Media Translation Audio, Video Slide/Meeting Content Desktop Sharing Email, Unified Messaging Communicator Web Access PSTN GW IP PBX

OCS 2007 R 2 Audio Conferencing Roles UC endpoints Communicator Phone Edition Meeting Console

OCS 2007 R 2 Audio Conferencing Roles UC endpoints Communicator Phone Edition Meeting Console Communicator Front End (FE) Back End (BE) Active Directory SQL Database SIP Trunk PSTN and Mobile Phones TDM PBX Mediation Server A/V MCU Web Conf MCU CWA Server SIP/Media Translation Audio, Video Slide/Meeting Content Communicator Web Access PSTN GW IP PBX

OCS 2007 R 2 Audio Conferencing Roles Unified Communications Application Server (UCAS): Conferencing Attendant

OCS 2007 R 2 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 BE: Conference Directory Outlook Add-in (for scheduling) SQL Database

Still to come… Scheduling a meeting and meeting access types Demo: scheduling a conference

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

demo Scheduling a conference

demo Scheduling a conference

Conference Access Types Access type CA IVR Behavior Invite Anyone (default) Anonymous users can

Conference Access Types Access type CA IVR Behavior Invite Anyone (default) Anonymous users can join, unless they are the first Invite Within Network Users must authenticate to join Invite Within Network (Restricted) Users must authenticate and be invited to join Locked meeting 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

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

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 are grouped into Regions Region = location profile One region can

CA 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

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

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: //<cwa>/dialin) Has a public page for phone #s Uses Integrated Windows Authentication (IWA) and formsbased authentication Linked to from Office Communicator Conferencing Add-In and meeting invitations

Dial-in Conferencing Information Page

Dial-in Conferencing Information Page

Dial-in Conference Creation Important SIP Dialogs Get. Conference. Capabilities – determine if there is

Dial-in Conference Creation Important SIP Dialogs Get. Conference. Capabilities – determine if there is a CA available when scheduling a conference Add. Conference – scheduling a conference Get. Conference – get a scheduled conference. Contains the conference’s location: conf. URI

Dial-in Conference Creation Outlook with Conferencing Add-in SIP Proxy / Focus Factory OCS Database

Dial-in Conference Creation Outlook with Conferencing Add-in SIP Proxy / Focus Factory OCS Database (Conf Directory) SIP SERVICE: Get. Conferencing. Capabilities SELECT meeting capability Return meeting capabilities Return meeting capability data SIP SERVICE: Add. Conference INSERT meeting Return Conference ID & URI SIP SERVICE: Get. Conference Return meeting provisioning data User finishes clicks send SELECT meeting info Return meeting provisioning data Send meeting invitations to participants Exchange

Confirm Pool Supports CA Use get. Conferencing. Capabilities to determine which functions are supported

Confirm Pool Supports CA Use get. Conferencing. Capabilities 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: u@microsoft. com; gruu; opaque=app: conf: focusfactory SIP/2. 0 From: <sip: u@microsoft. com>; tag=2018 ed 7 e 7 f; epid=d 28433 a 0 cd To: <sip: u@microsoft. com; gruu; opaque=app: conf: focusfactory> CSeq: 1 SERVICE Content-Type: application/cccp+xml. . . SIP Headers. . . <request. Id="1" from="sip: u@microsoft. com" to="sip: u@microsoft. com; gruu; opaque=app: conf: focusfactory" xmlns="urn: ietf: params: xml: ns: cccp". . . > <get. Conferencing. Capabilities /> </request>

CA Support Confirmed get. Conferencing. Capabilities returns MCUs + pstn-bridge info Content-Type: application/cccp+xml <response

CA Support Confirmed get. Conferencing. Capabilities returns MCUs + pstn-bridge info Content-Type: application/cccp+xml <response request. Id="1" from="sip: u@microsoft. com; gruu; opaque=app: conf: focusfactory" to="sip: u@microsoft. com" xmlns="urn: ietf: params: xml: ns: cccp" code="success". . . > <get. Conferencing. Capabilities> <mcu-types> <mcu. Type>audio-video</mcu. Type> <mcu. Type>meeting</mcu. Type> <mcu. Type>chat</mcu. Type> <mcu. Type>phone-conf</mcu. Type> </mcu-types> <pstn-bridging> <enabled>true</enabled> <msci: access-numbers> <msci: internal-url>http: //contoso</msci: internal-url> <msci: external-url>http: //www. contoso. com</msci: external-url> <msci: region name=”Usa. West”> <msci: access-number> <msci: language tag="en-US"/> <msci: language tag="es"/> <msci: number>18005555555</msci: number> </msci: region> </pstn-bridging> </get. Conferencing. Capabilities> </response>

Request CA for Conf. Organizer requests a PSTN Bridge for the meeting being created

Request CA for Conf. Organizer requests a PSTN Bridge for the meeting being created (Add. Conference) SERVICE sip: u@microsoft. com; gruu; opaque=app: conf: focusfactory SIP/2. 0 From: <sip: u@microsoft. com>; tag=2018 ed 7 e 7 f; epid=d 28433 a 0 cd To: <sip: u@microsoft. com; gruu; opaque=app: conf: focusfactory> CSeq: 1 SERVICE Content-Type: application/cccp+xml. . . SIP Headers. . . <request. Id="1" from="sip: u@microsoft. com" to="sip: u@microsoft. com; gruu; opaque=app: conf: focusfactory" xmlns="urn: ietf: params: xml: ns: cccp". . . > <add. Conference> <conference-info entity="" xmlns="urn: ietf: params: xml: ns: conference-info"> <conference-description> <subject>Live Conference</subject> <msci: conference-id> abcdef. URI</msci: conference-id>. . . </conference-description>. . . </conference-info> </add. Conference> </request>

Request CA Access Numbers Upon success, ID and Access Numbers returned <add. Conference> <conference-info

Request CA Access Numbers Upon success, ID and Access Numbers returned <add. Conference> <conference-info xmlns="urn: ietf: params: xml: ns: conference-info" entity="sip: u@microsoft. com; gruu; opaque=app: conf: focus: id: abcdef. URI" state="partial" version="1"> <conference-description state="partial"> <cis: separator/> <msci: pstn-access> <msci: id>12345</msci: id> <msci: access-numbers> <msci: internal-url>http: //contoso</msci: internal-url> <msci: external-url>http: //www. contoso. com</msci: external-url> <msci: region name=”Usa. West”> <msci: access-number> <msci: language tag="en-US"/> <msci: language tag="es"/> <msci: number>18005555555</msci: number> </msci: access-number> </msci: region> <msci: region name=”Usa. East”> <msci: access-number> <msci: number>18003335555</msci: number> </msci: access-number> </msci: region> </msci: access-numbers> </msci: pstn-access> </conference-description> </conference-info> </add. Conference>

Still to come… PSTN join process and call flows Demo: PSTN join Planning &

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

demo PSTN Join

demo PSTN Join

Joining A Conference from PSTN Client dials the phone number in the meetinginvite Mediation

Joining A Conference from PSTN Client dials the phone number in the meetinginvite 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 R 2: OCS allows trusted services (apps) to

Trusted Conferencing Identities New in 2007 R 2: 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 plays sounds to the whole conference

CAS & PVA: Sharing a UCAS process 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 entry. Exit. Announcements =true 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 creates a PVA for each user that has entry. Exit. Announcements= true

PSTN Join Dial-in caller via Mediation Server SIP Proxy/Focus/ MCU Factory SIP INVITE Conferencing

PSTN Join Dial-in caller via Mediation Server SIP Proxy/Focus/ MCU Factory SIP INVITE Conferencing Attendant (CA) A/V MCU CAS / PVA Resolve to CA & SIP INVITE Accept call Audio media established Prompt for Conf ID Send data via DTMF Get Focus for Conf ID (Resolve. Conference), add CA to conference Conference details If required, prompt user for credentials Send data via DTMF Send credentials for auth (Verifyconferencekey / verifyuser. PIN) Auth successful (involves lookup on site where user is homed) Add. User INVITE with entry. Exit. Announcements=true INVITE with REPLACEs (xfer) INVITE with REPLACEs (transfer from Mediation Server) Audio media established SIP INVITE CAS joins Focus Play prompts to caller when (un)muted and when other callers join/leave Audio media established

Resolve Conf ID using Meeting ID CA looks up the conference URI using the

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. . . <request. Id="1" from="[CAAgruu]" to="sip: pool. microsoft. com; gruu; opaque=app: conf: focusfactory: resolve" xmlns="urn: ietf: params: xml: ns: cccp"> <resolve. Conference> <pstn-meeting-id>12345</pstn-meeting-id> </resolve. Conference> </request>

Resolve Conf ID using Meeting ID The response… SIP/2. 0 200 OK To: [CAAgruu]

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. . . <response request. Id="1" from="sip: pool. microsoft. com; gruu; opaque=app: conf: focusfactory: resolve" to="[CAAgruu]" code="success" > <resolve. Conference entity="sip: u@microsoft. com; gruu; opaque=app: conf: focus: id: abcdef. URI"> <ci: user entity=”u@microsoft. com”/> <msci: conference-id>abcdef. URI</msci: conference-id> </resolve. Conference> </response>

PSTN ID <-> URI: Conf. Directory A mapping of Conference IDs to Conference URIs

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

Still to come… Planning & Deployment Demo: configuring global policy & CA QFE changes Reports, CDRs and Performance Counters

Usage Model Category Description Meeting type 50% Scheduled meetings 50% “Meet now” meetings Meeting

Usage Model Category Description Meeting type 50% Scheduled meetings 50% “Meet now” meetings Meeting participant distribution 50% internal 25% remote access 15% anonymous 10% federated Meeting concurrency 5% of users will be in conferences during working hours 100% of users join in first 10 minutes Meeting media distribution 50%: Vo. IP audio mixed with PSTN audio dial-ins 2: 1 ratio of Vo. IP 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 Mo. H average duration: 5 minutes

Usage Model Category Description Example: 100 k users Meeting 5% of users will be

Usage Model Category Description Example: 100 k users Meeting 5% of users will be in conferences concurrency during working hours 100 k * 5% = 5, 000 concurrent users Meeting media distribution 50%: Vo. IP audio mixed with PSTN audio dial-ins 2: 1 ratio of Vo. IP to PSTN audio 50% / (2+1) = ~16. 5% PSTN 10%: PSTN audio dial-in Total PSTN audio users: 26. 5% 5000 * 26. 5% = 1, 325 concurrent PSTN dial-in users (during working hours) Specific to CA Average CA call duration: 45 seconds Hearing music on hold (vs join direct): 60% calls Mo. H average duration: 5 minutes Concurrent calls hearing Mo. H: (60% * 1325 / 10 (ramp time) * 5 (avg Mo. H)) = 398 Without Mo. H: (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

Extending the Example to Servers Component Conferencing Attendant Supported Performance 450 simultaneous calls (based on a computer with 8 processor cores running at 2. 33 Ghz, and 4 GB of memory) if it is only UCAS app active Collocated Access Edge & Web Access Edge Server: 5, 000 client connections Conferencing Edge Server Web Conferencing Edge Server: 1, 500 client connections Consolidated Edge Topology: Access Edge Server: 5, 000 client connections Collocated Access Edge, Web Conferencing Edge & A/V Edge Web Conferencing Edge Server: 1, 000 client Servers connections A/V Edge Server 500 concurrent audio/video sessions

Extending the Example to Servers OCS Standard Edition (SE): max 5000 users on 1

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 (~11 k users per server) For 100 k 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: App.

Deployment Enterprise-voice recommended, but not required 1. Deploy OCS SE or EE with: App. Server (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

demo Configuring Server for Dial-in Conferencing

demo Configuring Server for Dial-in Conferencing

Changes since RTM: Build 6907. 37 “QFE 2” IVR Enhancements Authenticated users start conferences

Changes since RTM: Build 6907. 37 “QFE 2” 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 QFE 8

Call Detail Records (CDR) Monitoring Server collects CDRs By default data stored on Monitoring

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 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 can be filtered by: Dates (can choose range) Granularity

CDR: using Monitoring Server Reports can be filtered by: Dates (can choose range) Granularity (hourly, daily, weekly, monthly) Participant count, conference count, minutes

CDR: Example Report

CDR: Example Report

Monitoring with SCOM OCS management pack runs on Monitoring Server only So to monitor

Monitoring with SCOM OCS management pack runs on Monitoring Server only So to monitor OCS with SCOM you must deploy Monitoring Server collects performance counters Access counters with Perf. Mon Counters are reset when OCS processes restart

Performance Counters Key conferencing performance counters: Incomplete Calls per sec, Total Incomplete calls Total

Performance Counters Key conferencing performance counters: Incomplete Calls per sec, Total Incomplete calls Total calls successfully transferred to conference Current & Total # of Calls on Mo. H, timeouts on Mo. H 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

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 QFE 2 (build 6907. 37) 3. Deploy Monitoring Server

Related Content Breakout Sessions • UNC 402: ICE: The Secret of Edge Media Connectivity

Related Content Breakout Sessions • UNC 402: ICE: The Secret of Edge Media Connectivity in OCS (Friday 1330 h) • UNC 302: Network Considerations for Deploying OCS 2007 R 2 (past) • UNC 303: Voice Administration and Monitoring for OCS 2007 R 2 (past) • UNC 305: Voice Architecture and Planning for OCS 2007 R 2 (past) Interactive Theater Sessions • UNC 05 -IS: Lessons Learned from Real-World Deployments of OCS 2007 R 2 • UNC 07 -IS: Troubleshooting Microsoft Office Communications Server 2007 R 2 Hands-on Labs • UNC 05 -HOL: Deploying and Configuring OCS 2007 R 2 Enterprise Edition • UNC 09 -HOL: Installing and Configuring Communicator Web Access 2007 R 2

Complete an evaluation on Comm. Net and enter to win an Xbox 360 Elite!

Complete an evaluation on Comm. Net and enter to win an Xbox 360 Elite!

question & answer

question & answer

Resources www. microsoft. com/teched www. microsoft. com/learning Sessions On-Demand & Community Microsoft Certification &

Resources www. microsoft. com/teched www. microsoft. com/learning Sessions On-Demand & Community Microsoft Certification & Training Resources http: //microsoft. com/technet http: //microsoft. com/msdn Resources for IT Professionals Resources for Developers

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows Vista and other product names

© 2009 Microsoft Corporation. All rights reserved. Microsoft, 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.