User Application Server (UAS)

Version: 1.1.144.

Created: March 01, 2012.

Visit the Aculab Cloud homepage where a quickstart guide will help you to get started quickly.

Introduction

The User Application Server (UAS) is designed to work with the Aculab Cloud. The Aculab Cloud provides cloud-based telephony media processing, and the UAS runs voice applications developed using high-level languages such as Python and C#. These applications run within the UAS in response to specific instructions on the Aculab Cloud.

The applications are developed by the user using an API which is described in The call channel API section below.

The UAS consists of three parts - two applications and an API module. The API module is called prosody; the applications are called The UAS and The UAS Management Console.

  1. The UAS is an application that will launch user applications and record statistics.
  2. The UAS Management Console communicates with the UAS to provide a management console via your web browser.
  3. prosody is a python module that provides the API to which applications are written.

The UAS and The UAS Management Console are run as a Windows service or as a Linux daemon.

The UAS package is downloaded as a zip (Windows or Linux) or an exe (Windows) and should be extracted/installed to the location where it is required. To get started, it is recommended that you follow the online quickstart guide which is available on the Cloud Web Portal after you have logged in.

Below is an illustration of the Aculab Cloud system.

_images/CloudOverview.gif

The UAS can be configured and monitored remotely via the UAS Managament Console.

Users create their own accounts on the Aculab Cloud via the Cloud Web Portal (CWP). This allows them to configure how individual applications are invoked and to manage their media files on the cloud.

A Web Services API provides a programmatic means of handling media files and initiating outgoing calls.

Architecture

Python UAS applications use the API provided by the prosody API. This provides call handling, media processing, file handling and diagnostic facilities. Other Python applications may use the Web Services APIs to invoke outbound applications and manage media files.

_images/Architecture.jpg

The Python UAS receives a request from the Aculab Cloud instructing it to run a selected user application that is currently loaded in the UAS. User applications typically handle a primary call, either inbound or outbound, and may make other secondary outbound calls. A call may be connected or transferred to another call.

A UAS application is invoked by the Aculab Cloud in response to either an incoming call to a specific address or to a request to invoke an application that makes an outbound call.

The call channel API

The following descriptions form the call channel API. These are the functions that enable the user to implement a telephony application that will be run by the UAS, when prompted to do so by the Aculab Cloud. The call channel is passed to the application’s main function. The call channel object itself is created and destroyed by the UAS.

Almost every API call will send a message to the Aculab Cloud and wait for a response before returning. To prevent an infinite wait, in the unlikely event of the response not being received, most API calls implement a timeout for the round-trip delay. Functions that can time-out will mention this in their documentation. Some functions take a timeout as a parameter, this has a different purpose and is not to be confused with the timeout mentioned above.

The file manager API

Index