Tuesday, June 23, 2015

MS Ignite BRK3151 - Interoperability with Skype for Business

As promised in my Microsoft Ignite 2015 - Sessions, Venue, Expo post, here comes another summary / review of one of the Ignite Skype for business sessions.

Presented by Adam Gent, Enghouse.

Two programs exist, one older (mainly for Lync) and one newer for Skype for business.
There are many areas where interoperability comes into play when implementing a Lync / Skype for business system.

Use this like a checklist

The interoperability program started with telephony equipment, this is natural since telephony is much more real-time sensitive and business critical than email or instant messaging. First gateways were used heavily and later SIP Trunking became increasingly popular, both types of PSTN connection is now in the interoperability programs.

Why would we put a SBC in front of the mediation server when doing SIP Trunking?
A SBC can handle "malformed" SIP-packets and keep the mediation going even if the traffic is bad (but to what use?) A mediation server is not built to do policing on the incoming traffic while a SBC is. A SBC can also act as a firewall to protect an internal network.

How should an internal Wifi network with Skype for business mobile clients be handled?
Treat it like an external network and let all traffic go through the Edge/RevProxy.

What is the difference between Compatible, Certified and Optimized in the interoperability program?
It is a terminology mess that should be cleaned up. Not all "levels" exist for all types of devices / solutions.

Monday, June 22, 2015

MS Ignite BRK3142 - Call via Work for PBX Users

As promised in my Microsoft Ignite 2015 - Sessions, Venue, Expo post, here comes another summary / review of one of the Ignite Skype for business sessions.

Presented by Brian Ricks, consultant and Microsoft MVP.

Started with a brief history on Enterprise voice in LCS / OCS / Lync. Lync 2010 introduced Call-via-work for mobile clients, the ones without VoIP support. Enterprise voice did not change dramatically in Skype for business compared to Lync 2013. Remote Call Control (RCC) is still available in Skype for business.

Call-via-work gives click-to-call integration with an existing PBX, without CSTA (RCC), and presence for that call.

How it works

1. The user initiates an outbound call.
2. The Skype FE server initiates a call to a phone controlled by the user (using UCWA).
3. The user answers the incoming call.
4. The Skype FE server initiates a call to the callee (B party.)
5. When answered on the remote side Skype connects the two calls and updates the presence of the user.

Call-via-work initiates 2 call "legs"

The not so good

Call-via-work does nothing for incoming calls.
The user can click to call, have a voicemail server answer and then "voicemail" will be calling the B party.

Call-via-work cannot be combined with the following Skype call features:
E911 and MCT
Boss/Admin delegation
Team Call
Response Groups
Hold/Transfer/Call Park/Mute/Unmute via Skype 4B
Access to PBX voicemail via Skype 4B
Call escalation (like adding desktop sharing)
Conferencing (adding callers) via Skype 4B
Desk Phone pairing

Commands to configure the feature

Set-CsRoutingConfiguration -CallViaWorkCallerId +<PhoneNumber>
To set a global number to be used when calling call-via-work users back.

Or you could use...

New-CsCallViaWorkPolicy [-Identity] -Enabled $true -UseAdminCallbackNumber $true -AdminCallbackNumber +<PhoneNumber>
To set an individual number to be used when calling a specific call-via-work user back.
Setting the Callback Number administratively is optional and requires one policy per user.

Finally grant the policy to the user.

When done the "Call Forwarding" setting in the users configuration will change to "Call handling" and a predefined number or field to enter a number will be visible.

All set for Call-via-work

Thursday, June 18, 2015

MS Ignite BRK3140 - The Voice of Skype for Business

As promised in my Microsoft Ignite 2015 - Sessions, Venue, Expo post, here comes another summary / review of one of the Ignite Skype for business sessions.

Presented by Jamie Stark, Product Manager at Microsoft. (This is one of the sessions I also attended in person.)

Real-time broadcast meetings translated into several different languages on the fly is a feature that is being worked on right now. The Skype translator is already available with English, Spanish, Italian and Mandarin in the preview, as well as 50 written languages for instant messaging translation. Skype Translator uses machine learning, so the more people use the technology, the better the experience for everyone, i.e. download it now! Today the Skype translator is a "modern" Windows 8.1 app, but later this year it will also be available as a regular windows executable. In the session we got a demo of Skype for business with a translator while it transcribed what Jamie was saying into English and immediately translated it into Mandarin. This demo triggered a spontaneous applause from the audience. Like Gurdeep said in the keynote: You can't get this stuff if you are using ten year old technology.

Lync / Skype for business works over the internet without the need of any VPN, and in the client we have the familiar "bars" to tell us if our network connection is strong or weak. User feedback on the call quality can easily be collected and stored in a database for reporting using the "Rate my call" feature built into Skype for business.

Another demo using a Jabra Evolve headset and the Jabra Direct software was shown to demonstrate the "Jabra intelligent call transfer." It is a feature that will monitor your headset during an ongoing Skype4B call and if the headset is disconnected it will automatically transfer the call to your mobile telephone.

The overview continued with call forwarding, simultaneous ring, call handling in Exchange UM, location, MCT (Malicious Call Tracing, not Microsoft Certified Trainer), calling from Office and webpages.

I guess there should have been a demo of the Yealink SIP-T22P phone, but it was acquiring an IP-address so it did not happen. More enterprise voice features were discussed: delegation, call park, group pickup and shared line appearance.

Shared Line Appearance (SLA) is a coming feature that will be available later this year for both Skype for Business as well as for Lync 2013. SLA allows multiple devices to share calls and state information, it is a signaling application that scales well. An incoming call will arrive to the SLA application which will alert at multiple devices at the same time and the call can be picked up from anyone of the configured devices. When answered the line state is shown on all other configured devices.

SLA rings on multiple devices.

ACD (not Contact center functionality, but for internal helpdesks) is available in Skype for business through Response Group services.

Enterprise Voice in Office 365 - PSTN calling services in Office 365 provided by Microsoft is coming soon (US - 2015, EU - 2016). This feature includes DID numbers and possibilities to port numbers into Office 365 calling services.

Another service called "On-premises PSTN Connectivity" will be released in 2016 which will enable organizations worldwide to use Office 365 voice features with existing (on-prem equipment) trunks. (It looks like the discontinued "Hybrid Voice" is resurrected.)

Hybrid makes sense!


Can the call-via-work feature be enabled/disabled via policies?
Yes, and in addition it is possible to configure what number the call back should go to. (The call back can go to a PBX phone or any PSTN number really.)

Will the rate-my-call feature use any information coming from the client software?
No, the rate-my-call is the users perception only, the actual MOS-values for the call in question is not populated into the dialog or the feedback submitted by the user.

How will SLA be administered?
Using PowerShell (90% sure of that answer.)

Will SLA be available on "Aries" devices? 
No, only on the Polycom VVX series, and only on one specific device to start with. More devices will be added further on.

Will the Persistent chat feature become available in Office 365?
No plans for that currently. Persistent chat will remain in on-premise versions. Rather than moving Persistent chat into Office 365, maybe Office 365 groups could extended in the future to cover similar functionality.

Will there be a new Lync phone edition in the future?
No, Lync phone edition will stay the same, but it works fine with Skype for business and is supported. It will not be rebranded "Skype for business phone edition". Use 3rd party phones instead.

Will the Skype translator be available for on-prem installations?
No, not right now, but maybe it could become available as a cloud service in the future.

Will the SILK codec be available for conferencing in Skype for business?
No, it is being rolled out slowly across the portfolio. First for Mobile, now in the rich client as well, next MCUs.

Are there any changes in CAC in Skype for business compared to Lync 2013?

Is Remote Call Control deprecated in Skype for business?

Monday, June 15, 2015

MS Ignite BRK3138 - In-place upgrade from Lync to Skype for Business

As promised in my Microsoft Ignite 2015 - Sessions, Venue, Expo post, here comes another summary / review of one of the Ignite Skype for business sessions.

Presented by the Canadian Scott Stubberfield, Program Manager at Microsoft.

This session focused on the in-place upgrade, and featured a nice in-place upgrade demo. A Lync 2103 system with two paired pools was moved to Skype4B.

Customers do not want to be forced to upgrade the hardware when upgrading the software. With in-place upgrade we can reuse all Lync 2013 hardware, firewalls, configurations, etc. Smart Setup will check with a "Windows Update" like service and download new software before starting the upgrade.

Upgrade paths

Lync 2013 (CU5) to Skype4B - in-place upgrade
Lync 2010 (CU7) to Skype4B - same process as 2010 to 2013
Lync 2010 and 2013 - upgrade 2010 to 2013 first, and then use in-place upgrade

Tri-existence (2010 + 2013 + S4B) is not supported in any way, shape or form.

Upgrade the user pool(s) first, then the mediation servers, edge and CMS pool.

The in-place upgrade process upgrades all SQL server express 2012 (SP1 or better) instances to SQL server express 2014, this for both standard edition "back-end" and local instances.

Prerequisites before starting the in-place upgrade.
Lync 2013 CU5 or better
SQL Server express 2012 SP1 or better
Windows Hotfixes
KB2858668 - Windows Server 2012
KB2982006 – Windows Server 2012 R2

I have a more detailed post about prerequisites found here:
Skype for business Server 2015 prerequisites on Windows 2012 R2

The command to move all users from one pool to another.

Get-CsUser -Filter {RegistrarPool -eq "} | Move-CsUser -Target -Confirm:$false

After the right click in Topology builder and publishing the new topology with Skype for business servers we need to run the

Disable-CsComputer -scorch

command on all front-ends. This to stop and disable all Lync 2013 services (so that if the server would reboot they would not start up as Lync 2013 again.)


How do we upgrade a Persistant chat pool?
Same procedure as a user pool. Right click the pChat pool, upgrade, run Disable-CsComputer -scorch, and this procedure will move all the existing chat rooms to Skype for business.

Will there be a difference to do an in-place upgrade on Windows 2008 R2 compared to one on Windows 2012 R2?
No, Windows fabric 3 will be supported even on Windows 2008 R2 as on 2012 and 2012 R2.

Thursday, June 11, 2015

Windows 2012 R2 IIS 8.5 and ARR 3.0 as reverse proxy for Skype for business or Lync

To start out I must point out that this not actually a supported configuration if I understand the docmentation right, but it works fine!

On the Infrastructure qualified for Microsoft Lync page, ARR 2.5 is listed as a supported reverse proxy. And the documentation to configure it is found here: Using IIS ARR as a Reverse Proxy for Lync Server 2013

On the Skype for Business Certification Program page, under reverse proxies you can find that the Web Application Proxy running on Windows Server 2012 R2 is supported. And the documentation to configure is found here: Configuring the Windows Server 2012 Web Application Proxy as a Reverse Proxy for Lync Server (Well the documentation is for Lync, but you'll get the picture...)

Anyhow, let's get down to using ARR 3.0 instead.

Start with a Windows 2012 R2 server with two network cards. Set the defalt gateway to point out towars the internet and also use a public DNS server. Next use the "route add" to find your way in to the internal server network holding the Skype for business or Lync server(s), and also the internal CA. For example:

route add MASK IF 12 -p

To verify, try to ping the internal Lync server(s) using the IP-address.


Open Notepad as Administrator and edit the local Hostfile, normally found under C:\Windows\system32\drivers\etc. Add the following lines to the hostfile. (Note, this is an example, your external webservices URL can be named diffrently, check in the topology builder.)     -     ip of the standard server (or loadbalancer)     -     ip of the standard server (or loadbalancer)     -     ip of the standard server (or loadbalancer)     -     ip of the standard server (or loadbalancer)     -     ip of the CA server

Also, the Internal and External DNS should be configured like:

Internal DNS     -     ip of the standard server (or loadbalancer)     -     ip of the standard server (or loadbalancer)     -     ip of the reverse proxy     -     ip of the reverse proxy

External DNS     -     ip of the reverse proxy     -     ip of the reverse proxy     -     ip of the reverse proxy     -     ip of the reverse proxy

Server preparation

The reverse proxy server must not be "domain joined" therefore you need to have the internal Certificate Authority Root Certificate installed in the certificate store under Local Computer \ Trusted Root Certification Authorities. (This is not applicable if your internal Skype for business / Lync server is using a Public Certificate.) Use the CA/certsrv webpage if available from the internal CA.

Start powershell as Administrator and run the following commands to install IIS which is a prerequisite for the Application Request Routing of course.

Import-Module ServerManager
Add-WindowsFeature Web-Static-Content,Web-Default-Doc,Web-Dir-Browsing,Web-Http-Errors,Web-Net-Ext,Web-Http-Logging,Web-Request-Monitor,Web-Http-Tracing,Web-Filtering,Web-Stat-Compression,Web-Mgmt-Console,NET-Framework-Core,NET-Non-HTTP-Activ,NET-HTTP-Activation

Internet Information Server Configuration

Start the Internet Information Server (IIS) Manager tool, click the IIS server in the tool, and now you get the following question.

Answer yes and you will arrive at a webpage where you can download and install the Microsoft Web Platform Installer 5.0. After the Web Platform is installed, search for "arr" and add Application Request Routing 3.0 (not 2.5 or 2.5 with KB.)

Click Install, Finish, and restart the Internet Information Server (IIS) Manager tool. Now there should be a "Server farms" hive in the IIS management tool and this is were one Server farm per external URL need to be created.

Create a server farm called that points to the server address (that we have pointed to the standard server or loadbalancer in the host file); set the httpPort to 8080 and the httpsPort to 4443. Also make sure the internal firewall is letting traffic through these ports.

If you need to verify that you really did set these values, you cannot do it from the IIS interface. However, you can check out my previous IIS AAR blog post "Using IIS ARR as a Reverse Proxy for Lync Server 2013" for information on how to verify this.

Next, configure the Caching, Routing and Proxy Rules of the server farm.

Disable the disk cache, change the Proxy time-out to more seconds (I like 600), and disable the SSL offloading under Routing Rules

The Proxy time-out is a value you need to configure according to your environment. This is especially important for the URL, the value should be more than 180 or even as much as 600. Just try to raise the value to where your mobile client does not display the message "Your server configuration has changed. Please restart Lync." all the time.

Amazing - a blog with both Microsoft server config and iOS screen shots...

Now you will find two URL rewrite rules per server farm under root\IIS\URL rewrite. Keep all the rules ending with _SSL and delete the rules that does not. In all the rules ending with _SSL add a {HTTP_HOST} condition matching the name of the server farm, e.g. lyncexternalweb.*


1. Test the meet URL from Internet explorer on the reverse proxy server.
Here you should receive the meeting join page and you should not get a certificate error.

2. Test the meet URL from an external computer on the Internet.
Here you should receive the meeting join page and you should not get a certificate error.

3. Test the dialin URL from an external computer on the Internet.
Here you should receive the dialin conferencing settings page and you should not get a certificate error.

4. Download and install the Microsoft Lync Connectivity Analyzer.
This tool helps Lync administrators find out if the deployment and configuration of their Lync Server environment meets the requirements to support connections from Lync mobile apps. If this works both the lyncdiscover and lyncexternalweb URLs are fine.

5. Login with your mobile unit and - happy Lyncing / Skyping!

Sunday, June 7, 2015

MS Ignite BRK3128 - Media Quality in Office 365 Skype for Business

As promised in my Microsoft Ignite 2015 - Sessions, Venue, Expo post, here comes the second summary / review of the Ignite Skype4B sessions.

Presented by Sasa Juratovic and Aaron Miller, both from the Skype Enterprise Engineering team at Microsoft.

The presentation started out with a good voice quality demo of "good" network conditions compared to "bad" network conditions (10% bursty packet loss.) Requirements on a regular data network is not the same as requirements on a Real-Time Media network.

The same 3 issues as discussed in BRK3110 were discussed again:

The time it takes the packet to get from A to B. When talking about networks this is usually round trip time and noted as network latency.

The amount of time the packets are delayed before processing to compensate for packets arriving later than other packets. This time gets added to the network latency.

Packet loss
The amount of packages that never survived the trip from A to B, got malformed, or simply arrived outside of the jitter buffer.

And added to list of issue were:

Audio and Video Glitching,
which is caused by the end user environment, the system or devices.

Call Quality Methodology, can be used even though using Skype 4B Online from Office 365. The main difference is that Microsoft will manage the servers and the network between the servers.

ExpressRoute 3.1 is Skype for Business ready and can be used to get QoS between your clients and Office 365, coming in the near future.

A new version of the Lync Bandwidth calculator for Skype for business Online were demonstrated, this will be realeased further on. Will it support SILK? (a good question at the end of the session)

Some best practices
  • You need a QoS strategy, and you need to monitor your network.
  • Make sure firewalls and proxies are configured: Office 365 URLs and IP address ranges
  • Don't run your laptop on battery but try to be power connected for the duration of the call.
  • Use the Lync PreCall Diagnostics Tool before an important call to assess network quality

Some tools