Freeswitch En Route To Support For G.719 Codec

VVX_1500_D_Freeswitch.jpgThink back to the handful of new audio codecs that have been released over the past few years; CELT, SILK and Opus to name a few. Then there are the handful of proprietary codecs that have become available under more attractive licenses. Polycom’s Siren family come to mind on that front. In all of these cases I have observed that the Freeswitch development team are typically amongst the very first to implement any new codec.

In recent weeks they have added support for G.719, an ITU standard codec created by Polycom and Ericsson. With a  sample rate of 48 KHz, G.719 is a full-bandwidth codec, supporting a useful audio channel of 20 Hz- 20 KHz. It does so with end-to-end delay of only 40 ms and at bit rates from 32 kbps to 128 kbps. It also supports stereo audio.

Upon completion of the ITU standards process Polycom published a white paper on the codec; G.719: The First ITU-T Standard for Full-Band Audio (pdf).

Freeswitch has supported high-sample-rate audio, including conferencing, for quite some time. Audio streams for conferences are up-sampled to 48 KHz for mixing, then individual mixes down-sampled to bit rates appropriate for each end-point. That means that Freeswitch is very well adapted to handling G.719 audio streams. It simply skips the sample rate conversion processes.

As for end-points…you might already have them! While G.719 is deployed in Polycom’s video conference end-points and RMX Series MCU devices. It’s also found in Polycom’s VVX-500/600/1500 Business Media Phones.

Upon hearing that the Freeswitch public conference bridge was supporting G.719 I made a test call using a VVX-1500. First, I used the web interface on the VVX-1500 to enable G.719, moving it to the top of the priority stack for audio codecs. Then I dialed 888@conference.freeswitch.org to join the call.

VVX-1500 Audio Codec Priority

Once connected I used the on-board diagnostics to get a report of the media properties for the current call. It was very clear that the call was in G.719. I took a quick pic of the screen with my Nexus 4 phone.

VVX-1500 in G719 Call with Freeswitch

Sorry about the reflection. I really must lookup how to perform a screen capture on the VVX. There is way, I just can’t recall what it is or how to enable such capability.

In truth, using a VVX-1500, 500 or 600 phone in G.719 is slightly less than optimal. The technical specifications for the devices stipulate that they support:

Legendary Polycom HD Voice technology up to 14KHz on all audio paths (Speaker, Handset, Headset)

That’s certainly nothing to sneer at, but falls just a bit short of the full potential of G.719 using more optimal hardware.

Polycom_QXD6000_sml.jpgWhat constitutes more optimal hardware you ask? My search, while less than exhaustive, found only Polycom’s QDX-6000 and possibly some of the HDX Series video conference end-points. Their RMX Series MCU systems also support the codec.

The very scarcity of end-point implementations could make the Freeswitch effort even more valuable. Anyone needing to connect two production studios could easily leverage a couple of Freeswitch instances to provide a high-quality, low-latency, relatively low-bandwidth point-to-point link.

Sure this can be done using existing codecs, like Opus or CELT. Those codecs present zero opportunity for hardware interop. Choosing G.719 would afford some ability to interoperate with the VVX Series Business Media Phones.

If you examine the Freeswitch Wiki page about support for HDVoice you won’t yet find G.719 listed. The matter of licensing remains to be addressed. Implementing support for G.719 requires two licenses; a Polycom license with respect to their Siren codec family, and a second license from Ericsson.

I’m told that BKW has already contacted Ericsson, but the process of acquiring that license may be lengthy.

  • Mico Naddeo

    Nice that FreeSwitch has added support for it. But in a more general sense, who needs another HD codec? It would be a lot better if there would be a consensus among the vendors to all support the same HD codec. Opus would be a good candidate to standardize on.

    • mjgraves

      Sure. Sure. Consensus would be great.However, it’s just not likely to happen. Opus is great, but there’s zero support for it in hardware. There are applications that can be addressed today by G.719 and have some kind of practical hardware interop.

      If consensus around one codec can’t happen the other approach to ubiquity would be everyone implement every codec. That seems about as likely.

      Opus will definitely see widespread use, but it needs hardware support to really achieve ubiquity. That will take some time.

  • Lifespeed

    Hard to imagine the two license thing promoting rapid adoption. Some brave manufacturer somewhere needs to take a leap of faith (or at least due diligence) on the enuncumberedness of Silk.

    • mjgraves

      I suspect that Opus trumps SILK and CELT both. However, the Nokia claims against Opus have yet to be resolved.

      If Freeswitch obtains a license then there should be little problem for anyone useing G.719.

      BTW – this week saw the release of a Freeswitch v1.4 beta including support for Opus, websockets and WebRTC.