Interactive Voice Response (IVR) systems offer a way for users to interact with existing software applications using voice and keypad input from their phones. Below is an exhaustive list of benefits that IVR systems offer.
Allow access to software systems through phones in addition to other interfaces like browsers & desktop clients
Self service systems reducing support staff
Systems that run 24⁄7
Systems that perform routing based on customer profile, context, etc.
The article will focus on how to build a flexible and extensible IVR system painlessly using Cloud-based services like Twilio.
Twilio is a Cloud communications company offering IaaS (Infrastructure as a service). Twilio provides telephone infrastructure in the cloud and exposes them as Application Programming Interface (API) using which one can build applications to send and receive phone calls and text messages. Getting started with Twilio is easy.
Signup on Twilio.com
Buy a number
Program the number by connecting it to a HTTP/HTTPS URL. This is the URL that would be invoked when the number is dialed. The URL needs to respond with an XML output, called twiml, which is Twilio’s proprietary XML language. Using twiml, developers can perform useful functions like playing a text message as speech, gathering data from callers using keypad, recording conversations, sending SMS, connecting the current call to any other phone number, etc.
Since the phone numbers can be programmed and controlled using any HTTP/HTTPS URLs, it’s easy to build interactive applications to handle incoming calls. The URLs can be static XML/twiml files or dynamic web applications that may be interacting with a database and other systems and performing any custom business logic.
In addition, Twilio also provides REST APIs to perform functions like making a call, modifying a live call, collecting call logs, creating queues, buying numbers, sending SMS, etc. There are helper libraries available in all the popular programming languages which provide a wrapper to work with the REST APIs.
From: Khurshidali Shaikh - Razorfish India Team