Think 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 firstname.lastname@example.org to join the call.
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.
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.
What 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.