Asterisk & HDVoice: Hearing The Siren’s Song Part 1
Using Siren in Asterisk
Using Siren on your Asterisk systems is very easy. In the SIP.CONF and IAX.CONF files you can enable the codecs using the following syntax:
allow=siren7
allow=siren14
…or alternatively…
allow=g.722.1
allow=g.722.1c
The current implementation for the Siren codecs is outlined as follows:
- Full rate only
- Siren7 @ 32 kbps
- Siren14 @ 48 kbps
- Asterisk is presently limited to 16 KHz sampling
- Siren14 streams are down-sampled from 32 KHz to 16 KHz
- Support higher sample rates in future
- Will be leveraged by other codecs including; Siren14, CELT & SILK
- Possibly by end of Q2/2010
- Recording (ex voicemail)
- Playback (ex IVR prompts)
- Conferencing
- MeetMe application relies upon DAHDI for timing and does not support wideband conferencing
- Using app_ConfBridge @ 16 KHz sample rate
- Considered “a bit experimental”
Performance Considerations
Codec selection can have a dramatic impact on the performance of your Asterisk system. The complexity of the codec, and the possible necessity of transcoding, can place heavy demands on the systems CPU. In addition, the host platforms common to embedded systems often have limited hardware resources in an effort to control cost.
Happily, these two codecs from the Siren family do not present an onerous CPU burden.
- CPU requirement is asymmetrical
- encoding uses more CPU than decoding
- Siren playback/decoding is very cheap
- Similar in complexity to GSM-FR
- Down-sampling is similarly easy
- Less processor intensive than the aged G.722!*
- Encoding not especially processor intensive
- Estimated <20% of the CPU load of encoding a G.729a stream
All of this bodes well for the use of the Siren codecs on Asterisk systems of all sorts, from small embedded platforms to large scale servers.
* from a statement made by Polycom CTO Jeff Rodman in an interview with TMC
What Are The Advantages To Using Siren7 & 14?
Let’s set aside the common debate about the merits of HDVoice vs the PSTN. Presuming that we find merit in using HDVoice, what does using the Siren codecs get you?
1. Optimal Wideband Interop With The Broad Range Of Polycom HDVoice Hardware
“Be all that you can be” was once the philosophy promoted in ads for the US Army. Consider that you’ve just installed a bundle of nice new Polycom phones, and specifically some conference phones or VVX-1500’s. Why not let them perform to their intended spec? Enabling HDVoice, including G.722, Siren7 & 14 where possible, is like taking off the training wheels. It ensures that your users have an optimal experience with the hardware in which they’ve just invested.
Of course, truly optimal results with Siren 14 awaits support for sample rates beyond 16 KHz in a future release of Asterisk.
2. Superior Voice Quality At Reduced Bitrates For On-Net Calling
Siren7 delivers call quality similar to G.722 but at half the network bitrate. When packet overhead is considered this amounts to around 35% less network traffic per call stream. This can be realized for internal calling, inter-office calling, SIP trunking and IP Peering. These are all situations where 100% IP call transit is possible. Siren 14 further extends call quality while remaining below the bitrate required for G.722 or G.711.
This possible advantage is significantly moderated by the fact that the more common SoundPoint phones support only G.722. That Polycom eventually provide some support for the Siren family in SoundPoint phones is clearly desirable.
However, the disparity in support of Siren7 & 14 creates an opportunity for Asterisk in many installations. With support for G.722, Siren7 & Siren14 Asterisk can play an critical role in transcoding media streams for installations that have a mix of end-points. In that role it brings the economics of open source to compete with dedicated hardware solutions from media gateway companies like Audio Codes.
3. Reduced Bitrate Trunking
Siren7 also makes some sense for use in wideband trunking between Asterisk servers. If you have two locations with SoundPoint series desktop phones your Asterisk servers could transcode G.722 into Siren7 to make efficient of bandwidth between the two locations. That trunk could be via SIP or IAX2.
4. High-Quality Interop With Larger Conference Systems
Siren7 and 14 arise from Polycom’s rich history in video conferencing systems, which is where there are largely available today. In fact, Polycom is so dominant in the video conferencing arena that the Siren codecs are implemented in many competitive systems that aim to interoperate with Polycom conference suites. Implementation of Siren in Asterisk opens the door to more optimal interop between IP phone systems and large scale video conference systems.
There are other factors involved, since video conferencing is still largely driven by the older H.323 protocol stack, as opposed to SIP, the dominant signaling protocol in the VoIP realm. There are H.323 protocol stacks for Asterisk, making HDVoice interop with conference systems a very real possibility.
Implementation of the Siren codecs in Asterisk provides an opportunity to offer users a better IP telephony experience, and extends Asterisk into roles that it might not otherwise address. It’s an evolutionary step in extending wideband voice capability within Asterisk.
Part 2 in this series will offer comparison of a number of recordings made using various codecs, including; G.722, Siren7 & Siren14.