Lower Bounds of The Narrow Bands

Voice is becoming a standard feature of any messaging app on mobile phones, in various forms using many different protocols. There’s the old guard, whom I will refer to as “Skype”. Some tough questions have been thrown their way by many groups who support a free Internet. There’s Google Voice, which is not really VoIP. Apple is playing around in the hedge maze inside their walled garden with iChat. There’s also Facebook, who is rolling out voice calling in Canada and the USA in their Messenger app on iOS.

None of these offerings address the callers privacy, and few document the details of their calling systems for developers. Surprisingly, none of these global VoIP carriers interoperate with each other. Why? Like most complicated problems, there is a complicated answer. I’m going to focus on codecs, which is a research subject that has been very active in the last few years.

Our friends at WhisperSystems recently did an in depth writeup on some challenges they had with the Speex codec when building RedPhone. RedPhone is the client application for one of a small group of secure VoIP carriers that address the challenging privacy issues around VoIP.

The Guardian Project is also one of these carriers, with a public service called OSTel. We chose to leverage an existing open source client called CSipSimple. This client has a modular design, which provides a wide selection of codecs. I’m going to focus on one in particular, named Codec2.


Codec2 addresses a challenge in radio communications that has been around for longer than the Internet. Bandwidth. It might be appropriate to think of your cell phone as a radio to understand this example. When connected to a cellular data connection, the bandwidth is limited by the carrier’s packet switched radio technology. This may be GPRS, EDGE, 3G, 4G(LTE) to name a few lovely acronyms. If your VoIP call uses a codec that exceeds the upper bounds of this bandwidth, you start to hear side effects like dropouts or unintelligible transmission which probably will lead to a dropped call.

One way to address this problem is to shoot for the bottom. The lower bounds of the bandwidth of cellular data connections start to look a lot like more traditional radio. Shortwave radio, or HAM is the community that’s the closest to the technology behind Codec2. If a codec can be used to transmit digitally encoded data over HAM, that means it is possible to “do VoIP” over a shortwave radio link. This opens up exciting new possibilities for secure voice over narrow bandwidth environments.

While a small part of the world enjoys plentiful wide band data connections in urban areas, coverage in many rural areas is less common. In this case shooting for the bottom of the bandwidth spectrum helps us keep our calls from dropping and our voices heard.

The CSipSimple Codec Pack supports secure voice calls using Codec2 with the stable release on the Google Play Store.

4 comments for “Lower Bounds of The Narrow Bands

  1. mr
    2013/03/01 at 10:06 am

    Hi, is there an advantage of using Codec2 over Opus, which received recently very good reviews?

  2. Lee
    2013/03/21 at 4:04 pm

    Codec2 is exclusively for narrow bandwidth. Opus is a well rounded codec but does not have the same quality at the low bitrate of Codec2. I would use Opus for genral purpose audio encoding. I would use Codec2 for extremely narrow bandwidth voice encoding.

  3. Isak Johnsson
    2013/03/25 at 6:18 am


    (please not that “bands”, “frequencies” and such refer to the audio in this post)

    I have a damage on my vocal cords, making me sound hoarse. I think the middle band (of a typical or deep male voice) is very weak, but that the lower and higher bands. Which frequencies I refer to, low, middle, high bands ofa a typical male voice, I do not know. Perhaps you do. Can Codec2 handle that in an intelligeble way?

    Most speech-driven phone applications doesn’t understand a word of what I say and over a mobile phone it seems harder to hear me.

    A follow up question is if there are parameters, like for bandpass filters, which you can adjust in Codec2?

    If there are I bet they are so many and finding an optimal setting is a theoretically hard problem, even for one voice. But many good enough settings might be possible to find.

    Thanks for any answers!


  4. Jocke
    2013/04/22 at 12:40 pm

    Seems to be working good over wifi on the same router using ostel on a gnote2 and xperia arc still takes to much bandwitdh though (18,6)kbps which is too much for gprs(8kbps with CS1 | CS2=12,0 | CS3=14,4)

    Any idea how to get the payloads smaller? Maybe some compression on the sip/rtp? or using straight up udp streaming somehow? 3g and edge is still not that widespread in rural/developing places.

Leave a Reply

Your email address will not be published. Required fields are marked *