Create a Voice Application
In the previous section, we created a Container Application
resource. Container Applications can't do anything on their
own, they need to be attached to a Voice Application
.
As explained in the CXML Reference section, a Voice Application is just an XML document, using the CXML markup language.
CXML documents can be provided to the platform as a static remote file, a remote web-service endpoint or a Cloudonix Container Application
.
As such, a Container Application works very much like a remote endpoint - it needs to be invoked by a Voice Application.
Click the Applications
resource on the left, the following screen will appear:

Default Voice Applications
As you may notice, your Voice Applications view already has two applications provisioned. These Voice Applications are automatically assigned to your domain, and are available for your use. Both applications are enabled by default.
Voice Application: Blackhole
The Blackhole application will simply reject any call that activates it. When activated, the incoming call will be automatically disconnected, and the call will be logged and registered with a CONGESTION status.
Voice Application: Call-Routing
The Call-Routing application provides a simple "black-box" routing capability for calls that traverse a Cloudonix domain. By default, the application will route calls between all registered subscribers of a Domain. In addition, if the number dialed by the subscriber (or otherwise initiated by the REST API) is not identified as an internal resource (eg. a Subscriber or a Voice Application DNID); the call will automatically be routed to an *Outbound Voice Trunk.
Create a Voice Application
Click the purple plus button, to create your Voice Application
. Using the information below, attach
your previously created Container Application to your new Voice Application.
Title | Description | Value Example |
---|---|---|
Application Name | A unique name for your Voice Application. Can be any alphanumeric string. | myHelloWorldVoiceApplication |
Application Resource Type | One of the following Service Application Resource , Container Application Resource or Remote Application Resource . | Container Application Resource |
Container Application Resource | The Container Application to attach to this Voice Application. | myFirstContainerApplication |
Entry Block | The Container Application code block to execute first. | main |

Once you've entered all information, the following screen will appear:

Now that your Voice Application is ready, we need to attach a DNID
to it, so that we can Call the voice application
and execute it. Click the icon of your Voice Application, to open the Voice Application Connection
view. The following screen will appear:

Pay attention to the bottom part of the screen, titled DNID Numbers.
DNID Numbers
DNID stands for Dial-In Network Identity (sometimes referred to as Direct Number Inward Dialing) - which is basically a "fancy" name for a phone number. As previously explained, Cloudonix isn't limited to phone numbers; thus a DNID may also include alphanumeric characters; however, most SIP devices can't use alphanumeric characters. For sake of completeness, although incorrect, the following industry terms may refer to a DNID: DID, DNIS, or ANI. From Cloudonix's point of view, they all mean the same thing - an unique domain associated identifier that activates a Voice Application.
Assigning a DNID
Click the button to open the DNID assignment view. The following pop-up will appear:

As you may see, there are various ways to define a DNID assignment. For sake of simplicity, we'll use the number 20000 as our assigned DNID, and we'll use the Prefix match flag, to indicate the matching process. Once completed, click the OK button to save your DNID Assignment, you will be returned to the previous view; now showing the new DNID Assignment. Pay attention to the way your DNID Assignment is listed:
Click the "Back to application list" button; the following screen will appear:

Pay attention that your previously created Voice Application now has a DNID assigned to it.
