<?xml version="1.0" encoding="utf-8"?>
<html>
Description
Via callcontroller RESTFul URL, third party call control and call status query can be made to sipXecs.
...
There are two ways to initiate a call, either as calling party as below
Code Block |
---|
...
curl -k -X POST -u \{calling user name\}:\{password\} https://<host>:6666/callcontroller/\{calling user name\}/\{user to be called\}?timeout=<number of seconds> |
''Or as an agent (third party)
Code Block |
---|
curl -k -X POST -u (agent user name\}:\{agent password\} https://<host>:6666/callcontroller/<caller>/<callee>?agent=<agent user name\}\&timeout=<number of seconds> |
- Note that timeout is optional*
The following example is to initiate a call between user1 and user2 as user1 who is the calling party._
Code Block |
---|
curl -k -X POST -u user1:123 https://sipxtest.sipxtest.net:6666/callcontroller/user1/user2 |
...
|
An example to initiate a call between user1 and user2 as user3 who is a third party agent._
Code Block |
---|
curl -k -X POST -u user3:123 https://sipxtest.sipxtest.net:6666/callcontroller/user1/user2?agent=user3\&timeout=30 |
...
|
Return result
On success, HTTP 200 OK returned. no message body.
On Failure, corresponding HTTP status code returned and more plain/text details contained in the message body, for example. "not valid user pin".
...
Similar to "place a call", the query can be made either from calling party
Code Block |
---|
curl -k -u \{calling user name\}:\{password\} https://<host>:6666/callcontroller/\{calling user name\}/\{user to be called\}?timeout=<number of seconds> |
Or as an agent (third party)
Code Block |
---|
curl -k -u (agent user name\}:\{agent password\} https://<host>:6666/callcontroller/<caller>/<callee>?agent=<agent user name\}\&timeout=<number of seconds> |
- timeout is optional, by default is 30 seconds.*
Here is an example of how to query call setup progress for call between user1 and user2 as user1. _
Code Block |
---|
curl -k -u user1:\{password\} https://sipxtest.sipxtest.net:6666/callcontroller/user1/user2 |
...
|
Here is an example of how to query call setup progress for call between user1 and user2 via agent user3 from sipX trusted domain, no password required.
Code Block |
---|
...
curl -k https://sipxtest.sipxtest.net:6666/callcontroller/user1/user2?agent=user3 |
...
|
Here is an example of how to query call setup progress for call between user1 and user2 via agent user3 from sipX's non-trusted domain._
Code Block |
---|
curl -k -u user3:\{password\} -X GET https://sipxtest.sipxtest.net:6666/callcontroller/user1/user2?agent=user3 |
...
|
Return result from the query above
The result is XML based as the example below.
Code Block | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?> |
...
<status-lines xmlns="http://www.sipfoundry.org/sipX/schema/xml/call-status-00-00 |
...
Panel |
---|
<timestamp>1259114103662</timestamp>"> <status> <timestamp>1259114103662</timestamp> <call-id>7959e447b88502416ee2477f3d36a480@12.23.34.45</call-id> <method>INVITE</method> <status-line>SIP/2.0 100 Trying</status-line> </status> |
...
Panel |
---|
<status> <timestamp>1259114103667</timestamp> <call-id>7959e447b88502416ee2477f3d36a480@12.23.34.45</call-id> <method>INVITE</method> <status-line>SIP/2.0 407 Proxy Authentication Required</status-line> </status> |
...
Panel |
---|
<status> <timestamp>1259114103678</timestamp> <call-id>7959e447b88502416ee2477f3d36a480@12.23.34.45</call-id> <method>INVITE</method> <status-line>SIP/2.0 100 Trying</status-line> </status> |
...
Panel |
---|
<status> <timestamp>1259114103841</timestamp> <call-id>7959e447b88502416ee2477f3d36a480@12.23.34.45</call-id> <method>INVITE</method> <status-line>SIP/2.0 180 Ringing</status-line> </status> |
...
</status-lines> |
...
|