UCPrimer
  • Tech Blog
  • About UCPrimer.com

Skype for Business and Teams video interop - a peak under the hood

2/22/2018

0 Comments

 
Picture
In the previous blog post, we walked through the features of Skype for Business and Teams co-existence and also covered how to configure interoperability between these two popular communications platforms. In this blog post, we take a close peek under the hood of what goes on when a user on Teams makes a video call to Skype for Business user homed on-premise. Using the Skype for Business server debugging tools, we capture the SIP messages to get a more in-depth technical understanding of video interoperability between the Teams cloud and an on-premise Skype for Business Server
Just to recap, our test environment here involves two users who are both enabled for Skype for Business as well as Teams. The first user Jack Reacher jack.reacher@ucprimer.com is homed on an on-premise Skype for Business FE pool prefers to use Skype for Business for audio/video calls while the other user Helen Rodin hrodin@ucprimer.com prefer to use Teams instead for all calls. Recall that in our last blog post, we configure the global Teams interop policy to use Skype for Business as the default client for audio/video calls while allowing users to override this policy by configuring their preferences in the Teams client. The global Teams interop policy is thus configured as shown in the diagram below:
Picture
With this policy, there is nothing that Jack needs to do as the default behaviour will be for all incoming audio/video calls to be land on his Skype for Business client. So when Helen, a Teams user initiates a call to Jack from her Teams client, Jack's Skype for Business client will ring and allow him to answer the call, thereby establishing an audio/video session between a Teams client and a Skype for Business client as shown in the diagrams below:
Picture
Picture
To capture the SIP details of this call, we use the CLS logging tool in one of the Skype for Business FE servers and set the logging scenario to AlwaysOn as shown below:
Picture
Once the call has been established between Jack and Helen, we retrieve the logs and use the Snooper tool to look at the SIP messages and we can find some interesting aspects of video interoperability between Skype for Business and Teams. First, lets take a look at the SIP INVITE message that is coming into Skype for Business client from the Teams client:
Picture
First thing that we can notice is that the INVITE appears to come from a regular SIP user:

Start-Line: INVITE sip:jack.reacher@ucprimer.com:5061;maddr=lyncfe1.ucprimer.local SIP/2.0
From: "Helen Rodin"<sip:helen.rodin@ucprimer.com>;epid=00411A4CB4;tag=2d58dc6337


However, we know that Teams is not a SIP client, but it appears as a SIP client when calling Skype for Business. Next, we look at the contact header:


Contact: <sip:sip2.lgw.skype.com:50105;ms-fe=c-lgw-asse-02.lgw.skype.com;transport=Tls;ms-opaque=e63097266c25ebd8>;isGateway;text;audio;video;image;application


The contact header tells us that there is a Skype-Teams gateway involved and the SIP address of the gateway for subsequent communications is sip2.lgw.skype.com on port 50105 and we can see the 'isGateway' flag is present. Next, we look at the Via fields:

Via: SIP/2.0/TLS 10.250.27.53:58107;branch=z9hG4bK936FC3A4.F14CF28B96306D96;branched=FALSE
Via: SIP/2.0/TLS 10.222.210.71:49827;branch=z9hG4bK6CA8D425.19305D0ECBA8E13F;branched=FALSE;ms-received-port=49827;ms-received-cid=5F01E00
Via: SIP/2.0/TLS 52.113.3.15:40625;branch=z9hG4bK1410E788.49C03C38832F9126;branched=FALSE;ms-internal-info="atIxptmkbjd1izrPFAA_tlE0ICVS89nY4xfi_zIeokxfs4PMBJhPKeTwAA";ms-received-port=40625;ms-received-cid=37200
Via: SIP/2.0/TLS 10.11.180.115:54374;branch=z9hG4bK17FB1738.39BC82FC440BC126;branched=TRUE;ms-received-port=54374;ms-received-cid=4793A400
Via: SIP/2.0/TLS 10.11.180.112:43859;branch=z9hG4bK32B1B08D.5A4744E92508B126;branched=FALSE;ms-received-port=43859;ms-received-cid=329B7100
Via: SIP/2.0/TLS 13.100.14.203:55236;branch=z9hG4bKEB7318DA.9762BB515AB68125;branched=FALSE;ms-received-port=55236;ms-received-cid=31BB6200
Via: SIP/2.0/TLS 100.73.144.55:50211;branch=z9hG4bKd1aab0d2;received=13.100.15.254;ms-received-port=3009;ms-received-cid=402C1C00


The Via fields shows us the path of taken by the messages since every proxy in the request path adds to top of the “Via” the address and port on which it received the message, than forwards it onwards. The first two Via IP addresses are of the on-premise FE Pool and the Edge Server. The third and sixth Via IP address 52.113.3.15 (Singapore) and 13.100.14.203 (USA) are from the Microsoft cloud and are likely to be addresses of the gateways handling call interop between Skype and Teams. Let's take a closer look at the SIP message:
Picture
o=- 0 0 IN IP4 104.44.201.170
The origin IP appears to belong to Skype.com domain located in the US.


a=x-mediabw:main-video send=12000;recv=12000
This indicates the max bandwidth allowable for video is 12000kbps or 12Mbps, which is more than enough for high definition video up to 1080p30

m=audio 3480 RTP/SAVP 117 104 114 9 112 111 18 0 8 103 116 115 97 13 118 119 101
This indicates the audio codecs that are supported in order of preference - 117 is for G.722 while 104 is SILK and 114 is RTA

a=candidate:4 1 UDP 184547839 104.44.201.170 3480 typ relay raddr 27.104.8.102 rport 50008 MTURNID 2486776825723936754
a=candidate:4 2 UDP 184547326 104.44.201.170 3480 typ relay raddr 27.104.8.102 rport 50009 MTURNID 14569895359562254455

Details of the ICE candidates will not be covered here since they are well covered in many articles. This is a good Ignite session to understand more details regarding how ICE works in Teams: https://www.youtube.com/watch?v=aD5mUg2ZzLQ

Lets scroll further down the SIP message:
Picture
m=video 3480 RTP/SAVP 122 107 99 123
This indicates the video codecs that are supported in order of preference - 122 is the Microsoft implementation of SVC known as X-H264UC while 107 is industry standard H.264 protocol. These are the only 2 video codecs supported by Teams at this time.

After the necessary ICE checks and codec negotiations are complete, we can see the 200 OK SIP message as shown:
Picture
Finally, to end the session we hang up the call from the Skype for Business client which results in a SIP BYE message from the gateway  sip2.lgw.skype.com:
Picture
In conclusion, we can see that audio/video interoperability between Skype for Business and Teams involves a gateway which is not surprising given that Teams is not a SIP client but a http client that uses REST for signalling. However, the audio and video codecs are pretty much standard ones being used by Skype for Business as well as other industry standard audio/video endpoints, namely G.722 and H.264. This adoption of industry standard codecs by Teams will play a key factor in interoperability solutions that will be coming in the near future and we will cover these in future blog posts.
0 Comments

Your comment will be posted after it is approved.


Leave a Reply.

    Picture
    Picture

    Important Links

    Microsoft Teams Docs
    Microsoft Learn

    ​Microsoft MVP Blogs

    Michael Tressler’s Blog
    Michael’s MTR Quick Tip Videos
    Jimmy Vaughan’s Blog
    Jeff Schertz
    Adam Jacobs
    James Cussen
    ​Damien Margaritis

    Archives

    September 2022
    August 2022
    March 2022
    February 2022
    January 2022
    December 2021
    November 2021
    October 2021
    September 2021
    August 2021
    June 2021
    April 2021
    March 2021
    December 2020
    October 2020
    September 2020
    August 2020
    April 2020
    March 2020
    February 2020
    January 2020
    December 2019
    November 2019
    October 2019
    September 2019
    August 2019
    July 2019
    March 2019
    November 2018
    October 2018
    September 2018
    August 2018
    June 2018
    March 2018
    February 2018
    January 2018
    December 2017
    November 2017
    August 2017
    July 2017
    April 2017
    March 2017
    February 2017
    January 2017
    November 2016
    October 2016
    September 2016
    August 2016
    July 2016
    June 2016
    May 2016
    April 2016
    March 2016
    January 2016
    November 2015
    October 2015
    September 2015
    August 2015
    July 2015
    June 2015
    May 2015
    April 2015
    March 2015
    February 2015
    January 2015
    December 2014
    November 2014
    October 2014
    September 2014
    August 2014
    July 2014
    June 2014
    May 2014
    April 2014
    March 2014
    February 2014
    January 2014
    December 2013
    November 2013
    October 2013
    September 2013
    August 2013
    July 2013
    June 2013
    May 2013
    April 2013
    March 2013
    February 2013
    January 2013
    December 2012
    November 2012
    September 2012
    August 2012

    Categories

    All
    Edge
    Exchange 2013
    Hybrid
    Lpe
    Lync 2010
    Lync 2013
    Mobility
    Oauth
    Office365
    Polycom
    Ucs

    RSS Feed

    This website uses marketing and tracking technologies. Opting out of this will opt you out of all cookies, except for those needed to run the website. Note that some products may not work as well without tracking cookies.

    Opt Out of Cookies