How Could an IVR Application Serve a Mobile Application?

Event driven programming model

IVR applications built on VBVoice toolkit use an event driven programming model where application code mainly executes upon an event fired by the toolkit when it is suitable to execute that code. This model fits with telephony applications where the voice card driver informs the application of any action that happens on the telephone line, e.g. a call is offered, a DTMF is pressed or the caller hanged up the call... etc. The IVR application may execute a suitable response to the event like accepting or rejecting a call that is rining.

The same model is applied to web-based applications, including the mobile ones. When a user browses to a web page, clicks a link, submits a form on the page or enters some text in an input box on the page, an event is sent to the server, at which point the application can execute a suitable code and send back a response.

The first time a user browses to an application, VBVoice creates a session that is simulating a voice call in telephony. The session is served by actions defined in the specific application call flow control by control starting from the LineGroup identified by the application name and in most cases ending with an OnHook. Whenever the IVR application is expected to interact with the user, a page is presented in the browser awaiting their input to proceed. The following diagram shows this model in details:

The event driven model serves the data channel session by responding to each HTTP request with an HTML page after executing the suitable application and some lower level code. The HTTP requests are generated from a click of a button or from some data entry that mimic entering digits in a telephone call, while the HTML response contains the announced information by the application that mimic a voice prompt in a voice call.

Understanding the similarities between Voice channels and Data channels

VBVoice abstracted many of the telephony terms used in IVR applications to properly cover VisualConnect and Data channels functionality. The following terms are explained to help developers make the analogy and smoothe their move to use VisualConnect:

Exceptions and Differences

Due to the difference between the technology behind a web application and that behind a telephone call, we should expect some behavioural differences. This section will explain those differences.

 

 


Updated: 2019-01-23