...
You can use either HTTPS or HTTP when issuing the curl command from a non-trusted host.
Since version 4.6 you should use the redirector in sipxconfig as using port 6666 seems deprecated. The REST interface can be reached (using digest authentication) on http(s)://<host>/sipxconfig/rest/my/redirect/callcontroller etc.
The URI is as documented below:
URI | URL Pararameters (Optional) | Methods | Formats |
---|---|---|---|
callcontroller/{callingUser}/{calledUser} | sipMethod=[REFER|INVITE] the default is REFER | POST | Initiates a call from the callingUser to the calledUser |
callcontroller/{callingUser}/{calledUser} | All URL parameters are ignored. Note that you an only get the current call state of you have previously initiated the call from callingUser to calledUser | GET | Get the current call state for any ongoing call between callingUser and calledUser |
Examples
Using curl, you would initiate a call from callingUser to calledUser from a remote host as follows:
Code Block |
---|
curl -k -X POST -u {callingUser}:{pin} https://<host>:6666/callcontroller/{callingUser}/{calledUser}?timeout=<seconds>
|
Or as an agent (third party)
Code Block |
---|
curl -k -X POST -u {agent}:{agentPin} https://<host>:6666/callcontroller/<callingUser>/<calleedUser>?agent=<agentName>
|
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
|
...
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:123 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:123 -X GET https://sipxtest.sipxtest.net:6666/callcontroller/user1/user2?agent=user3
|
...
If the transfer is invoked using REFER, the calling party records the NOTIFY bodies and reports it (uninterpreted) when the user issues an HTTP GET to fetch the call status. This is reported to the caller when a GET is performed as shown below:
Code Block | ||||
---|---|---|---|---|
| ||||
<?xml version="1.0" encoding="UTF-8"?>
<status-lines xmlns="http://www.sipfoundry.org/sipX/schema/xml/call-status-00-00 ">
<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>
<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>
<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>
<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>
|