Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

<?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\}\&amp;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\&amp;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\}\&amp;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
xml


<?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>

...