Skype for Business Server 2015 (S4BS) has numerous codecs that can be leveraged in different types of communication, depending on the workload that the end users are engaged with; everything from peer-to- peer calls to conference calls leverage various codecs ranging from G.711 to Siren. Depending on the type of codec that is leveraged can end up changing how you design your S4BS infrastructure and can also help you plan going forward on what to expect with regards to bandwidth consumption. We will take a look at the various different codecs that are involved with S4BS and what scenarios they are used with.
Session Description Protocol
Before we get into the codecs that are used, let’s take a look at the Session Description Protocol (SDP) as seen from a snooper trace in figure 1 below. The SDP capture shows what codecs are available for the client will be used for the communication; in this case I happened to take the capture from a Lync 2013 client instead of a Skype client. Why? I just happened to have the Lync 2013 client installed while working with a customer. The SDP displays all the codecs that capable of being used in the communication from the client and the order in which they will be leveraged.
Note: The term codec is a combination of the words "coding" and "decoding" used to convert an analog voice signal to a digital version of the voice signal.
One of the first things that comes to mind if you have not heard of this codec before is, “When did we start talking about clothing material?” Yes they are both spelled the same, but they mean two different things; Introduced in the November 2015 Lync 2013 Cumulative Update release, Microsoft S4BS leverages SILK for peer-to-peer (Wideband) conversations. The plan is to have SILK eventually replace older Microsoft audio codecs used in the Lync 2013 and S4BS platform.
Below in figure 2 is a SDP capture of an egress Skype client call out to the PSTN. The essence of the picture is not to display the actual call but rather how to identify the SILK codec in the log trace.
The SILK codec which will eventually replace the Real Time Audio (RTA) codec comes in two distinct patterns wideband and narrowband.
a=fmtp:103 useinbandfec=1; usedtx=0
a=fmtp:104 useinbandfec=1; usedtx=0
Both pair of codecs narrowband and wideband can be used for Lync 2013 and Skype audio calling, of course depending on the type of call rather it’s ingress or egress. SILK supports in-band Forward Error Correction (FEC), denoted by the ‘useinbandfec=1’ parameter. Whenever a call is made peer-to- peer Skype will try to leverage the wideband codec and when the call is placed to the PSTN the narrowband codec will try to be leveraged.
Real Time Audio (RTA)
Microsoft created their own proprietary audio codec back in the days of Office Communicator Server (OCS 2007) and it too comes in both narrowband (8 kHz) and wideband (16 kHz). Since Office Communicator Server 2007, RTA was the primary codec for peer-to-peer calls until November 2015 Cumulative Update release for Lync 2013 when Silk became the default codec for peer-to-peer conversation with the Skype client. RTA is now the fallback for peer-to-peer and calls to PSTN for Lync and Skype client calls. Like the SILK codec, RTA calls that are peer-to-peer will leverage the wideband codec and in calls that go to the PSTN the narrowband will be used.
Narrowband a=rtpmap:115 x-msrta/8000
Wideband a=rtpmap:114 x-msrta/16000
Besides peer-to-peer calls, there is also the occasional conference calls with Lync 2013 and Skype (that was an understatement as more and more people are using conferencing with Lync and Skype server). G.722 is used for conferencing with Lync \ Skype client. Typically G.722 is used when bandwidth is readily available and offers a significant improvement in audio quality when compared to codecs such as G.711 or Siren.
With Lync Room system, it too has its own codec that is leveraged when it’s in use.
The Siren codec was developed by Polycom and used when conferencing in Live Meeting or Office Communications Server. The fact that we don’t see Live Meeting that much anymore is a testament that people have upgraded their Microsoft platform, which is a good thing. When there are Lync or Skype conferences to endpoints that are still on Communicator the Siren codecs provides wideband audio at a bit rate of (16 kbps) making it well suited for large conferences calls. Reason is that Communicator client doesn’t support the G.722 codec. In addition the Siren codec will be leveraged when the Lync or Skype client detect that the available bandwidth is too low for Call Admission Control (CAC) policies.
Last but not least the Lync 2013\ Skype client will leverage the Siren codec if it detects a network round-trip time of greater than 25ms.
The industry standard G.711 audio codec is used throughout the PSTN world. When you make a cell phone call to another cell phone, we are using G.711 for the media. Whenever we make calls to the PSTN world from our Lync \ Skype client this is where G.711 comes in. Now you say what happened to RTA and Silk? Those codecs don’t relay to the PSTN world; this is where the Mediation server comes into the picture; for the mediation server is responsible for doing the media transcoding codec from RTA or SILK to G.711 when we are making an outbound call to the PSTN.
These two codecs represent different calling signals; PCMU represent G.711 µ-Law used exclusively in North America and PCMA for G.711 A-Law used throughout the rest of the world. When the Lync \ Skype client decides to send calls to the Mediation server in G.711 format. The Mediation server does not have to do any media transcoding due the media format for the intended party is already in the format that it accepts. When media is sent to the Mediation server from the Lync \ Skype client in the format of RTA or SILK, media transcoding takes place which ends up placing additional CPU cycles on the Mediation server for that particular call.
I figured I would throw Exchange into the conversation since we are talking about codecs. Exchange leverages three types of codecs:
As we discussed earlier G.711 is a standard that was developed for use with audio codecs. These two codecs represent different calling signals; PCMU represent G.711 µ-Law used exclusively in North America and PCMA for G.711 A-Law used throughout the rest of the world.
The G.723.1 audio codec is mostly used in VoIP applications and requires a license to be used and is a high-quality, high-compression type of codec. A Client Access or Mailbox server and a supported VoIP gateway or IP PBX can offer both the G.711 and G.723.1 codecs.
Codecs, Codecs, Codecs
With voice and media being a part of our normal everyday technical lives, codecs will some become second nature to us. I can people talking at dinner parties now, “What type of codec do you get on your cell Phone when you are calling others?” Ok, perhaps to not that extreme but none the less, in the world of Lync \ Skype, codecs are leveraged any many different scenarios.