Planning and Implementing a Mobile Interactive Voice System

Posted by MelissaLoudon on Sep 22, 2010
Author: 
Melissa Loudon
Abstract: 

In this article, we look at tools and systems for Interactive Voice Response (IVR). IVR allows callers to navigate an automated menu by pressing keys on their phone keypad, reaching either an extension ('press 1 for sales, press 2 for support'), a further menu, or audio content. Such content might be pre-recorded - for example, a weather report - or retrieved from a database and read out by an automated voice, which most mobile users will have encountered when calling in to request an airtime balance or bill amount. IVR systems can also be configured to allow people to record their own content.

Long neglected in favor of SMS, mobile apps and the mobile web, voice is enjoying a resurgence in mobile tech for social change projects. There are good reasons for this:

  • Voice is universally available on even the most basic handsets
  • Voice has much greater capacity for information exchange (although not for automated translation) than either SMS or USSD
  • Voice systems don’t require literacy
  • Voice is familiar, and often a trusted channel for communicating confidential information.
  • Voice systems can quite easily be developed in multiple languages, or in local languages not supported on all handsets. 

In this article, we look at tools and systems for Interactive Voice Response (IVR). IVR allows callers to navigate an automated menu by pressing keys on their phone keypad, reaching either an extension ('press 1 for sales, press 2 for support'), a further menu, or audio content. Such content might be pre-recorded - for example, a weather report - or retrieved from a database and read out by an automated voice, which most mobile users will have encountered when calling in to request an airtime balance or bill amount. IVR systems can also be configured to allow people to record their own content.

Project Examples

Kubatana.net's Inzwa audio information service was a 3-month pilot of FreedomFone (reviewed below) that took place last year. The service offered callers local, international and community news, information on job and scholarship opportunities and entertainment segments from local artists. Other recent FreedomFone projects include Tariro On Top, an audio soap opera about sexual harassment in the workplace, as well as community radio phone-in lines in Ghana and Tanzania, which were profiled last month on MobileActive.org.

  • CGnet Swara, set up in conjunction with Microsoft Research India and MIT, is a citizen news service being piloted in the Indian state of Chhattisgarh. Citizen reporters phone in to the service to record news stories. Once a story has been verified, subscribers are notified by SMS, and can phone in and listen to local-language, locally-relevant news.

  • Dimagi and BRAC are using IVR to deliver short audio courses on topics of public health significance, such as handwashing, pregnancy and HIV transmission. Courses are structured as episodes of a soap opera, and a quiz at the end of each episode offers airtime as an incentive for successful completion.
  • In Zimbabwe, the MDC's Voice of Real Change is an audio information service with news and political content. Callers dial one of several mobile numbers to access the system, which initially hangs up before calling back with options to listen to information or leave a voice message.

Planning a Mobile IVR System

1. Costs

Mobile IVR systems don’t have to be expensive, particularly if your target audience is relatively small and you don’t expect to handle a large number of concurrent calls. In general, upfront costs include:

  • Hardware and/or hosting for the IVR application. At a minimum, you’ll need a desktop PC with reliable power in a secure location. Alternatives include custom-designed ‘appliances’ that bundle telephony hardware and come with a software package installed, or data centre hosting for your application or, at the top end, your own server.
  • Hardware and/or hosting for the telephony function. GSM network connectivity for a single line can be provided by a Mobigator device for around $100, with more lines (and landline connectivity options) coming in correspondingly more expensive. Alternatively, you might choose a voice over IP (VOIP) provider and pay a monthly flat rate in addition to your internet connection charges, or use a fully hosted solution and pay only per minute used.
  • Technical support during system setup. Depending on your level of technical expertise and the complexity of the system, you may need no outside help, a few hours of pay-as-you-go remote help from a vendor like Elastix or trixbox, or full-service installation and configuration assistance and software development.
  • Training for system administrators, content producers and/or users
  • Advertising your service to potential users 

Running costs depend mostly on whether you’ll be paying per minute for incoming calls (as with a hosted provider), and whether you’ll be making and paying for outgoing calls. Other monthly costs might include Internet, land line or mobile connection charges, electricity and hosting.  

Call charges

Unless you are providing information with a clear market value (and charging only what callers are willing to pay), the single biggest thing you can do to make sure people call your system is to make sure that people are willing to pay for the information you’re providing, and if not, make it free or cheap. Some ways to reduce call charges include:

  • Get a toll-free number from a provider, and have calls to that number forwarded to your system. This is not available in all countries, however - and it’s important to check that it’s still toll-free when called from mobile phones
  • Use a callback system, where users either send an SMS to a number (paying the cost of the message, unless you can set up a free shortcode) or call a number and hang up. None of the systems reviewed offer callbacks out of the box, but they’re planned for an upcoming version of FreedomFone, and could be configured on other systems with a little extra development.
  • Allow callers to take advantage of within-network call discounts or free minutes by providing several alternative numbers for different mobile networks.

2. Technical support

In projects that expect to run without an Internet connection to the telephony server, on-site technical support needs to be planned for (and ideally contracted) upfront. Unless you plan to have a technical expert permanently available, a simple telephony system such as FreedomFone, which is designed for administration by non-specialists, is probably the best option.
 
If your telephony server does have a reliable Internet connection, much (but not all) troubleshooting can be done remotely. This can be risky - make absolutely sure that the server is secure! You should also consider how you will handle technical support issues that require physical access to hardware components. Particularly for telephony hardware, it may be worth keeping certain spare parts available on-site, in the care of a trusted user who could be talked through making a swap.

3. Audio prompt design

Audio prompts provide instructions, menu options and information to the caller. There are two ways to create the prompts: either record your own audio files, or use a text-to-speech engine.

  • Text-to-speech is most useful when you don’t know upfront what information will be returned to the caller - and therefore can’t record audio files for it. Weather call services are one example of this.
  • Creating your own prompts costs nothing and provides a more human touch, and also accommodates languages that a text-to-speech engine might not.  Pre-recorded audio files require a little bit of effort to get good sound quality, but are easily created with free tools. MobileActive.org recently published a guide on creating audio, and FreedomFone also has a simple audio cookbook that uses the free Audacity sound editing package. 

Technology options

Telephony systems are complicated beasts: they require specialized hardware and software, a reliable server environment, and a good deal of conceptual understanding of digital and analogue voice transmission. Fortunately, pre-packed telephony server distributions and hosted systems simplify IVR setup considerably.
 
For this article, we tested four options - Cloudvox, which hosts a telephony server on Amazon's cloud, trixbox and PBX-in-a-box, telephony server distributions designed for easy configuration through a web interface, and FreedomFone, a telephony server distribution designed specifically for NGOs building mobile telephony systems. To summarise our findings:

  • Use a hosted system if you can get a local number (and decent call quality) in your target area. Hosted systems simplify setup considerably, and make financial sense for time-limited projects.
  • Use FreedomFone if you want a mobile number rather than a VOIP or fixed-line connection, plan on buying all the hardware yourself, and don’t need complex functionality. FreedomFone is well-documented and easy to set up, with out-of-the-box support for basic IVR menus, leave a message and SMS polls.
  • Use trixbox, PBX-in-a-flash or Elastix to install a full-featured, highly configurable telephony server - provided you’re comfortable with Linux server administration and following technical setup guides.
  • For basic leave-a-message functionality, consider a Voicemail-to-email service, or VoiceSMS.

This article looks at full systems, which provide (after some configuration, at varying levels of technical intricacy) a set of out-of-the-box features. This is likely to be the first port of call for most mobile IVR systems, but it is entirely possible to roll your own specialised telephony server using Asterisk or FreeSWITCH. In the last section, we also provide some information on voice application scripting environments, which provide flexibility and application integration without necessarily requiring you to set up a telephony server from scratch.

1. Hosted systems

Several companies offer hosted telephony systems, accessible over the Internet and managed by the provider. The provider will arrange an inbound phone number, often with the capacity to handle multiple concurrent calls. You pay only to use the service.
 
Hosted systems are an increasingly popular choice for Mobile IVR. In Bangladesh, for example, the BBC’s Janala Conversational English service is accessible on any network through a partnership with operators, each of whom hosts the content of the lessons. In India, the much smaller Gaon Ki Awaaz project uses a commercial service from Netxcell to distribute community announcements.
 
In addition to providing inbound phone numbers and hosting for your own applications, some providers host configurable versions of common telephony applications. Ifbyphone has applications for IVR, group voice blasting and call centre operation, while Voxeo specialises in IVR hosting. Others, such as Twilio, Jaduka, Cloudvox and Ribbit offer application programming interfaces (APIs) that developers can use to build their own voice applications. Which you choose depends on the country where you are deploying, how much customization you need and, if choosing an API, what language or environment you plan to develop in. Other general considerations for hosted systems include the geographical location of your users (some companies only provide US numbers), as well as call quality in countries with limited international bandwidth.
 
For this article, we chose to test Cloudvox, which provides incoming numbers in over 30 countries, and can be reached by SIP-capable providers in many others. Cloudvox is a developer platform, with open source APIs for Java, Perl and PHP as well as a simple HTTP/JSON interface. Billing is per-minute for calls and monthly for phone numbers ($3 for a US number, $10 for numbers in other countries) based on prepaid credit. Ushahidi recently set up a call-to-report feature using CloudVox.

Cloudvox delivers on its promise of easy signup - I was up and running with a temporary extension in minutes, and provided with a South African number overnight. Support resources were a little difficult to navigate at first, but the APIs are well documented and give clear examples, and there's a well-monitored forum. It took just a few hours to go from signup to a fully callable IVR menu, with leave-a-message functionality, my own recordings, and an automated voice reading out a countdown timer. Even better, the sound quality was excellent.

Ushahidi's deployment of Cloudvox for crowdsourcing in crisis situations leverages the key strengths of a hosted platform - rapid setup, high-level APIs for rapid development, and pricing plans that let you pay for what you use. This is ideal for time-limited projects, and also a good way to set up a demo system before committing to expensive hardware and server purchases. For more permanent systems it may not be cost-effective to pay per minute. Also, be wary of providers offering proprietary APIs - if your system uses these, it will be more difficult to change providers should you find better service or a better deal elsewhere.

2. Full-system ISO installs

Full-system disk images (ISOs) can be used to install an operating system and telephony software on a dedicated server. While your server doesn't have to be particularly powerful (most desktop PCs sold today would work fine), you do need to be able to secure it, and ensure continuous power supply. Also, be warned that all the systems tested here will format the server's hard drive prior to installing!

FreedomFone

The FreedomFone is a mobile IVR system designed for use by NGOs and advocacy groups. Of all the systems we tested, it's the simplest to install and configure. Version 1.6 offers IVR menus and a leave-a-message function, as well as SMS polls, all configurable via a web interface. There's an online demo, callable via skype, at demo.freedomfone.org

Installation: FreedomPhone is distributed as an Ubuntu-based live CD, although this is an installer rather than a livecd-based demo. It's a big download (800+ Mb), and your target PC needs to be able to boot from a DVD drive or USB disk to run the installer. The live CD environment includes documentation and screenshots, and the graphical install procedure is straightforward.

Hardware/dependencies: If you want to connect to Skype, you'll need a working internet connection. If you want to allow incoming calls from the mobile network, FreedomPhone supports attaching one or more Mobigators (around $100 for a one-SIM model) or other USB-based GSM devices. You can also use four-SIM VoiceBlue Lite device ($2000, configuration requires a Windows PC), which has cost-saving features such as call routing based on network or free minutes.
Architecture: LAMP + CakePHP + FreeSwitch + gsmopen

Functionality: SMS polls, basic IVR (a single menu with up to 10 options), leave-a-message menu and message inbox. IVR menus can use either pre-recorded audio snippets, or (on purchase of a license) a Cepstral text-to-speech voice. The install includes Audacity for sound editing, as well as a quick start guide on creating your own recordings.

Documentation and Support: FreedomFone includes official documentation on the liveCD. It's clear, well-illustrated and easy to follow. There's a bug trackerand a mailing list on the website, as well as some limited technical docs. It's designed to be easy to self-install, so there's no official paid support option, but use of standard components should make this easy to find.

Limitations: FreedomFone provides a very basic IVR system. You can’t have more than one menu level - nearly essential for menus with more than one language option - without editing configuration files. It’s also tested with only two specific hardware devices, so you’re dependent on one of these being available in your region, or on being able to test and configure hardware yourself. Finally, being a relatively new project means it has a smaller community and fewer community support resources, although the developers seem willing to help out.

  
 

trixbox CE

trixbox CE(community edition) is a free full-system ISO distribution maintained by Fonality, who provide paid support and specialized hardware as well as a paid enterprise edition. The target audience much broader than that of FreedomFone, and also significantly more technical. The installed system reflects this, with a kitchen sink approach to functionality and liberal use of esoteric telephony terms. At the same time, you get the feeling that once you know what you're doing, there are very few telephony things you couldn't build with trixbox.

Installation: trixbox CE is based on CentOS, and the installation procedure is a standard Linux non-graphical install. If the installer is able to configure your network connection, you'll be able to access the FreePBX web-based PBX management system from the local network immediately after setup. This quick install guide offers a walkthrough of the installation process.

Hardware/dependencies: trixbox can be used with a VOIP connection, or with a wide variety of telephony hardware components. There's a helpful certified hardware list on Fonality's website, and much more information available in the forums. The advantage of choosing such a widely used distribution is that whatever hardware you're considering, someone has probably already tried it. To connect to the mobile network, you can use various mobile to SIP or mobile to FXO gateways, as well as devices supported by the Asterisk Celliax module (now GSMOpen).

Architecture: LAMP + FreePBX + Asterix + many others via the package manager

Functionality:trixbox is a full-featured PBX, with all of the features you'd expect from an office phone system - voicemail, extension setup, in-hours and out-of-hours IVR, ring queues and ring groups. There's a full list of out-of-the-box functionality here. If you're writing your own telephony applications, trixbox also installs the Asterisk Gateway Interface (AGI), and can be configured through the web interface call AGI scripts in response to IVR keypresses. For more detail about IVR setup, take a look at this step-by-step video, or FreePBX's basic or comprehensive IVR guides.

Documentation and support: While the official site has little beyond the quick start guide, there's a vast amount of user-created documentation available for trixbox, and many other HOWTOs refer to FreePBX/asterisk systems generally. Fonality's paid support includes a pay-per-hour option where they'll log in to your server remotely to troubleshoot with you.

PBX-in-a-flash

PBX-in-a-flash is a full system ISO which, despite many similarities to trixbox, has a markedly different approach. There's no proprietary commercial version, and no company overseeing development or providing support. Out of the box, PBX-in-a-flash does the bare minimum, with additional functionality provided by an efficient package management system. The main selling points of this approach are hassle-free upgrades and superior security.

Installation:
PBX-in-a-flash is based on CentOS, and provides a basic non-graphical installer. Unlike trixbox, which includes everything it needs on the install CD, PBX-in-a-flash downloads key components such as Asterisk at install-time. This is part of the drive to simplify upgrades, and ensures that the latest stable version is always installed - provided you have a reliable internet connection on your new telephony server. For more detail about the install process, take a look at the installation guide.

Hardware/dependencies: Because the underlying components are the same, hardware information is the same as for trixbox - see above. This page also shows some examples of working PBX-in-a-flash hardware configurations.

Architecture: LAMP + FreePBX + Asterix + many others via the package manager

Functionality: In keeping with PBX-in-a-flash's minimal approach, the IVR module is not installed by default. It's available, along with many other features, in the Module Admin interface. In addition, there is a vast collection of scripts available to set up all kinds of fun services - a hotline for current weather or tides, or a community broadcats 'yapper' that calls a predefined group of people and plays messages left in a voicemail box. Even if many of these aren't that useful, they're great examples of what's possible with a PBX, and equally helpful for learning how things work.

Documentation and Support: PBX-in-a-flash has comprehensive but technically involved documentation available on the official site, as well as extensive community-provided documentation. Some of this is specific to PBX-in-a-flash, but there's also a good deal of general documentation that should apply to most systems running Asterisk and FreePBX. One of the PBX-in-a-flash developers runs NerdVittles, a mine of telephony system information useful, they're almost forgiven for putting out a PBX distribution called The Orgasmatron.

Elastix

Although not tested for this review, Elastix is an established Asterisk + FreePBX system along the lines of trixbox. It's developed by PaloSanto, an Ecuadorean company who offer paid support and training and sell certified hardware.

Like trixbox, Elastix has a kitchen sink approach to functionality, bundling an instant messaging server and several other non-telephony things. It's ideally suited as small office server, but has a good reputation as a general telephony platform as well. Many of Elastix's training partners and resellers are in Central and South America. Documentation is available in Spanish and English, and there is a large Spanish section on the Elastix forums.

Other mobile voice tools

Voicemail-to-email

Voicemail-to-email services such as Google Voice can be an easy and cheap way to set up a leave-a-message hotline. The Mobile Voices project, recently profiled on MobileActive.org, has a voicemail-to-email service where citizen reporters can call in and upload audio stories. They used Gizmo5's call-in number service ($12 for 3 months) to get a local number. Gizmo5 has since been acquired by Google, which provides this service free through Google Voice. Unfortunately, this new solution is missing the direct voicemail-to-email forwarding service that used to be available though Gizmo, but there are unofficial Google Voice APIs for python and java that could be used to recreate this. Google Voice isn't yet available outside the US, but service providers in many countries offer inexpensive local call-in numbers.

Voice SMS

Voice SMS is a new service introduced by mobile operators in several countries, including MTN in Uganda and Ghana. A voice message of up to 30 seconds is sent by dialing * before the recipient's number. The recipient is sent an SMS notification, and must call a free number to listen to the message. While this isn't particularly suitable for automation, systems where a human transcriber must listen to every message might benefit from voice SMS. Bubbly, made available by operators in several Asian countries, is a Voice SMS service that adds twitter-like 'follow' functionality so that users can broadcast messages to group. MobileActive.org has a tool profile of Bubbly.

Voice application scripting environments

Voice application scripting environments can be useful if you're looking to voice-enable an existing application, or if you want to develop experimental functionality. This is as close as you get to building a system from scratch without actually building from scratch, so be warned: technical expertise (and/or hours of poring over documentation) may be required!

  • VOIP Drupal aims to bring voice 'pages' to the web through the popular Drupal content management system. It's still under development, but there's a preview of the proposed architecture here.
  • Lwazi, developed by the Meraka Institute, is a telephony platform that combines an Asterisk installer with a Python scripting environment.
  • VoiceXML is the W3C standard for voice communication with an automated system. A VoiceXML ‘page, presented to the listener by a VoiceXML browser, is the voice equivalent of an HTML page presented by a web browser. If you’re interested in building your own VoiceXML application, Azaaz Otalo uses VoiceXML and had publicly accessible source code, and BeVocal Cafe offers a free hosted app environment, enterprise VoiceXML hosting and extensive developer resources. You could also look at a tool like VoiceGlue, a VoiceXML interpreter that works with Asterisk.

Conclusion

While voice systems might initially be difficult to come to terms with, acceptability, cost and accessibility are strong arguments for voice as a medium in mobiles for social change projects. MobileActive.org’s cases page features a growing number of innovative voice projects. The tools and systems featured in this article provide a way to match the level of technical skill required to set the system up with the intricacy of the functionality required. Mobile IVR systems might still not be for everyone, but with a little experimentation (and perhaps a little help) they can be a great way to talk and listen to your audience.

Planning and Implementing a Mobile Interactive Voice System data sheet 9850 Views
Author: 
Melissa Loudon
Abstract: 

In this article, we look at tools and systems for Interactive Voice Response (IVR). IVR allows callers to navigate an automated menu by pressing keys on their phone keypad, reaching either an extension ('press 1 for sales, press 2 for support'), a further menu, or audio content. Such content might be pre-recorded - for example, a weather report - or retrieved from a database and read out by an automated voice, which most mobile users will have encountered when calling in to request an airtime balance or bill amount. IVR systems can also be configured to allow people to record their own content.

Long neglected in favor of SMS, mobile apps and the mobile web, voice is enjoying a resurgence in mobile tech for social change projects. There are good reasons for this:

  • Voice is universally available on even the most basic handsets
  • Voice has much greater capacity for information exchange (although not for automated translation) than either SMS or USSD
  • Voice systems don’t require literacy
  • Voice is familiar, and often a trusted channel for communicating confidential information.
  • Voice systems can quite easily be developed in multiple languages, or in local languages not supported on all handsets. 

In this article, we look at tools and systems for Interactive Voice Response (IVR). IVR allows callers to navigate an automated menu by pressing keys on their phone keypad, reaching either an extension ('press 1 for sales, press 2 for support'), a further menu, or audio content. Such content might be pre-recorded - for example, a weather report - or retrieved from a database and read out by an automated voice, which most mobile users will have encountered when calling in to request an airtime balance or bill amount. IVR systems can also be configured to allow people to record their own content.

Project Examples

Kubatana.net's Inzwa audio information service was a 3-month pilot of FreedomFone (reviewed below) that took place last year. The service offered callers local, international and community news, information on job and scholarship opportunities and entertainment segments from local artists. Other recent FreedomFone projects include Tariro On Top, an audio soap opera about sexual harassment in the workplace, as well as community radio phone-in lines in Ghana and Tanzania, which were profiled last month on MobileActive.org.

  • CGnet Swara, set up in conjunction with Microsoft Research India and MIT, is a citizen news service being piloted in the Indian state of Chhattisgarh. Citizen reporters phone in to the service to record news stories. Once a story has been verified, subscribers are notified by SMS, and can phone in and listen to local-language, locally-relevant news.

  • Dimagi and BRAC are using IVR to deliver short audio courses on topics of public health significance, such as handwashing, pregnancy and HIV transmission. Courses are structured as episodes of a soap opera, and a quiz at the end of each episode offers airtime as an incentive for successful completion.
  • In Zimbabwe, the MDC's Voice of Real Change is an audio information service with news and political content. Callers dial one of several mobile numbers to access the system, which initially hangs up before calling back with options to listen to information or leave a voice message.

Planning a Mobile IVR System

1. Costs

Mobile IVR systems don’t have to be expensive, particularly if your target audience is relatively small and you don’t expect to handle a large number of concurrent calls. In general, upfront costs include:

  • Hardware and/or hosting for the IVR application. At a minimum, you’ll need a desktop PC with reliable power in a secure location. Alternatives include custom-designed ‘appliances’ that bundle telephony hardware and come with a software package installed, or data centre hosting for your application or, at the top end, your own server.
  • Hardware and/or hosting for the telephony function. GSM network connectivity for a single line can be provided by a Mobigator device for around $100, with more lines (and landline connectivity options) coming in correspondingly more expensive. Alternatively, you might choose a voice over IP (VOIP) provider and pay a monthly flat rate in addition to your internet connection charges, or use a fully hosted solution and pay only per minute used.
  • Technical support during system setup. Depending on your level of technical expertise and the complexity of the system, you may need no outside help, a few hours of pay-as-you-go remote help from a vendor like Elastix or trixbox, or full-service installation and configuration assistance and software development.
  • Training for system administrators, content producers and/or users
  • Advertising your service to potential users 

Running costs depend mostly on whether you’ll be paying per minute for incoming calls (as with a hosted provider), and whether you’ll be making and paying for outgoing calls. Other monthly costs might include Internet, land line or mobile connection charges, electricity and hosting.  

Call charges

Unless you are providing information with a clear market value (and charging only what callers are willing to pay), the single biggest thing you can do to make sure people call your system is to make sure that people are willing to pay for the information you’re providing, and if not, make it free or cheap. Some ways to reduce call charges include:

  • Get a toll-free number from a provider, and have calls to that number forwarded to your system. This is not available in all countries, however - and it’s important to check that it’s still toll-free when called from mobile phones
  • Use a callback system, where users either send an SMS to a number (paying the cost of the message, unless you can set up a free shortcode) or call a number and hang up. None of the systems reviewed offer callbacks out of the box, but they’re planned for an upcoming version of FreedomFone, and could be configured on other systems with a little extra development.
  • Allow callers to take advantage of within-network call discounts or free minutes by providing several alternative numbers for different mobile networks.

2. Technical support

In projects that expect to run without an Internet connection to the telephony server, on-site technical support needs to be planned for (and ideally contracted) upfront. Unless you plan to have a technical expert permanently available, a simple telephony system such as FreedomFone, which is designed for administration by non-specialists, is probably the best option.
 
If your telephony server does have a reliable Internet connection, much (but not all) troubleshooting can be done remotely. This can be risky - make absolutely sure that the server is secure! You should also consider how you will handle technical support issues that require physical access to hardware components. Particularly for telephony hardware, it may be worth keeping certain spare parts available on-site, in the care of a trusted user who could be talked through making a swap.

3. Audio prompt design

Audio prompts provide instructions, menu options and information to the caller. There are two ways to create the prompts: either record your own audio files, or use a text-to-speech engine.

  • Text-to-speech is most useful when you don’t know upfront what information will be returned to the caller - and therefore can’t record audio files for it. Weather call services are one example of this.
  • Creating your own prompts costs nothing and provides a more human touch, and also accommodates languages that a text-to-speech engine might not.  Pre-recorded audio files require a little bit of effort to get good sound quality, but are easily created with free tools. MobileActive.org recently published a guide on creating audio, and FreedomFone also has a simple audio cookbook that uses the free Audacity sound editing package. 

Technology options

Telephony systems are complicated beasts: they require specialized hardware and software, a reliable server environment, and a good deal of conceptual understanding of digital and analogue voice transmission. Fortunately, pre-packed telephony server distributions and hosted systems simplify IVR setup considerably.
 
For this article, we tested four options - Cloudvox, which hosts a telephony server on Amazon's cloud, trixbox and PBX-in-a-box, telephony server distributions designed for easy configuration through a web interface, and FreedomFone, a telephony server distribution designed specifically for NGOs building mobile telephony systems. To summarise our findings:

  • Use a hosted system if you can get a local number (and decent call quality) in your target area. Hosted systems simplify setup considerably, and make financial sense for time-limited projects.
  • Use FreedomFone if you want a mobile number rather than a VOIP or fixed-line connection, plan on buying all the hardware yourself, and don’t need complex functionality. FreedomFone is well-documented and easy to set up, with out-of-the-box support for basic IVR menus, leave a message and SMS polls.
  • Use trixbox, PBX-in-a-flash or Elastix to install a full-featured, highly configurable telephony server - provided you’re comfortable with Linux server administration and following technical setup guides.
  • For basic leave-a-message functionality, consider a Voicemail-to-email service, or VoiceSMS.

This article looks at full systems, which provide (after some configuration, at varying levels of technical intricacy) a set of out-of-the-box features. This is likely to be the first port of call for most mobile IVR systems, but it is entirely possible to roll your own specialised telephony server using Asterisk or FreeSWITCH. In the last section, we also provide some information on voice application scripting environments, which provide flexibility and application integration without necessarily requiring you to set up a telephony server from scratch.

1. Hosted systems

Several companies offer hosted telephony systems, accessible over the Internet and managed by the provider. The provider will arrange an inbound phone number, often with the capacity to handle multiple concurrent calls. You pay only to use the service.
 
Hosted systems are an increasingly popular choice for Mobile IVR. In Bangladesh, for example, the BBC’s Janala Conversational English service is accessible on any network through a partnership with operators, each of whom hosts the content of the lessons. In India, the much smaller Gaon Ki Awaaz project uses a commercial service from Netxcell to distribute community announcements.
 
In addition to providing inbound phone numbers and hosting for your own applications, some providers host configurable versions of common telephony applications. Ifbyphone has applications for IVR, group voice blasting and call centre operation, while Voxeo specialises in IVR hosting. Others, such as Twilio, Jaduka, Cloudvox and Ribbit offer application programming interfaces (APIs) that developers can use to build their own voice applications. Which you choose depends on the country where you are deploying, how much customization you need and, if choosing an API, what language or environment you plan to develop in. Other general considerations for hosted systems include the geographical location of your users (some companies only provide US numbers), as well as call quality in countries with limited international bandwidth.
 
For this article, we chose to test Cloudvox, which provides incoming numbers in over 30 countries, and can be reached by SIP-capable providers in many others. Cloudvox is a developer platform, with open source APIs for Java, Perl and PHP as well as a simple HTTP/JSON interface. Billing is per-minute for calls and monthly for phone numbers ($3 for a US number, $10 for numbers in other countries) based on prepaid credit. Ushahidi recently set up a call-to-report feature using CloudVox.

Cloudvox delivers on its promise of easy signup - I was up and running with a temporary extension in minutes, and provided with a South African number overnight. Support resources were a little difficult to navigate at first, but the APIs are well documented and give clear examples, and there's a well-monitored forum. It took just a few hours to go from signup to a fully callable IVR menu, with leave-a-message functionality, my own recordings, and an automated voice reading out a countdown timer. Even better, the sound quality was excellent.

Ushahidi's deployment of Cloudvox for crowdsourcing in crisis situations leverages the key strengths of a hosted platform - rapid setup, high-level APIs for rapid development, and pricing plans that let you pay for what you use. This is ideal for time-limited projects, and also a good way to set up a demo system before committing to expensive hardware and server purchases. For more permanent systems it may not be cost-effective to pay per minute. Also, be wary of providers offering proprietary APIs - if your system uses these, it will be more difficult to change providers should you find better service or a better deal elsewhere.

2. Full-system ISO installs

Full-system disk images (ISOs) can be used to install an operating system and telephony software on a dedicated server. While your server doesn't have to be particularly powerful (most desktop PCs sold today would work fine), you do need to be able to secure it, and ensure continuous power supply. Also, be warned that all the systems tested here will format the server's hard drive prior to installing!

FreedomFone

The FreedomFone is a mobile IVR system designed for use by NGOs and advocacy groups. Of all the systems we tested, it's the simplest to install and configure. Version 1.6 offers IVR menus and a leave-a-message function, as well as SMS polls, all configurable via a web interface. There's an online demo, callable via skype, at demo.freedomfone.org

Installation: FreedomPhone is distributed as an Ubuntu-based live CD, although this is an installer rather than a livecd-based demo. It's a big download (800+ Mb), and your target PC needs to be able to boot from a DVD drive or USB disk to run the installer. The live CD environment includes documentation and screenshots, and the graphical install procedure is straightforward.

Hardware/dependencies: If you want to connect to Skype, you'll need a working internet connection. If you want to allow incoming calls from the mobile network, FreedomPhone supports attaching one or more Mobigators (around $100 for a one-SIM model) or other USB-based GSM devices. You can also use four-SIM VoiceBlue Lite device ($2000, configuration requires a Windows PC), which has cost-saving features such as call routing based on network or free minutes.
Architecture: LAMP + CakePHP + FreeSwitch + gsmopen

Functionality: SMS polls, basic IVR (a single menu with up to 10 options), leave-a-message menu and message inbox. IVR menus can use either pre-recorded audio snippets, or (on purchase of a license) a Cepstral text-to-speech voice. The install includes Audacity for sound editing, as well as a quick start guide on creating your own recordings.

Documentation and Support: FreedomFone includes official documentation on the liveCD. It's clear, well-illustrated and easy to follow. There's a bug trackerand a mailing list on the website, as well as some limited technical docs. It's designed to be easy to self-install, so there's no official paid support option, but use of standard components should make this easy to find.

Limitations: FreedomFone provides a very basic IVR system. You can’t have more than one menu level - nearly essential for menus with more than one language option - without editing configuration files. It’s also tested with only two specific hardware devices, so you’re dependent on one of these being available in your region, or on being able to test and configure hardware yourself. Finally, being a relatively new project means it has a smaller community and fewer community support resources, although the developers seem willing to help out.

  
 

trixbox CE

trixbox CE(community edition) is a free full-system ISO distribution maintained by Fonality, who provide paid support and specialized hardware as well as a paid enterprise edition. The target audience much broader than that of FreedomFone, and also significantly more technical. The installed system reflects this, with a kitchen sink approach to functionality and liberal use of esoteric telephony terms. At the same time, you get the feeling that once you know what you're doing, there are very few telephony things you couldn't build with trixbox.

Installation: trixbox CE is based on CentOS, and the installation procedure is a standard Linux non-graphical install. If the installer is able to configure your network connection, you'll be able to access the FreePBX web-based PBX management system from the local network immediately after setup. This quick install guide offers a walkthrough of the installation process.

Hardware/dependencies: trixbox can be used with a VOIP connection, or with a wide variety of telephony hardware components. There's a helpful certified hardware list on Fonality's website, and much more information available in the forums. The advantage of choosing such a widely used distribution is that whatever hardware you're considering, someone has probably already tried it. To connect to the mobile network, you can use various mobile to SIP or mobile to FXO gateways, as well as devices supported by the Asterisk Celliax module (now GSMOpen).

Architecture: LAMP + FreePBX + Asterix + many others via the package manager

Functionality:trixbox is a full-featured PBX, with all of the features you'd expect from an office phone system - voicemail, extension setup, in-hours and out-of-hours IVR, ring queues and ring groups. There's a full list of out-of-the-box functionality here. If you're writing your own telephony applications, trixbox also installs the Asterisk Gateway Interface (AGI), and can be configured through the web interface call AGI scripts in response to IVR keypresses. For more detail about IVR setup, take a look at this step-by-step video, or FreePBX's basic or comprehensive IVR guides.

Documentation and support: While the official site has little beyond the quick start guide, there's a vast amount of user-created documentation available for trixbox, and many other HOWTOs refer to FreePBX/asterisk systems generally. Fonality's paid support includes a pay-per-hour option where they'll log in to your server remotely to troubleshoot with you.

PBX-in-a-flash

PBX-in-a-flash is a full system ISO which, despite many similarities to trixbox, has a markedly different approach. There's no proprietary commercial version, and no company overseeing development or providing support. Out of the box, PBX-in-a-flash does the bare minimum, with additional functionality provided by an efficient package management system. The main selling points of this approach are hassle-free upgrades and superior security.

Installation:
PBX-in-a-flash is based on CentOS, and provides a basic non-graphical installer. Unlike trixbox, which includes everything it needs on the install CD, PBX-in-a-flash downloads key components such as Asterisk at install-time. This is part of the drive to simplify upgrades, and ensures that the latest stable version is always installed - provided you have a reliable internet connection on your new telephony server. For more detail about the install process, take a look at the installation guide.

Hardware/dependencies: Because the underlying components are the same, hardware information is the same as for trixbox - see above. This page also shows some examples of working PBX-in-a-flash hardware configurations.

Architecture: LAMP + FreePBX + Asterix + many others via the package manager

Functionality: In keeping with PBX-in-a-flash's minimal approach, the IVR module is not installed by default. It's available, along with many other features, in the Module Admin interface. In addition, there is a vast collection of scripts available to set up all kinds of fun services - a hotline for current weather or tides, or a community broadcats 'yapper' that calls a predefined group of people and plays messages left in a voicemail box. Even if many of these aren't that useful, they're great examples of what's possible with a PBX, and equally helpful for learning how things work.

Documentation and Support: PBX-in-a-flash has comprehensive but technically involved documentation available on the official site, as well as extensive community-provided documentation. Some of this is specific to PBX-in-a-flash, but there's also a good deal of general documentation that should apply to most systems running Asterisk and FreePBX. One of the PBX-in-a-flash developers runs NerdVittles, a mine of telephony system information useful, they're almost forgiven for putting out a PBX distribution called The Orgasmatron.

Elastix

Although not tested for this review, Elastix is an established Asterisk + FreePBX system along the lines of trixbox. It's developed by PaloSanto, an Ecuadorean company who offer paid support and training and sell certified hardware.

Like trixbox, Elastix has a kitchen sink approach to functionality, bundling an instant messaging server and several other non-telephony things. It's ideally suited as small office server, but has a good reputation as a general telephony platform as well. Many of Elastix's training partners and resellers are in Central and South America. Documentation is available in Spanish and English, and there is a large Spanish section on the Elastix forums.

Other mobile voice tools

Voicemail-to-email

Voicemail-to-email services such as Google Voice can be an easy and cheap way to set up a leave-a-message hotline. The Mobile Voices project, recently profiled on MobileActive.org, has a voicemail-to-email service where citizen reporters can call in and upload audio stories. They used Gizmo5's call-in number service ($12 for 3 months) to get a local number. Gizmo5 has since been acquired by Google, which provides this service free through Google Voice. Unfortunately, this new solution is missing the direct voicemail-to-email forwarding service that used to be available though Gizmo, but there are unofficial Google Voice APIs for python and java that could be used to recreate this. Google Voice isn't yet available outside the US, but service providers in many countries offer inexpensive local call-in numbers.

Voice SMS

Voice SMS is a new service introduced by mobile operators in several countries, including MTN in Uganda and Ghana. A voice message of up to 30 seconds is sent by dialing * before the recipient's number. The recipient is sent an SMS notification, and must call a free number to listen to the message. While this isn't particularly suitable for automation, systems where a human transcriber must listen to every message might benefit from voice SMS. Bubbly, made available by operators in several Asian countries, is a Voice SMS service that adds twitter-like 'follow' functionality so that users can broadcast messages to group. MobileActive.org has a tool profile of Bubbly.

Voice application scripting environments

Voice application scripting environments can be useful if you're looking to voice-enable an existing application, or if you want to develop experimental functionality. This is as close as you get to building a system from scratch without actually building from scratch, so be warned: technical expertise (and/or hours of poring over documentation) may be required!

  • VOIP Drupal aims to bring voice 'pages' to the web through the popular Drupal content management system. It's still under development, but there's a preview of the proposed architecture here.
  • Lwazi, developed by the Meraka Institute, is a telephony platform that combines an Asterisk installer with a Python scripting environment.
  • VoiceXML is the W3C standard for voice communication with an automated system. A VoiceXML ‘page, presented to the listener by a VoiceXML browser, is the voice equivalent of an HTML page presented by a web browser. If you’re interested in building your own VoiceXML application, Azaaz Otalo uses VoiceXML and had publicly accessible source code, and BeVocal Cafe offers a free hosted app environment, enterprise VoiceXML hosting and extensive developer resources. You could also look at a tool like VoiceGlue, a VoiceXML interpreter that works with Asterisk.

Conclusion

While voice systems might initially be difficult to come to terms with, acceptability, cost and accessibility are strong arguments for voice as a medium in mobiles for social change projects. MobileActive.org’s cases page features a growing number of innovative voice projects. The tools and systems featured in this article provide a way to match the level of technical skill required to set the system up with the intricacy of the functionality required. Mobile IVR systems might still not be for everyone, but with a little experimentation (and perhaps a little help) they can be a great way to talk and listen to your audience.


Thanks, hope it's useful

Thanks, hope it's useful :-)

As far as allowing a SIM card to be used for receiving calls, the first thing you'll need is hardware. FreedomFone supports two devices (Mobigator and VoiceBlue lite) and provides good configuration instructions.

Other asterik-based ISO distributions (trixbox, FreePBX, probably others) can also be configured to support these and similar devices through GSMOpen, formerly known as Celliax. There are also other hardware options that can provide a GSM gateway, and generally the manufacturer will advertise them as askerisk-compatible, but I haven't found anything as cheap as the mobigator. In general, I'd be wary of this second route unless you really know what you're doing, or are ok with extensive trial-and-error configuring, or can pay someone to do it for you.

A thrid option is to talk to mobile operators about providing a call-in line, and host your system either on their platform or at a third party.

Let us know how it goes!

melissa

GSM functionality?

Hi  Melissa - this is a timely article to post.  Thanks for the good work!

Can you please clarify which of the IVR solutions you've listed support GSM calls?  In other words, allow cellphone sim cards to be used for receiving calls to the system.

Thanks,
bART

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd><p><br> <b><i><blockquote>
  • Lines and paragraphs break automatically.

More information about formatting options