Voice Applications Management
In Cloudonix, a voice application is the core element that provides user interactions through a voice call. You can think of a voice application
as a single series of functions (or operations) that are performed in a synchronous manner. For example, a voice application may answer the inbound
voice calls (from a trunk or subscriber), then playback a pre-recorded message, followed by a call forward to a new destination. While a voice application
is a relatively simplistic element, the combination between multiple voice applications and the REST API creates an experience called a Call Flow
.
A Basic Experience Call Flow
A Call Flow
may include multiple voice applications, that transfer the user between them, in order to achieve a certain interaction. For example,
imagine the following scenario:
- Step #1: Answer the inbound voice calls (from a trunk or subscriber)
- Step #2: Playback a message and retrieve an ID from the caller
- Step #3: Obtain relevant data based on the caller input
- Step #4: Playback a generated message using the retrieved data from step #3
- Step #5: Goto back to step #1
In the above case, we'll have 2 distinct voice applications. Steps #1-#3 will be the first voice application, steps #4-#5 will be the second one.
Voice applications use the CXML Language to describe their functionality. Here is an example of the above-mentioned voice applications:
Voice Application #1 (name: script1)
<Response>
<Gather action="https://example.com/script2">
<Say>Please enter your shipment ID number, followed by the hash key.</Say>
</Gather>
</Response>
Voice Application #2 (name: script2)
<Response>
<Say>
The shipment ID number [previously entered digit string]
status is current [shipment status]
</Say>
<Redirect>https://example.com/script1</Redirect>
</Response>
Of course, the above is very simplistic - but it illustrates how voice applications can interact into a single experience.
Voice Application Resources
Cloudonix provides three different voice application resources. While a customer has full control over Service
and Container
application resources, Service
application resources are managed by Cloudonix and provided to all customers a basic account
boilerplate for simple call-routing functionality.
Service Applications
Following is a list of Service Applications
provided as defaults, to any provisioned Cloudonix Domain
.
Application Name | Description | Toggleable |
---|---|---|
call-routing | This application provides a basic routing capability for voice-calls, based on their destination and the relevant Domain properties. | |
blackhole | This application is a DEAD END application the will return an error signal to the caller. |
Remote Applications
Remote Applications
are voice applications that are hosted on a customer provided server (or remote NoCode platform, such as Make.com).
These applications process a single HTTP POST
request that Cloudonix will issue to these, in a predefined format (Voice Application Request) and
answer with a CXML Document.
Container Applications
Container Applications
are very similar to Remote Applications
, however, these are hosted on the Cloudonix platform, removing the requirement for a customer server.
Container Applications
may be developed using various run times, as defined by the Container Application Data Model.
Voice Applications Management View
Logon to the Cloudonix cockpit and select (or create) a domain from the domains list. Once selected, click the Voice Applications
(

Creating a New Voice Application
Step 1: Declare your voice application to Cloudonix
Click the purple plus button at the top left side of the view:

The following dialog box will appear:

The default is to create a Remote Application Resource
as detailed above. For the time being, let's focus on that - we'll discuss Container Applications
in a different section.
The following properties are mandatory in order to add your new voice application:
Property | Description | Default Value |
---|---|---|
Application Name | A string representing your voice application to be created. | None |
Application Resource Type | Indicates the voice application type. This may be Remote Application , Service Application or Container Application . | Remote Application Resource |
Application URL | A remote URL serving the voice application. | None |
Application Runtime | What type of remote application this is. Currently, only CXML is supported. | CXML |
HTTP Method | What HTTP method should be used to activate the remote application, POST or GET . | POST |
Once your Voice Application
properties are set, click the Create
button to have the platform save your setup. The Voice Applications
view will change as the following example:

Step 2: Assign a DNID to your voice application
A DNID
(a number that is dialled by either a subscriber or received from an inbound trunk) is the means by which a Voice Application
is selected to be executed.
For example, let us assume that we'll assign the DNID
number 12127773456
to the previously created Voice Application
- thus, when the DNID
is intercepted,
by Cloudonix - it will activate the associated Voice Application
. To manage your Voice Application
assigned DNID
numbers, click the Voice Applications Settings
icon,
the following view will appear in the cockpit:

Click the purple plus (+) button to enter the DNID view. A similar dialog will appear on your screen:

A DNID
may be defined using 4 different mechanisms:
DNID Match Type | Description |
---|---|
Prefix Match | A prefix match is based upon the first digits or characters of the DNID entered. |
Glob Wildcard | A wildcard expressions uses the * and ? characters to designate locations in the DNID where various characters may appear. |
Asterisk Expression | An Asterisk expression is based upon the Asterisk Dialplan language. |
Regular Expression | A regular expression, as explained here. |
Once you've defined your DNID, you will be returned to the voice application view, that will look similar to the below:

Now, your voice application is associated with the DNID
number 12127773456
. If a voice call is intercepted, dialled to that number,
it will activate the voiceApplicationDemo
we previously created.