Overview
CallAPI Events is a CallAPI service that provides ways to notify web applications about various events triggered by telephone calls. The notification is performed using REST calls. With the help of this service, a developer can define custom requests to be sent when specific events occur.
Other CallAPI services serve different scopes and developers may interact with one or more services, depending on the application they build. There are 3 other CallAPI services:
- CallAPI Control: Allows developers to initiate and manage calls in real-time, get information about past calls, manage CallAPI Events, and test the CallAPI Control access permissions.
- CallAPI Interactive: Allows third-party applications to control the call flow in the IVR using XML actions.
- CallAPI Email: This service includes methods that are accessible in the VoipNow Professional email flow.
Even though there are 4 CallAPI services at the moment, note that this might change. New services are scheduled to be added in the future.
There are currently 3 events supported by the CallAPI Events service:
- Dial-In: Triggered when a call is received by an extension.
- Dial-Out: Triggered when a call is made by an extension.
- Hangup: Triggered when the call the extension is involved in gets hung up.
Events Management
There are 2 ways to manage the CallAPI Events: either through the CallAPI Control REST interface or using the web management interface.
Events Management Via CallAPI Control Service
CallAPI Control is the CallAPI service that makes call management accessible to developers through a HTTP REST interface. The Event resource operations are:
- Add: Add a request to the CallAPI Events for a specific extension.
- Edit: Edit a specific request.
- Remove: Remove a certain request.
- ListAll: List all events related to a specific extension.
Events Managed With the Web Interface
In order to enable CallAPI Events in the VoipNow Professional web management interface, you have to go to the homepage of the extension you want to associate the events with and then comply with the following requirements:
- Click the SystemAPI & CallAPI icon available in the Tools section.
- Click the CallAPI Events tab.
Adding Request Calls to Events
In order to add request calls to events, you must go to the CallAPI Published Events for Extension {ext_no} page. The attributes you can modify are:
- Request method: The method used when making the request (this can be either GET or POST).
- Request ID: An unique ID generated for each request, useful for identifying requests when they are managed via CallAPI Control.
- URL: The request URL that is called when the event is triggered.
- Status: Requests can be enabled or disabled with the help of this functionality. A disabled request is no longer performed.
- Notes: An informative note about the request, used for reference only.
Default Request Parameters
Here is a list with the parameters that are automatically added to each request. Their main usage is to provide third-party applications with more information about events:
Name | Occurence | Type | Required | Description | |
---|---|---|---|---|---|
CallID | 1 | String | No | The call's unique identifier. | |
CallerIDNum | 1 | String | No | The caller's CallerID number. | |
CallerIDNam | 1 | String | No | The caller's CallerID name. | |
CalledDID | 1 | String | No | The public number of the called extension (if available). | |
CalledExtension | 1 | String | No | The extension that received the call. Supported format: extended extension number (eg, 12340101). | |
CallStatus | 1 | String | No | The call status. For Dial-In and Dial-Out type events, this parameter is set to CALLING, for Hangup events is set to ANSWER or UNKNOWN. | |
CallFlow | 1 | String | No | The call flow: IN - for the calls received by the extension or OUT - for the calls made by the extension. | |
CallerExtension | 1 | String | No | The extension that made the call. Supported format: extended extension number (eg, 12340101). | |
CalledNumber | 1 | String | No | The number that was dialed by the caller. It can be a public number or the extended number of an extension. |