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 |
Start-Line: INVITE sip:[email protected]:5061;maddr=lyncfe1.ucprimer.local SIP/2.0
From: "Helen Rodin"<sip:[email protected]>;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:
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:
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: