This page describes how you can trigger events each time an extension receives or places a phone call.

On this page:

See How We Use It


This is the Call Events Guide. It explains the Service interface and the responses of the service. The Call Events is a web service that enables developers to interact with the system every time an Extension receives, terminates or places a call.

The following events are supported by the service:

  • Dial-In is an event that occurs when a call is received by an extension;
  • Dial-Out is an event that occurs when a call is made by an extension;
  • Hangup is an event that occurs when a call the extension is involved in is terminated.

How It Works

A Call Event has the following properties:

Name Description
Event type
This is the event on which the associated script is executed.
Can be set to Dial-In, Dial-Out or Hangup.
Request method

HTTP method that is used when executing the script.
Can be set to GET or POST.

Script URL
URL address of the script that is executed when the event occurs.

And occurs as described below:

STEP 1: When a event occurs on an Extension,the system verifies if that event requires that a request is made.

STEP 2: If there is an event, the system will make a HTTP request to URL using the associated HTTP method .

The system adds extra parameters to the request depending on the method used:

  • GET – parameters are added to the query part of the request.
  • POST – parameters are added to the body of the request.

Extra Parameters

Name Occurrence Type Description




The call’s unique identifier.




The caller’s CallerID number.




The caller’s CallerID name.




The public number of the called extension (if available).




The extension that received the call. Supported format: extended extension number (e.g. yyyy*zzz).




The call status. This parameter is set to the following values, depending on the event type.

For the Dial-In and the Dial-Out event types, the parameter is set to CALLING.

For the Hangup event type, the parameter can have one of the following values:

  • ANSWER – The call is answered, the caller reached the callee; this is a successful call;
  • BUSY – A busy signal is played to the caller; the dial command reached its number, but the number is busy;
  • NOANSWER – The call is not answered; the dial command reached its number, the number rang for too long and the dial timed out;
  • CANCEL – The call is canceled; the dial command reached its number, but the caller hung up before the callee picked up;
  • CONGESTION – Congestion; this status is usually a sign that the dialed number is not recognized;
  • CHANUNAVAIL – Channel unavailable; on SIP, peer may not be registered.




The call flow:

  • IN – for the calls received by the extension;
  • OUT – for the calls made by the extension.




The extension that made the call. Supported format: extended extension number (e.g. yyyy*zzz).




The number that was dialed by the caller (can be an external number: 003258422544, the extended IVR number: 0003*001 or the short IVR number: 001.)




The call ID that is auto-generated and maintained for the entire duration of the call, no matter how many transfers are performed. This variable can be used to identify in the events the calls started using a UnifiedAPI request.

How to Add a Call Event

In order to be able to use Call Events, you must first assign it on an Extension. The system supports two methods to assign a Call Event.

Add via the Voipnow Control Panel

The system allows you to add call events using the control panel. More details can be found  here.

Add via UnifiedAPI

A Call Event can be added using the UnifiedAPI PhoneCallEvents Service.