The Euphoria API is an XML based Application Programming Interface (API) that allows a Tenant (client) to securely perform a variety of functions on their own virtual PBX.

 

In order for Tenants to better integrate with the Euphoria Network some of the TMS (Telephone Management System) functionality have been made public via the Euphoria API such as real-time and historical data, as well as the ability to initiate telephone calls directly from the API or download call recordings.


How does the API work?


Please watch this video before proceeding.

 

The API validates each and every request by a combination of a Tenant Name and Authentication Key.

 

A XML string should be submitted to the Euphoria API via a HTTPS Web Request and should always contain the afore mentioned Tenant Name and Authentication Key for verification as well as the desired function or “ActionName” you wish to perform. The API will then process the request and return a XML response with the desired information or execution status.

 

The API is not the same as the Asterisk AMI – a client will never have access to the Asterisk AMI because a PBX is multi-tenant system and providing AMI access would compromise security for all Tenants. The API provides individual client access to "AMI-like" functionality in a controlled fashion.

 

There are currently two (2) ways of connecting to the API for external development:

1. Directly via XML calls to the API which will be explained further.

2. Through the Euphoria API .DLL which is downloadable on TMS.

 

Option 1. Allows for more granular control and error handling but requires a lot more experience in XML and Web Requests.

Option 2. The Euphoria API.DLL is a fully managed code DLL (using .NET 2.0, 32bit), that can be included just about any Visual Studio Project. The code is compatible with ASP .NET and contains both synchronous and asynchronous methods for most of the API calls. In essence the API.DLL (Option 2) contains most of the API Requests and handles the XML Request for you.


What are the kinds of things that the API can do?


The API calls can be broken down into the following categories:

 

Account and Information

These calls are generally used to get account, payment, and status information.


SIP and Extension Information

These calls will allow you get get overall or details information about that actual SIP extension (the phone on your desk) like, device status, IP address, and in-depth SIP details


Real-time Calls

These calls are allow you to interact with the active calls on you account. If inbound, it would need to be bridged to an extension form your account in order to appear for you calls. These calls cannot be used to handle inbound call flow, and although a call can be transferred (routed), it will not be visible to you unless its in a queue or already bridged.


Call Queues

These calls are for full control of queue activity, member participation and management. The queued calls are visible, queue statistics, and member/agent statistics are also available. With these calls, you can, for example: pause a member, add a member into the queue, and remove a member from a queue.


Training & Management

These calls are for management of agents. A manager could spy on a call, or even whisper to the agent, or even barge into the call.


Call Recordings

These calls are for listing and retrieving your call recordings.


In &Out bound Calls

These calls are for listing and retrieving your trunk (outbound and inbound) calls


Call Detail Records

These calls are for listing and retrieving your extension-based activity.


API XML structure


The structure and format of the XML string that is submitted is documented here:
API Documentation

however you may find it easier to make use of the EuphoriaAPI.dll that can be downloaded here:

EuphoriaAPI.dll (32bit)

EuphoriaAPI.dll (64bit)