This is the choiceview-webapi-twilio-demo repository for a demo showing how to use the ChoiceView(tm) REST API with the Twilio API to create a True Visual IVR(tm) on the Twilio platform. The ChoiceView REST API is a REST-based service that enables visual capabilities to be easily added to new and existing IVR systems. A ChoiceView-equipped Twilio IVR provides visual menus and visual responses to callers through ChoiceView and ChoiceView-enabled mobile apps and is known as a ChoiceView True Visual IVR(tm). If live assistance is needed, the IVR can transfer the call to a contact center agent with payload delivery and continued visual sharing.
ChoiceView is a Communications-as-a-Service (CAAS) platform consisting of a protocol, switching mechanism and corresponding software applications to allow smartphone users to receive and send visual information and data during an ordinary phone call. In essence, ChoiceView joins a voice call with an associated data connection to allow a caller to converse with another party while that party shares relevant visual information in real time.
The goal of ChoiceView is to easily add enhanced voice/data capabilities to the huge installed based of telephony switches, IVRs, mobile devices and other network endpoints. The ChoiceView True Visual IVR for Twilio starts with a simple phone call to a business from any phone, including a smartphone or tablet. Then, ChoiceView gives callers the ability to navigate and interact with visual content and voice via the ChoiceView app on their smart mobile device. It's a smartphone-accessible IVR. If live assistance is needed, the call is seamlessly transferred to a contact center agent with continued visual sharing. See the ChoiceView True Visual IVR in action and learn more at ChoiceView.com.
This repository contains source code for a ChoiceView True Visual IVR implementation on the Twilio platform. On the Twilio server you need to configure the "Voice Request URL" to point to your web site and make sure that your web site is enabled to allow Post requests.
The application consists of two parts: a c# dll which interfaces with the ChoiceView REST API and a Webmatrix project consisting of xml and cshtml files which interface with the Twilio API.
The demo begins with the start.xml file, which plays the ChoiceView signature prompt and then redirects to launchCV.cshtml. This file calls the cvWorkThread in the CVClassLib dll (see cvWorkThread.cs) to notify the ChoiceView Server of the incoming session. It then redirects to Start2.xml to play the initial prompt to the caller. Control will stay in that module until the caller activates the ChoiceView app on their mobile device. If the caller does not activate the ChoiceView app, there is a series of xml files to control a voice-only flow for the caller. If the caller activates ChoiceView, the ChoiceView Server will respond to the incoming session notification, which will cause the thread to redirect the Twilio app to the ChoiceView main menu. At this point, all of the Twilio voice prompts will be controlled by notifications sent from the ChoiceView Server to the stateChangeURI and newmessageURI values passed when the session was established. In this demo, the URIs point to new_message.cshtml and state_change.cshtml. These two files pass the necessary information to a work thread in the dll to parse the messages and control the flow based upon the caller's choices on their mobile device. The response to a menu button selection is that visual information is sent to the ChoiceView Server and relayed to the mobile device while a corresponding voice prompt is sent to the Twilio Server thus keeping the two servers in sync.
Building the Application
The Webmatrix portion does not need to be built. The c# dll should build "as-is" with Microsoft Visual Studio. However, you will need an account and password in order to actually use the demo.
Running the Application
To use the ChoiceView Twilio demo application, you must have a smart mobile device with the ChoiceView app installed. The phone number used in the app should be the phone number of the mobile phone or the phone number of the associated phone that will be used to place the call. The app must be configured to use the ChoiceView development server. On iOS devices, select Settings, then Advanced, then change the server field to cvnet2.radishsystems.com. On Android devices, select the menu button, then Settings, then scroll down to the server field and change it to cvnet2.radishsystems.com.
Then call the phone number associated with the ChoiceView Twilio demo. You will be prompted to press the "Start" button in the ChoiceView app. You will see a status of "ChoiceView Agent Connected" and the main menu will be presented. From here you can tap a menu selection as well as interact with the voice prompts.
If you want more information on ChoiceView, or want access to the ChoiceView REST API, contact us.