Tuesday, November 29, 2016

How to configure Cloud Connector Edition with Cloud PBX - Office 365 (Sonus Cloud Link)

It is published in Technet:
#The How-To Guide for Cloud PBX in Office 365 Skype for Business Online with Sonus Cloud Link

This how-to guide is written in technical level 200 for Pre-Sales Consultant and the second half reaches leave 400 for Office 365, Sonus Cloud Link CCE Appliance and the Session Boarder Controller.
We start from the Pre-Sales consulting process and the associated arguments. The Pre-Sales and Consultants will learn how the Cloud Connector Edition is working, technical deep drive inside CCE and last but not least the configuration of Office 365 Skype for Business Online and the wizard based CCE installation. Followed by a common scenario with Cloud PBX and multiple sites across different regions.
Second topic is a direct SIP connection to 3rd party on-premises applications (e.g. Contact Center, local PBX or others). Here we focus on the locally hosted Contact Center.
The question might be asked, “How can we use different CCE sites with different PSTN breakouts assigned?” The answer is, by utilizing a simple two-site deployment that allows replicating the configuration to larger designs with N-Sites.
For the examples that follow, there will be two locations. The first in Munich, Germany, and the other in London, UK. Both sites have their own dedicated PSTN breakout. It will not matter if the connection to the PSTN gateway is via an ISDN/PRI, or an SIP Trunk line. However, there can be a PBX behind the local site gateway.
If Media Bypass is not available, the user can connect to the customer’s LAN, and the connection to the Mediation Server can be direct if firewall rules allow this path. In this scenario, the users connect over the Internet.
PSTN-based calls can generally flow in two directions, from PSTN -> Cloud PBX user, or from the Cloud PBX user -> PSTN. The simplest call flow is the incoming call from PSTN -> Cloud PBX.
Every CCE has a direct connection/path to the Microsoft Office 365 Skype for Business online platform. Therefore, every incoming call will be signalized to the Cloud PBX directly. There are no other logical or technical considerations.

Table of Contents

Introduction to Cloud Connector Edition     5
CCE Planning and Configuration Guide     5
CCE Voice Routing with Multi-site (Generic)    5
CCE Network Switches in Hyper-V      7
Generic Sonus CCE Appliance Setup     8
Advanced Features       9
Network Setup        10
Generating the CSR and Import Certificate    10
Configuring the CCE       11
Infrastructure Definition of Cloud Connector Edition   12
Scenario-based Infrastructure      12
System, MPLS and Connectivity Infrastructure    13
CCE Appliance Infrastructure      15
Logical Infrastructure       17
DNS         17
External Certificates       18
Internal Certificates       19
Firewall Port Configuration      20
Configuration Guide for Users, Dial-Plans, Voice Routes and PSTN Usage 21
Connect to Skype for Business Online     21
Management Guide for Users      22
Reading and Writing User Information and Settings   22
Configuration Guide for Cloud Connector on the Sonus Appliance  23
Cloud Connector Configuration Data Definition    24
Configuration Data Definition APSITE1 (Malaysia)   25
Configuration Data Definition APSITE2 (Germany)    26
Cloud Connector Configuration Files (CloudConnector.ini)  27
Configuring the Sonus Appliance      34
Sonus Appliance Setup – Germany Site     34
Sonus Appliance Setup – Malaysia Site     45
Sonus Session Border Controller Configuration Numbering (Normalization) 56
Normalization – CCE Deployment Overview     56
Normalization – Configuration      57
Normalization – Germany Site (Munich and Toronto)   58
Normalization – Malaysia Site (Kuala Lumpur)    60
Normalization – Incoming from SIP Trunk (Summary)   66
Setting Up the Contact Center Connections    67
Configuring Microsoft Office 365     72
Establishing a Skype for Business Online Session   74
Creating a Hybrid PSTN Site      75
Managing Hybrid PSTN Users      76
Assigning a Hybrid PSTN Site to Users     76
Assigning Voice to Users (Cloud PBX)     76
Assigning On-premises Phone Numbers to Cloud PBX Users   79
Testing All Configurations and Connections..............................82
DialPlans With CCE in Office 365     88
Commandlets for Online Configuration     89
Dial-in Conferencing Commandlets     89
E911 and Location Information Service (LIS) Commandlets   89
Skype Meeting Broadcast Commandlets     89
PSTN Calling Commandlets      89
Hybrid PSTN Site and User Commandlets     90
Internet Protocol Phone Commandlets     90
Reporting Commandlets       90
Online User Commandlets       90
Cloud Connector INI File Parameters     91

Sunday, November 27, 2016

PowerPoint Presentation with Skype for Business in Office 365 Workflow

Office Online Server Deep Drive with Skype for Business

The Office Online Server (formerly know as Web App Server) in Office 365 and On-Premises are identical in their feature and functionality. Nevertheless, if you are hosted on Office 365, you have limited support procedures. You have to assume that the OOS Server is working correctly in the Microsoft Datacenters.

It is necessary understanding the workflow for PowerPoint presentation in Skype for Business troubleshooting connection issues. While if you operate On-Premises Office Online Server, you have to validate your own topology and deployment.

Key in Skype for Business and Lync 2013 is the standard HTML 5 and JavaScript to broadcast of PowerPoint presentations. This a different method than Audio, Video or Content meetings.

As the OOS Server is not only useable for Skype for Business PowerPoint presentations, it also supports all other Office Application, like Word, Excel or OneNote.

 The rendered HTML5/JavaScript stream send to the clients have two different contents.

Presenter: Main PowerPoint slide frame, Note Views and Slides View
Attendee: Active PowerPoint presentation slide only

Only for simpler understandings, the Skype for Business Client presents his own Web Browser displaying the PowerPoint Presentation.

Workflow process with Skype for Business Client

We focus here only on PowerPoint presentations in Skype for Business.

In Skype for Business 2015 Server we need Office Online Server to render the PowerPoint presentation if we are initiation it using Skype for Business 2015 Clients.

Once a Skype for Business 2015 user initiates or try to view PowerPoint presentation, the PowerPoint presentation file will be uploaded to the Frontend Server where the user is associated in his conference.

This is in Office 365 identical with the On-Premises Skype for Business Server 2015 deployment.

1.       During the Frontend Server startup, the DataMCU discovers the OWA URL configured in the Topology, stored in the CMS

2.       Skype for Business 2015 Frontend Server encrypts and saves the PowerPoint file on to the Content file store (Skype for Business file share). A File ID and Access Token for the PowerPoint file uploaded is generated.
This is handled by the SfB Frontend Server hosting the Conference

3.       Skype for Business Frontend Server then prepares OOS URL (stored in CMS during OOS Discovery process) and forms an URL that includes, OOS Presentation URL, File ID and Access Token of the PowerPoint File.
This is the initial process for the next SIP Messages

4.       Skype for Business Frontend Server sends this OOS URL formed to presenter as well as attendees in a single SIP Messages

5.       Skype for Business Presenter/Attendee’s Client contacts the presented URL for Office Web App Server to get the PowerPoint presentation.

6.       The Office Online Server receives this request including the Access Token, File ID and File location (file share) from the Skype for Business Clients and access the PowerPoint file by contacting the Skype for Business Content File Store via Skype for Business Frontend Server (Skype for Business Web Services FQDN will also be present in the initial Request).

7.      Office Online Server makes a temporary copy of PowerPoint file on his local HDD and creates html (dochtml) file. This file is send to the Presenter/Attendee’s Client for PowerPoint presentation displaying the rendered HTML5 stream on the client.

Discover SIP message for Office 365 Office Web App Server with Skype for Business Client

The following Office Online Server URLs are used for presenters and attendees in frame presentation.
For example, you should see something similar to this:

Office Web Apps Server external presenter page: https://atl-officewebapps-001.sbweb.microsoft.com /m/Presenter.aspx?a=0&embed

Office Web Apps Server internal attendee page: https://atl-officewebapps-001.sbweb.microsoft.com /m/ParticipantFrame.aspx?a=0&embed=true&

Internally, if the OWA Server is deployed on-premise, a generic verification can be queried with


Shown below is the OOS ContentMCP URL Invite to Office 365

SfB Web Services contain the information where the OOS Server is located

INFO sip:;transport=tls;ms-opaque=b66c1b651b;ms-received-cid=18BB9F00;grid SIP/2.0
ms-user-logon-data: RemoteUser
Via: SIP/2.0/TLS;branch=z9hG4bK33BC3F0F.B6885C089D226DC2;branched=FALSE;ms-internal-info="byLbEt7TDY2BRD2lfniPRH9t9XjqSULxeVpdTFfVTHZBQIXIi2Vy-NGgAA"
Via: SIP/2.0/TLS;branch=z9hG4bK2FFCECAB.EA30ADEEE8FCADC2;branched=FALSE;ms-received-port=40756;ms-received-cid=18B30F00
Via: SIP/2.0/TLS;branch=z9hG4bK7E5178DB.7563BC148DAD4DC2;branched=FALSE;ms-received-port=31914;ms-received-cid=233F00
Via: SIP/2.0/TLS;branch=z9hG4bKF810FC61.E25A5454B9713DC2;branched=FALSE;ms-received-port=41359;ms-received-cid=8CEA4900
Via: SIP/2.0/TLS;branch=z9hG4bK05E2F24C.89738AA64FA50DC2;branched=FALSE;ms-internal-info="cgJWVOAPA2rAwKfYpS_cF5VN7flPgyZGFy1KF4Rk8mD4GminOJ5qZYoQAA";received=;ms-received-port=62500;ms-received-cid=8277B00
Via: SIP/2.0/TLS;branch=z9hG4bK8CF474DE.31AE6122DB5F3DC2;branched=FALSE;ms-received-port=57130;ms-received-cid=55A25D00
Via: SIP/2.0/TLS;branch=z9hG4bKBBFAD0B2.C8D3E561880C1DC2;branched=FALSE;ms-received-port=56192;ms-received-cid=5D91100
Authentication-Info: TLS-DSK qop="auth", opaque="D306D9C7", srand="B3CF98AF", snum="519", rspauth="5052fc42971130364577cdf27e32fb9326e57e42", targetname="SN20B08FES06.infra.lync.com", realm="SIP Communications Service", version=4
Max-Forwards: 64
Content-Length: 10500
From: <sip:user@microsoft.com;gruu;opaque=app:conf:focus:id:W6DBDSCK>;tag=EA020080
To: <sip:thomas.poett@westcongroup.com>;tag=e701f03f63;epid=8c32b8529e
Call-ID: 7de04d27f71943d09951e938951f8fd3
CSeq: 6348 INFO
Supported: ms-dialog-route-set-update
Content-Type: application/cccp+xml
ms-telemetry-id: 6AA50D8A-01E8-5953-B818-CC6924C1525C
ms-edge-proxy-message-trust: ms-source-type=AutoFederation;ms-ep-fqdn=sipedgeDM21A.infra.lync.com;ms-source-verified-user=verified;ms-source-network=federation

- <response  xmlns="urn:ietf:params:xml:ns:cccp"
-  <addUser>
   <conferenceKeys  confEntity="sip:user@microsoft.com;gruu;opaque=app:conf:focus:id:W6DBDSCK"/>
+  <user  xmlns="urn:ietf:params:xml:ns:conference-info"
+  <info  xmlns="http://schemas.microsoft.com/rtc/2005/08/cccpextensions">
-  <connection-info  xmlns="http://schemas.microsoft.com/rtc/2005/08/cccpextensions">
-  <entry>
- </entry>
-  <entry>
- </entry>
-  <entry>
- </entry>
- </entry>
- </connection-info>
- </addUser>

Join the PowerPoint Online:
11/21/2016|13:58:57.019 998:9AC INFO  :: Sending Packet - (From Local Address: 1930 bytes:
11/21/2016|13:58:57.019 998:9AC INFO  ::
SERVICE sip:thomas.poett@westcongroup.com SIP/2.0
Via: SIP/2.0/TLS
Max-Forwards: 70
From: <sip:thomas.poett@westcongroup.com>;tag=b3187b4eca;epid=8c32b8529e
To: <sip:thomas.poett@westcongroup.com>
Call-ID: 20aa2aae152d49d583c4ffa05725ce7a
Contact: <sip:thomas.poett@westcongroup.com;opaque=user:epid:74AYZ7-ciFGJEkrNLwabDQAA;gruu>
User-Agent: UCCAPI/16.0.7369.5278 OC/16.0.7369.2054 (Skype for Business)
Proxy-Authorization: TLS-DSK qop="auth", realm="SIP Communications Service", opaque="D306D9C7", targetname="SN20B08FES06.infra.lync.com", crand="e0720ba3", cnum="520", response="f2285ca8e4e5bedd64f93424cb16a336f886f8d4"
Content-Type: application/msrtc-reporterror+xml
Content-Length: 1189

- <reportError  xmlns="http://schemas.microsoft.com/2006/09/sip/error-reporting">
-  <error  toUri="sip:user@microsoft.com;gruu;opaque=app:conf:focus:id:W6DBDSCK"
   <diagHeader>54025;reason="A viewing URL navigation was attempted.";ClientType=Lync;Build=16.0.7369.5278;ContentMCU="sip:user@microsoft.com;gruu;opaque=app:conf:data-conf:id:W6DBDSCK";ConferenceUri="sip:user@microsoft.com;gruu;opaque=app:conf:focus:id:W6DBDSCK";LocalFqdn="DESKTOP-ED4B0EP";Url="https://ie1-broadcast.officeapps.live.com/m/ParticipantFrame.aspx?a=0&e=true&WopiSrc=https%3A%2F%2Fsb214.sbweb.microsoft.com%2FDataCollabWeb%2Fwopi%2Ffiles%2F34BF-4-37293E3&access_token=AAMFED1mVCY8-cdRux9oFOMJAiYGEP056lgxcyygYjgPMZNIQEuBED1mVCY8-cdRux9oFOMJAiaCAji4gyDbFW_tcwv4YsOaW5Vy0Z5dCWkefz1KWsoL_bRUr1D9pIYI-_M5LlES1AgIDURhdGFDb2xsYWJXZWI&<fs=FULLSCREEN&><rec=RECORDING&><thm=THEME_ID&><ui=UI_LLCC&><rs=DC_LLCC&><dchat=DISABLE_CHAT&><na=DISABLE_ASYNC&>"</diagHeader>
- </error>

11/21/2016|13:58:57.019 998:9AC INFO  :: End of Sending Packet - (From Local Address: 1930 bytes

Request the Presenter Mode for PowerPoint Online:

11/21/2016|14:12:28.944 998:9AC INFO  :: Sending Packet - (From Local Address: 1895 bytes:
11/21/2016|14:12:28.944 998:9AC INFO  ::
SERVICE sip:thomas.poett@westcongroup.com SIP/2.0
Via: SIP/2.0/TLS
Max-Forwards: 70
From: <sip:thomas.poett@westcongroup.com>;tag=b46add568d;epid=8c32b8529e
To: <sip:thomas.poett@westcongroup.com>
Call-ID: 404eb4dbff0b4a559c316fbd16a6f766
Contact: <sip:thomas.poett@westcongroup.com;opaque=user:epid:74AYZ7-ciFGJEkrNLwabDQAA;gruu>
User-Agent: UCCAPI/16.0.7369.5278 OC/16.0.7369.2054 (Skype for Business)
Proxy-Authorization: TLS-DSK qop="auth", realm="SIP Communications Service", opaque="D306D9C7", targetname="SN20B08FES06.infra.lync.com", crand="5a8af19e", cnum="1003", response="43ebcde8b145a3b4dfbfb2649eadcc0163667c43"
Content-Type: application/msrtc-reporterror+xml
Content-Length: 1153

- <reportError  xmlns="http://schemas.microsoft.com/2006/09/sip/error-reporting">
-  <error  toUri="sip:user@microsoft.com;gruu;opaque=app:conf:focus:id:W6DBDSCK"
   <diagHeader>54025;reason="A viewing URL navigation was attempted.";ClientType=Lync;Build=16.0.7369.5278;ContentMCU="sip:user@microsoft.com;gruu;opaque=app:conf:data-conf:id:W6DBDSCK";ConferenceUri="sip:user@microsoft.com;gruu;opaque=app:conf:focus:id:W6DBDSCK";LocalFqdn="DESKTOP-ED4B0EP";Url="https://ie1-broadcast.officeapps.live.com/m/Presenter.aspx?a=0&e=true&WopiSrc=https%3A%2F%2Fsb214.sbweb.microsoft.com%2FDataCollabWeb%2Fwopi%2Ffiles%2F34BF-4-37293E3&access_token=AAMFED1mVCY8-cdRux9oFOMJAiYGEP056lgxcyygYjgPMZNIQEuBED1mVCY8-cdRux9oFOMJAiaCAji4gyDbFW_tcwv4YsOaW5Vy0Z5dCWkefz1KWsoL_bRUr1D9pIYI-_M5LlES1AgIDURhdGFDb2xsYWJXZWI&<fs=FULLSCREEN&><rec=RECORDING&><thm=THEME_ID&><ui=UI_LLCC&><rs=DC_LLCC&><dchat=DISABLE_CHAT&>"</diagHeader>
- </error>


11/21/2016|14:12:29.160 998:9AC INFO  :: Data Received - (To Local Address: 633 bytes:
11/21/2016|14:12:29.160 998:9AC INFO  ::
SIP/2.0 200 OK
ms-user-logon-data: RemoteUser
Authentication-Info: TLS-DSK qop="auth", opaque="D306D9C7", srand="06C55387", snum="1006", rspauth="afb5fe8d667a468542f2256f0a0d57d26c356c94", targetname="SN20B08FES06.infra.lync.com", realm="SIP Communications Service", version=4
From: "Thomas Poett"<sip:thomas.poett@westcongroup.com>;tag=b46add568d;epid=8c32b8529e
To: <sip:thomas.poett@westcongroup.com>;tag=E1ED4BEB4A3D1118C58B28645D8FB5F2
Call-ID: 404eb4dbff0b4a559c316fbd16a6f766
Via: SIP/2.0/TLS;received=;ms-received-port=6966;ms-received-cid=18BB9F00
Content-Length: 0