Skype for Business Online connectivity paths
Recently Microsoft released a blog article to provide awareness and guidance on Simplified port requirements for Skype for Business Online: https://techcommunity.microsoft.com/t5/Skype-for-Business-Blog/Simplified-port-requirements-for-Skype-for-Business-Online/ba-p/77094
which had an updated destination ports to the cloud that makes the high ports TCP and UDP optional.
what concerns us here in this article is any traffic going through the Cloud services; so we will test only the conference media paths.
First lets look on how that is different from On-Premises and how the ICE protocol selects the ports in priorities.
in this scenarios I am going to test the Voice, Video , VBSS and RDP App Share.
I used Netmon to trace the ports and used coloring and marking from the previous blog post https://blogs.msdn.microsoft.com/mahmoud\_badran/2017/05/16/netmon-capabilities-for-skype-for-business-online-troubleshooting/
Here is an-on premises scenario where the caller dialled to a conference; as you can see here after a series of TURN requests the following Ports were selected ; Client Source Port UDP 50006 and Destination Port UDP 50680
What i am going to do is to add Video for the same call and below is my capture and as seen below Client Source Port is UDP 50036 and Destination Port is UDP 53400
again adding the VBSS (Desktop Share) the following UDP ports were selected Source port UDP 50058 and Destination port UDP 58760
And Finally with Application Sharing the following TCP ports were selected Source Port TCP 50048 and Destination Port 52972.
so in order to enforce the second media path we are going to block all the high ports UDP only from my machine with the Windows Firewall.
Now we are going to run the same tests for Audio, Video and VBSS only since they use the UDP high ports and see what happens on Netmon.
for Audio we saw that the second path was Source port 50016 and Destination Port UDP 3478
similar results for Video where the destination was UDP 3478
and similar results for VBSS where the destination was UDP 3478
Now for the Third Path we are going to Block UDP 3478 from our Firewall and lets see what happens:
Re Run the same Audio, Video and VBSS Scenarios:
Now the interesting Scenario here the TCP high ports are used for Audio, as seen Source Port TCP 50018 and Destination Port TCP 50921
Video as well got established on the TCP high ports, with Source Port TCP 50032 and Destination Port TCP 57669
and Similarly the VBSS was on TCP high ports, here is Client Source port TCP 50052 and Destination port TCP 55464
it is very Important to know that this Scenario you cannot differentiate between VBSS or App Share except from the Snooper Logs
and below is the Snooper logs that proves this session was a TCP VBSS and used H264
06/13/2017|10:28:53.528 45DC:2A20 INFO :: Sending Packet - xx.xx.xx.xx:443 (From Local Address: 192.168.50.121:59364) 3166 bytes:
06/13/2017|10:28:53.528 45DC:2A20 INFO ::
INVITE sip:mbadran@contoso.com;gruu;opaque=app:conf:applicationsharing:id:TLD18BDT SIP/2.0
Via: SIP/2.0/TLS 192.168.50.121:59364
Max-Forwards: 70
From: <sip:mbadran@contoso.com>;tag=dc0670b210;epid=03413c7128
To: <sip:mbadran@contoso.com;gruu;opaque=app:conf:applicationsharing:id:TLD18BDT>;tag=673cc255;epid=361A8A700C
Call-ID: e733471e87ce4f849b9e46122232b0bc
CSeq: 2 INVITE
User-Agent: UCCAPI/16.0.7766.5352 OC/16.0.7766.2091 (Skype for Business)
Supported: ms-dialog-route-set-update
Supported: timer
Supported: histinfo
Supported: ms-safe-transfer
Supported: ms-sender
Supported: ms-early-media
ms-keep-alive: UAC;hop-hop=yes
ms-subnet: 192.168.50.0
ms-endpoint-location-data: NetworkScope;ms-media-location-type=Internet
Proxy-Authorization: TLS-DSK qop="auth", realm="SIP Communications Service", opaque="3E0FAC86", targetname="contoso.com", crand="9ab215e7", cnum="166", response="9e30cf5b6d03f822abb93d19c2bb10b598e1917d"
Content-Type: application/sdp
Content-Length: 1610
v=0
o=- 0 2 IN IP4 xx.xx.xx.xx
s=session
c=IN IP4 xx.xx.xx.xx
b=CT:99980
t=0 0
a=x-mediabw:applicationsharing-video send=8100;recv=4000
m=applicationsharing 50049 TCP/RTP/SAVP 127
a=ice-ufrag:t8XO
a=ice-pwd:/R1zFbA5Rdy5X4V4YVfem42q
a=candidate:14 1 TCP-ACT 1852570879 24.140.230.224 50049 typ prflx raddr 192.168.50.121 rport 50049
a=x-candidate-info:14 network-type=wlan
a=crypto:2 AES_CM_128_HMAC_SHA1_80 inline:Enb/Q/W9NCW2r/4A+IJzCq90n18lQYiXot3EVgAa|2^31|1:1
a=remote-candidates:1 xx.xx.xx.xx 50336 2 xx.xx.xx.xx 50336
a=setup:active
a=connection:existing
a=rtpmap:127 x-data/90000
a=rtcp-mux
a=x-bwealgorithm:packetpair
a=x-applicationsharing-session-id:1
a=x-applicationsharing-role:sharer
a=x-applicationsharing-media-type:rdp
a=x-applicationsharing-contentflow:sendonly
m=video 50052 TCP/RTP/SAVP 122 123
a=x-ssrc-range:2832877825-2832877924
a=rtcp-fb:* x-message app send:src,x-pli recv:src,x-pli
a=rtcp-rsize
a=label:applicationsharing-video
a=ice-ufrag:NLIp
a=ice-pwd:oX/60lMgeMaJTxar75FhtfCk
a=x-mediasettings:applicationsharing-video=required
a=candidate:11 1 TCP-ACT 1852567295 xx.xx.xx.xx 50052 typ prflx raddr 192.168.50.121 rport 50052
a=x-candidate-info:11 network-type=wlan
a=cryptoscale:1 client AES_CM_128_HMAC_SHA1_80 inline:Enb/Q/W9NCW2r/4A+IJzCq90n18lQYiXot3EVgAa|2^31|1:1
a=remote-candidates:1 xx.xx.xx.xx 55646 2 xx.xx.xx.xx 55646
a=setup:active
a=connection:existing
a=sendonly
a=rtpmap:122 X-H264UC/90000
a=fmtp:122 packetization-mode=1;mst-mode=NI-TC
a=rtpmap:123 x-ulpfecuc/90000
a=rtcp-mux
a=x-bwealgorithm:packetpair
Now we will run the same Session for RDP and see the difference in Snooper, as you see the Source port was TCP 50043 and Destination Port TCP 51039
06/13/2017|10:43:01.703 45DC:2A20 INFO :: Sending Packet - xx.xx.xx.xx:443 (From Local Address: 192.168.50.121:59364) 2320 bytes:
06/13/2017|10:43:01.703 45DC:2A20 INFO ::
INVITE sip:mbadran@contoso.com;gruu;opaque=app:conf:applicationsharing:id:Y6FD73H2 SIP/2.0
Via: SIP/2.0/TLS 192.168.50.121:59364
Max-Forwards: 70
From: <sip:mbadran@contoso.com>;tag=dc77454c41;epid=03413c7128
To: <sip:mbadran@contoso.com;gruu;opaque=app:conf:applicationsharing:id:Y6FD73H2>;tag=bbeffade50;epid=D9672F7281
Call-ID: 4d4d16fe0a9643f3ac565ca370b095d7
CSeq: 2 INVITE
Contact: <sip:mbadran@contoso.com;opaque=user:epid:5c4Y0LZ-P16OxFNemnoO7gAA;gruu>
User-Agent: UCCAPI/16.0.7766.5352 OC/16.0.7766.2091 (Skype for Business)
Supported: ms-dialog-route-set-update
Supported: timer
Supported: histinfo
Supported: ms-safe-transfer
Supported: ms-sender
Supported: ms-early-media
ms-keep-alive: UAC;hop-hop=yes
ms-subnet: 192.168.50.0
ms-endpoint-location-data: NetworkScope;ms-media-location-type=Internet
Proxy-Authorization: TLS-DSK qop="auth", realm="SIP Communications Service", opaque="3E0FAC86", targetname="contoso.com", crand="eac0f45a", cnum="383", response="2e315122a3a496c4abaa2e70d7b154567e64f1a2"
Content-Type: application/sdp
Content-Length: 763
v=0
o=- 0 1 IN IP4 xx.xx.xx.xx
s=session
c=IN IP4 xx.xx.xx.xx
b=CT:99980
t=0 0
m=applicationsharing 50043 TCP/RTP/SAVP 127
a=ice-ufrag:VvoJ
a=ice-pwd:za3jOXA4LzS7Lr4eZCC9appB
a=candidate:14 1 TCP-ACT 1852570879 xx.xx.xx.xx 50043 typ prflx raddr 192.168.50.121 rport 50043
a=x-candidate-info:14 network-type=wlan
a=crypto:2 AES_CM_128_HMAC_SHA1_80 inline:z0oEcJPviJ2Q4CNEXt75fE3PyOrJyDDE33PsRDUe|2^31|1:1
a=remote-candidates:1 xx.xx.xx.xx 51039 2 xx.xx.xx.xx 51039
a=setup:active
a=connection:existing
a=mid:1
a=rtpmap:127 x-data/90000
a=rtcp-mux
a=x-bwealgorithm:packetpair
a=x-applicationsharing-session-id:1
a=x-applicationsharing-role:sharer
a=x-applicationsharing-media-type:rdp
a=x-applicationsharing-contentflow:sendonly
And now Finally if we Blocked all UCP high ports , low ports and TCP high ports the final path will be port TCP 443 for all media types.
Note that i noticed a degradation in voice quality at this point but the SILKWide was still used as a codec, which i found in the VQReport.
Conclusion :
Destination Ports for Skype for Business Online and the alternative paths are different from that of the on-premises.
The tables below illustrate the destination ports and alternative paths in priority for each of the on-premises and cloud.
Outbound Traffic preferred route for On-premises:
Route 1:
Media Type | Transport | Source | Port | Destination | Port |
Audio | UDP | Client Subnet | 50000 - 50019 | SfB Edge Server IPs OR Client Subnet in P2P | 50000 - 59999 |
Video | UDP | Client Subnet | 50020 - 50039 | SfB Edge Server IPs OR Client Subnet in P2P | 50000 - 59999 |
VBSS | UDP | Client Subnet | 50040 - 50059 | SfB Edge Server IPs OR Client Subnet in P2P | 50000 - 59999 |
AppShare RDP | TCP | Client Subnet | 50040 - 50059 | SfB Edge Server IPs OR Client Subnet in P2P | 50000 - 59999 |
Alternative Route 2:
Media Type | Transport | Source | Port | Destination | Port |
Audio | UDP | Client Subnet | 50000 - 50019 | SfB Edge Server IPs OR Client Subnet in P2P | 3478 |
Video | UDP | Client Subnet | 50020 - 50039 | SfB Edge Server IPs OR Client Subnet in P2P | 3478 |
VBSS | UDP | Client Subnet | 50040 - 50059 | SfB Edge Server IPs OR Client Subnet in P2P | 3478 |
AppShare RDP | TCP | Client Subnet | 50040 - 50059 | SfB Edge Server IPs OR Client Subnet in P2P | 443 |
Alternative Route 3:
Media Type | Transport | Source | Port | Destination | Port |
Audio | TCP | Client Subnet | 50000 - 50019 | SfB Edge Server IPs OR Client Subnet in P2P | 50000 - 59999 |
Video | TCP | Client Subnet | 50020 - 50039 | SfB Edge Server IPs OR Client Subnet in P2P | 50000 - 59999 |
VBSS | TCP | Client Subnet | 50040 - 50059 | SfB Edge Server IPs OR Client Subnet in P2P | 50000 - 59999 |
AppShare RDP | TCP | Client Subnet | 50040 - 50059 | SfB Edge Server IPs OR Client Subnet in P2P | 443 |
Alternative Route 4:
Media Type | Transport | Source | Port | Destination | Port |
Audio | TCP | Client Subnet | 50000 - 50019 | SfB Edge Server IPs OR Client Subnet in P2P | 443 |
Video | TCP | Client Subnet | 50020 - 50039 | SfB Edge Server IPs OR Client Subnet in P2P | 443 |
VBSS | TCP | Client Subnet | 50040 - 50059 | SfB Edge Server IPs OR Client Subnet in P2P | 443 |
AppShare RDP | TCP | Client Subnet | 50040 - 50059 | SfB Edge Server IPs OR Client Subnet in P2P | 443 |
Inbound Traffic preferred route:
Route 1:
Media Type | Transport | Source | Port | Destination | Port |
Audio | UDP | SfB Edge Server IPs OR Client Subnet in P2P | 50000 - 59999 | Client Subnet | 50000 - 50019 |
Video | UDP | SfB Edge Server IPs OR Client Subnet in P2P | 50000 - 59999 | Client Subnet | 50020 - 50039 |
VBSS | UDP | SfB Edge Server IPs OR Client Subnet in P2P | 50000 - 59999 | Client Subnet | 50040 - 50059 |
AppShare RDP | TCP | SfB Edge Server IPs OR Client Subnet in P2P | 50000 - 59999 | Client Subnet | 50040 - 50059 |
Alternative Route 2:
Media Type | Transport | Source | Port | Destination | Port |
Audio | UDP | SfB Edge Server IPs OR Client Subnet in P2P | 3478 | Client Subnet | 50000 - 50019 |
Video | UDP | SfB Edge Server IPs OR Client Subnet in P2P | 3478 | Client Subnet | 50020 - 50039 |
VBSS | UDP | SfB Edge Server IPs OR Client Subnet in P2P | 3478 | Client Subnet | 50040 - 50059 |
AppShare RDP | TCP | SfB Edge Server IPs OR Client Subnet in P2P | 443 | Client Subnet | 50040 - 50059 |
Alternative Route 3:
Media Type | Transport | Source | Port | Destination | Port |
Audio | TCP | SfB Edge Server IPs OR Client Subnet in P2P | 50000 - 59999 | Client Subnet | 50000 - 50019 |
Video | TCP | SfB Edge Server IPs OR Client Subnet in P2P | 50000 - 59999 | Client Subnet | 50020 - 50039 |
VBSS | TCP | SfB Edge Server IPs OR Client Subnet in P2P | 50000 - 59999 | Client Subnet | 50040 - 50059 |
AppShare RDP | TCP | SfB Edge Server IPs OR Client Subnet in P2P | 443 | Client Subnet | 50040 - 50059 |
Alternative Route 4:
Media Type | Transport | Source | Port | Destination | Port |
Audio | TCP | SfB Edge Server IPs OR Client Subnet in P2P | 443 | Client Subnet | 50000 - 50019 |
Video | TCP | SfB Edge Server IPs OR Client Subnet in P2P | 443 | Client Subnet | 50020 - 50039 |
VBSS | TCP | SfB Edge Server IPs OR Client Subnet in P2P | 443 | Client Subnet | 50040 - 50059 |
AppShare RDP | TCP | SfB Edge Server IPs OR Client Subnet in P2P | 443 | Client Subnet | 50040 - 50059 |
The Way its configured now in the cloud is Different and below is the table for the cloud media paths:
Outbound Traffic preferred route for Skype for Business Online:
Route 1:
Media Type | Transport | Source | Port | Destination | Port |
Audio | UDP | Client Subnet | 50000 - 50019 | SfB Online IPs OR Client Subnet in P2P | 50000 - 59999 |
Video | UDP | Client Subnet | 50020 - 50039 | SfB Online IPs OR Client Subnet in P2P | 50000 - 59999 |
VBSS | UDP | Client Subnet | 50040 - 50059 | SfB Online IPs OR Client Subnet in P2P | 50000 - 59999 |
AppShare RDP | TCP | Client Subnet | 50040 - 50059 | SfB Online IPs OR Client Subnet in P2P | 443 |
Alternative Route 2:
Media Type | Transport | Source | Port | Destination | Port |
Audio | UDP | Client Subnet | 50000 - 50019 | SfB Online IPs OR Client Subnet in P2P | 3478 or Transport Relay 3479 |
Video | UDP | Client Subnet | 50020 - 50039 | SfB Online IPs OR Client Subnet in P2P | 3478 or Transport Relay 3480 |
VBSS | UDP | Client Subnet | 50040 - 50059 | SfB Online IPs OR Client Subnet in P2P | 3478 or Transport Relay 3481 |
AppShare RDP | TCP | Client Subnet | 50040 - 50059 | SfB Online IPs OR Client Subnet in P2P | 443 |
Alternative Route 3:
Media Type | Transport | Source | Port | Destination | Port |
Audio | TCP | Client Subnet | 50000 - 50019 | SfB Online IPs OR Client Subnet in P2P | 443 |
Video | TCP | Client Subnet | 50020 - 50039 | SfB Online IPs OR Client Subnet in P2P | 443 |
VBSS | TCP | Client Subnet | 50040 - 50059 | SfB Online IPs OR Client Subnet in P2P | 443 |
AppShare RDP | TCP | Client Subnet | 50040 - 50059 | SfB Online IPs OR Client Subnet in P2P | 443 |
Inbound Traffic preferred route:
Route 1:
Media Type | Transport | Source | Port | Destination | Port |
Audio | UDP | SfB Online IPs OR Client Subnet in P2P | 50000 - 59999 | Client Subnet | 50000 - 50019 |
Video | UDP | SfB Online IPs OR Client Subnet in P2P | 50000 - 59999 | Client Subnet | 50020 - 50039 |
VBSS | UDP | SfB Online IPs OR Client Subnet in P2P | 50000 - 59999 | Client Subnet | 50040 - 50059 |
AppShare RDP | TCP | SfB Online IPs OR Client Subnet in P2P | 443 | Client Subnet | 50040 - 50059 |
Alternative Route 2:
Media Type | Transport | Source | Port | Destination | Port |
Audio | UDP | SfB Online IPs OR Client Subnet in P2P | 3478 or Transport Relay 3479 | Client Subnet | 50000 - 50019 |
Video | UDP | SfB Online IPs OR Client Subnet in P2P | 3478 or Transport Relay 3480 | Client Subnet | 50020 - 50039 |
VBSS | UDP | SfB Online IPs OR Client Subnet in P2P | 3478 or Transport Relay 3481 | Client Subnet | 50040 - 50059 |
AppShare RDP | TCP | SfB Online IPs OR Client Subnet in P2P | 443 | Client Subnet | 50040 - 50059 |
Alternative Route 3:
Media Type | Transport | Source | Port | Destination | Port |
Audio | TCP | SfB Online IPs OR Client Subnet in P2P | 443 | Client Subnet | 50000 - 50019 |
Video | TCP | SfB Online IPs OR Client Subnet in P2P | 443 | Client Subnet | 50020 - 50039 |
VBSS | TCP | SfB Online IPs OR Client Subnet in P2P | 443 | Client Subnet | 50040 - 50059 |
AppShare RDP | TCP | SfB Online IPs OR Client Subnet in P2P | 443 | Client Subnet | 50040 - 50059 |