Phone Bar API

The xCALLY phone bar provides CTI capabilities to call external application on one hand and some cool API to allow your applications to control the phone bar and perform several operations.

API are easy to be called via http requests.
The API answers are available via http JSON standard requests or XML, using the port 9888.

xCALLY phone bar API list v.2:

xcally asterisk call api

Perform a Call (originate):
http://localhost:9888/xcally/svc/originate/phonenumber
http://localhost:9888/xcally/svc/originate/xml/phonenumber

xcally asterisk answer api

Answer a Call (answer):
http://localhost:9888/xcally/svc/answer
http://localhost:9888/xcally/svc/answer/xml

xcally asterisk hanup api

Hang-up a Call (hangup):
http://localhost:9888/xcally/svc/hangup/phonenumber
http://localhost:9888/xcally/svc/hangup/xml/phonenumber

xcally asterisk music on hold

MOH (holding):
http://localhost:9888/xcally/svc/holding/phonenumber
http://localhost:9888/xcally/svc/holding/xml/phonenumber
Place on hold an active call or move on to the Pause status an agent not on a call

xcally active asterisk callsxcally active asterisk calls

Show the active calls (channels):
http://localhost:9888/xcally/svc/channels
http://localhost:9888/xcally/svc/channels/xml

xcally active asterisk calls

Show the single active channel (channel)
http://localhost:9888/xcally/svc/channel/phonenumber
http://localhost:9888/xcally/svc/channel/xml/phonenumber

xcally asterisk recent calls

Show the Recent calls (recents):
http://localhost:9888/xcally/svc/recents
http://localhost:9888/xcally/svc/recents/xml

 

Show the Queues:
http://localhost:9888/xcally/svc/queues
http://localhost:9888/xcally/svc/queues/xml

 

Show the Peer Information:
http://localhost:9888/xcally/svc/peer
http://localhost:9888/xcally/svc/peer/xml

xcally asterisk blind transfer

Blind Transfer (transfer)
http://localhost:9888/xcally/svc/transfer/phonenumber
http://localhost:9888/xcally/svc/transfer/xml/phonenumber

xcally asterisk attended transfer

Attended Transfer (atxfer)
http://localhost:9888/xcally/svc/atxfer/phonenumber
http://localhost:9888/xcally/svc/atxfer/xml/phonenumber

xcally asterisk conference

Conference (conference):
http://localhost:9888/xcally/svc/conference/phonenumber*
http://localhost:9888/xcally/svc/conference/xml/phonenumber*

*phonenumber = call on hold

The conference API usage steps are as per following:
– Answer the call A (answer/A API)
– Holding the call A (holding/A API)
– Call the B extension (originate/B API)
– Conference with A (conference/A)
– (optional) Hangup/A and Hangup/B at the end of the conference

Configuration reload (reload):
http://localhost:9888/xcally/svc/reload
http://localhost:9888/xcally/svc/reload/xml

JSON example:

Http Request:
http://localhost:9888/xcally/svc/channels

JSON answer:
{“method”:”channels”,”response”:”true”,”rows”:[{“extension”:”600″,”queue”:””,”calldata”:””,”channel”:””,”event”:””, “uniqueid”:””,”status”:”ACTIVE”,”duration”:6,”codec”:”PCMU”}]}

 

XML example:

Http Request:
http://localhost:9888/xcally/svc/channels/xml

XML answer:

<root xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=”http://www.w3.org/2001/XMLSchema”>
<method>channels</method>
<response>true</response>
<row>
<extension>600</extension>
<queue/>
<calldata/>
<channel/>
<evt/>
<uniqueid/>
<status>ACTIVE</status>
<duration>2</duration>
<codec>PCMU</codec>
</row>
</root>

Click to Call simple HTML example:
The following html snippet create a simple Click2Call web form, allowing you to place brower calls through the xCALLY phone bar:

<html>
<head>
<script type=”text/javascript” language=”javascript”>

function originate_call()
{

//alert(document.getElementById(“phone”).value);

var s = document.getElementById(“phone”).value;
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//document.getElementById(“myDiv”).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open(“GET”, “http://localhost:9888/xcally/svc/originate/xml/” + s, true);
xmlhttp.send();
}

</script>

<title>Application Executer</title>

</head>
<body>
<p>
Phone number
<input type=”text” id=”phone”>
<input type=”button” value=”ORIGINATE” onclick=”originate_call();”/>
</body>
</html>

xcally click to call form

Please do not hesitate to contact our passionate Team for more information to integrate your apps!