Integration¶
The integration module is a set of tools which will allow your custom software to interact with the InstantVoice IP telephony platform. Currently we offer basic agent functionality and call events.
Pieces Description¶
STOMP Message Broker¶
InstantVoice hosts a STOMP message broker which handles incoming messages from third-party applications to our platform. Using this, integrating systems will be able to perform configuration tasks such as: QueueAdd, QueueDelete and QueueModify. Retrieve realtime information like: TODO. And also feed our predictive dialing system.
IVWS¶
IVWS (InstantVoice Web Service) is a SOAP, WSDL defined, web service which processes requests made by client applications to our plaftorm. Through it, you will be able to perform the same configuration tasks provided by the STOMP interface.
IVClient¶
IVClient is a COM object which wraps our STOMP methods and handles the reception of the call events plus a tray icon.
Server Configuration¶
IVWS¶
There are two parameters to configure on the server side, both optional:
Family: instantvoice.conf
Group: ivws
Name: port
Default value: 7789
This describes the port in which your IVWS will listen on your active ACD brick.
Family: instantvoice.conf
Group: ivws
Name: log
Default value: 0
Set this parameter to 1 in order to activate logging of incoming requests by the IVWS on /var/log/ivws/current of your server.
Note
If you change any of these it is necessary to manually restart the IVWS service on your server.
STOMP¶
The configuration parameters for the STOMP back-end are:
Family: instantvoice.conf
Group: ivstomp
Name: host
Default value: localhost
This is the address where the STOMP message broker lives. By default, it will be the ACD brick on distributed installations.
Family: instantvoice.conf
Group: ivstomp
Name: port
Default value: 61613
This is the port where our message broker is listening.
Family: instantvoice.conf
Group: ivstomp
Name: username
Default value: instantvoice
This is the username used to authenticate in the message broker.
Family: instantvoice.conf
Group: ivstomp
Name: password
Default value: sT0MpM3
This is the password used to authenticate in the message broker.
Family: instantvoice.conf
Group: ivstomp
Name: log
Default value: 0
Set this parameter to 1 in order to activate logging of incoming requests by the IVWS on /var/log/ivws/current of your server.
Access Keys¶
The first parameter of every integration method is an access key, and these keys must be given permission to call the desired methods.
Note
A key is an alphanumeric string with a maximum length of 20 characters.
You can manage your keys on our web administration interface in the
Configuration
menu section, item Web Service
.
Installing IVClient¶
Note
If you plan to use the web service or stomp interface directly, you can skip directly to Integration Methods Description.
Installing¶
Assuming you already have an InstantVoice PBX up and running, all you need to do is install IVClient on each seat of your call center. In order to do this, simply double-click the setup file and go through it’s steps.
Note
The COM object is registered for you during the installation process,
you can unregister/register it in Start Menu/IVClient/
Unregister COM
and Register COM
.
Instantiating¶
IVClient’s progid is “Instantvoice.Integration”. The clsid is “{F9DD083D-1A0A-4B67-80FA-5565ECBF51C0}” but you probably don’t need this for anything. After instantiating, make sure to call the method StartTray,which will start a tray icon on your desktop. More about this later.
Some code examples:
# Python
import win32com.client
ivclient = win32com.client.Dispatch("Instantvoice.Integration")
ivclient.StartTray
' Visual Basic 6
Set ivclient = CreateObject("Instantvoice.Integration")
ivclient.StartTray()
// Delphi 7
uses ComObj;
var ivclient : Variant;
begin
ivclient := CreateOLEObject('Instantvoice.Integration');
ivclient.StartTray;
end;
# Perl 5
use Win32::OLE;
my $ivclient = Win32::OLE->new('Instantvoice.Integration');
$ivclient->StartTray();
# Ruby
require 'win32ole'
ivclient = WIN32OLE.new('Python.Teste')
ivclient.StartTray()
Client Configuration¶
If you right click the icon and select config
, a window will open with the
following fields:
IVStomp Configuration¶
These are the main parameters for ivclient to connect to the InstantVoice platform.
Field | Description |
---|---|
IP Address | This must be the ip address of your active ACD. |
Port | If you modified the web service’s port as described in the Server Configuration, inform the same port here. |
Username | The username to be used to connect to the STOMP message broker. |
Password | The password to be used to connect to the STOMP message broker. |
Key | Here you must insert the desired key created in Access Keys . |
Debug | This will make IVClient write all error messages on the text file %ProgramFiles%\InstantVoice\IVClient\ivlog.txt . |
TotalRecorder Integration Configuration¶
In case you are using Instant TotalRecorder with InstantVoice, you will also want to configure these integration parameters.
Field | Description |
---|---|
Port | This should contain the local port where the TotalRecorder client will be listening. It should always be 5800 unless you really know what you’re doing. |
Password | This is the local client API pass, defined in the Captures tab of the TotalRecorder client configuration. |
Password Protection¶
This is an optional field which allows you to define a password to be asked before the user can access this configuration form.
Note
IVClient automaticaly reloads all configuration changes.
COM Methods Description¶
These are the methods you will be able to use through our COM interface. All methods return 0 on success. For more information, see Return Codes.
StartTray¶
This method takes no parameters and starts IVClients’s tray icon. This must be the first thing done after you instantiate the COM object on your application.
AgentLogin¶
AgentLogin(accountcode,username,interface)
This method will login the given agent on you InstantVoice platform, allowing him to make and receive calls.
Method Argument | Description |
---|---|
Accountcode | The agent’s accountcode |
Username | The agent’s useraname, which is always <accountcode>_<agentNumber>. Ex.: default_1001, instant_304512, etc. |
Interface | The telephony interface where this agent will answer his calls in the format <TECH>/<name>. Ex.: SIP/default_0001, IAX2/default_230, etc. |
Example:
AgentLogin("default","default_1001","SIP/default_0001")
AgentLogoff¶
AgentLogoff(accountcode,username)
This method will logoff the given agent from you InstantVoice platform.
Method Argument | Description |
---|---|
Accountcode | The agent’s accountcode |
Username | The agent’s useraname, which is always <accountcode>_<agentNumber>. Ex.: default_1001, instant_304512, etc. |
Example:
AgentLogoff("default","default_1001")
AgentPause¶
AgentPause(accountcode,username,reason)
This method pauses the given agent, preventing him from receiving calls.
Method Argument | Description |
---|---|
Accountcode | The agent’s accountcode |
Username | The agent’s useraname, which is always <accountcode>_<agentNumber>. Ex.: default_1001, instant_304512, etc. |
Reason | The pause number, as defined in Telephony/Agent Pauses. |
Example:
AgentPause("default","default_1001","1")
AgentUnpause¶
AgentUnpause(accountcode,username)
This method unpauses the given agent, allowing him to receive calls again.
Method Argument | Description |
---|---|
Accountcode | The agent’s accountcode |
Username | The agent’s useraname, which is always <accountcode>_<agentNumber>. Ex.: default_1001, instant_304512, etc. |
Example:
AgentUnpause("default","default_1001")
BlindTransfer¶
BlindTransfer(accountcode,username,dest_ext)
This method will redirect all calls currently taken by the agent to the desired dest_ext. This destination can be anything, a queue, another agent or even an external number.
Method Argument | Description |
---|---|
Accountcode | The agent’s accountcode |
Username | The agent’s useraname, which is always <accountcode>_<agentNumber>. Ex.: default_1001, instant_304512, etc. |
Dest_ext | The destination extension you want the calls to be redirected. |
Example:
BlindTransfer("default","default_1001","6100")
NewCall¶
NewCall(accountcode,username,dest_ext,External_id)
This method starts a new call to the desired dest_ext and returns it to the agent.
Method Argument | Description |
---|---|
Accountcode | The agent’s accountcode |
Username | The agent’s useraname, which is always <accountcode>_<agentNumber>. Ex.: default_1001, instant_304512, etc. |
Dest_ext | The destination extension you want to call. |
External_id | Your number to identify this new call |
Example:
NewCall("default","default_1001","6100","9999")
Hangup¶
Hangup(accountcode,uniqueid)
This method terminates a given call.
Method Argument | Description |
---|---|
Accountcode | The agent’s accountcode |
Uniqueid | The desired call uniqueid. You have received this on a NEWCALL event through PollEvents. |
Example:
Hangup("default","1286208779.1.30")
PollEvents¶
This method takes no parameters and will return you a string in JSON format with all events that arrived after the last method call. You should call this at least on a 10 second interval.
[{
"direction": "OUTBOUND",
"callerid": "1234",
"type": "NEWCALL",
"uniqueid": "1282779516.1.6",
"agent": "default_1001"
},{
"direction": "INBOUND",
"callerid": "2198765456",
"type": "NEWCALL",
"uniqueid": "1282781304.2.5",
"agent": "default_1001"
},{
"direction": "",
"callerid": "2198765456",
"type": "HANGUP",
"uniqueid": "1282781304.2.5",
"agent": "default_1001"
},{
...
}]
Field | Description |
---|---|
Direction | This can be either INBOUND or OUTBOUND, it indicates the call’s direction. Only for NEWCALL events. |
Callerid | This is whatever comes as callerid for inbound calls and what was dialed by the agent on outbound calls. |
Type | Indicates the type of the event. Currently we have NEWCALL, DNEWCALL, CONNECT, DCONNECT, HANGUP, LOGIN, LOGOUT, PAUSE and UNPAUSE. The description of each event can be found in Call Events section. |
Uniqueid | The system’s uniqueid for that call. It is useful to match the NEWCALL events with the corresponding HANGUP events. |
Agent | Each event is related to a single agent informed here. |
Note
You can find JSON libraries to most modern programming languages on http://www.json.org/.
StopTray¶
This method takes no parameters. It closes IVClients’s tray icon and all connections to InstantVoice server from this instance.
STOMP Interface Specifics¶
Request¶
Requests should be sent to the queue: /queue/config. After each request our
Telephony API will send a message to /topic/KEY ,where KEY is the key used in
the request, with the status of that request in the format:
[RETURN_CODE, "Description"]
.
Identifier¶
Our STOMP interface accepts an identifier as a final optional parameter. If after the 3 (event, key and arguments) parameters you pass a string, we will send this same string back so you can easily match the responses received with your requests.
Request Example:
[
"AgentLogin",
"f054bbd2f5ebab9",
{
"Accountcode": "default",
"User": "default_1001",
"Interface": "SIP/default_0001"
},
"key1234"
]
Response Example:
[0, "Successful QueueAdd", "key1234"]
Integration Methods Description¶
Note
If you are using IVClient, jump to Return Codes.
You can bypass IVClient entirely and access directly our integration methods. They use the same Return Codes.
Note
To use the SOAP interface, you might want to see the complete WSDL at http://acd_hostname:7789/?wsdl or whatever port you configured.
AgentAdd¶
Create a new agent. Availability: STOMP, WSDL.
Field | Description | Specification |
---|---|---|
accountcode | The agent’s accountcode | Any pre-created accountcode is valid |
user | The user that identifies the agent | Must be an interger and unique |
pass | The password to agent login | Optional, must be an integer |
name | The name or a little description of the agent | Optional, only for informational value |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentAdd>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:user>0001</ivws:user>
<ivws:passwd>456</ivws:passwd>
<ivws:name>Foo Agent</ivws:name>
</ivws:AgentAdd>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"AgentAdd",
"f054bbd2f5ebab9",
{
"accountcode":"default",
"user":"1000",
"pass":"1234",
"name":"Foo Agent"
}
]
AgentDelete¶
Delete an agent. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
accountcode | The agent’s accountcode |
user | The user that identifies the agent |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentDelete>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:user>0001</ivws:user>
</ivws:AgentDelete>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"AgentDelete",
"f054bbd2f5ebab9",
{
"accountcode":"default",
"user":"1000"
}
]
AgentModify¶
Modify an existing agent in the plataform. It expects the same arguments as AgentAdd with the addition of the two mandatory arguments described below. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
original_accountcode | The original accountcode this queue was before the requested changes were made |
original_user | The original user this agent was before the requested changes were made |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentModify>
<ivws:key>1234</ivws:key>
<ivws:original_accountcode>default</ivws:original_accountcode>
<ivws:original_user>0001</ivws:original_user>
<ivws:passwd>9876</ivws:passwd>
</ivws:AgentModify>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"AgentModify",
"f054bbd2f5ebab9",
{
"original_accountcode":"default",
"original_user":"1000",
"pass":"1234"
}
]
AgentList¶
Lists all agents from a given accountcode. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
accountcode | The desired accountcode |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentList>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
</ivws:AgentList>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"AgentList",
"f054bbd2f5ebab9",
{
"accountcode":"default"
}
]
Response Example:
[0,[1234,5678,6666,1111,7777]]
AgentInfo¶
Returns all information about a given agent. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
accountcode | The agent’s accountcode |
user | The agent’s user |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentInfo>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:user>0001</ivws:user>
</ivws:AgentInfo>
</soapenv:Body>
</soapenv:Envelope>
Response Example:
<SOAP-ENV:Envelope
mlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
mlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
mlns:xs="http://www.w3.org/2001/XMLSchema"
mlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
mlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
mlns="Ivws.Ivws">
<SOAP-ENV:Body>
<AgentInfoResponse>
<AgentInfoResult>
<passwd xsi:type="xs:string">456</passwd>
<accountcode xsi:type="xs:string">default</accountcode>
<agents_id xsi:type="xs:integer">22</agents_id>
<name xsi:type="xs:string">Foo Agent</name>
<user xsi:type="xs:string">0001</user>
</AgentInfoResult>
</AgentInfoResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON Example:
[
"AgentInfo",
"f054bbd2f5ebab9",
{
"accountcode":"default",
"user":"1000"
}
]
Response Example:
[
0,
{
"accountcode":"default",
"name":"1234",
"extension":"n/a",
"reasons_reason":"test",
"agentstatusts":0,
"logints":0,
"disabled":0,
"user":"default_1234",
"pass":"1234",
"interface":"n/a",
"agentstatus":"LOGOFF",
"id":2
}
]
AgentLineAdd¶
Create a new line for an agent. Availability: STOMP, WSDL.
Field | Description | Specification |
---|---|---|
accountcode | The agent’s accountcode | Any pre-created accountcode is valid |
user | The agent’s user | A user of a existing agent |
lines | This field is a list and contains information about the lines. | The parameters of each line are described in table below |
Field | Description | Specification |
---|---|---|
linenumber | The number of the line. It’s identifies a line of an agent | Possible values are integers. This number must be unique per agent. Default is 1. |
inbound | Optional. Enable or Disable line to receive calls. | Possible values are 1 for enabled or 0 for disabled. Default is 1. |
outbound | Optional. Enable or Disable line to place calls. | Possible values are 1 for enabled or 0 for disabled. Default is 1. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentLineAdd>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:user>0001</ivws:user>
<ivws:lines>
<line1>
<linenumber>1</linenumber>
<inbound>0</inbound>
<outbound>1</outbound>
</line1>
<line2>
<linenumber>2</linenumber>
<inbound>0</inbound>
<outbound>1</outbound>
</line2>
</ivws:lines>
</ivws:AgentLineAdd>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"AgentLineAdd",
"1234",
{
"accountcode":"default",
"user":"0001",
"lines":
[
{
"linenumber":"1",
"inbound":"0",
"outbound":"1"
},
{
"linenumber":"2",
"inbound":"0",
"outbound":"1"
}
]
}
]
AgentLineDelete¶
Delete line from determined agent. Availability: STOMP, WSDL.
An agent must have at least one line configured to make and receive calls. For this reason, it is not possible to remove an agent line if it is the agent’s only one. If you want to modify this particular line, use the AgentLineModify method.
Method Argument | Description |
---|---|
accountcode | The agent’s accountcode |
user | The agent’s user |
linenumber | The number of agent line |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentLineDelete>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:user>0001</ivws:user>
<ivws:linenumber>2</ivws:linenumber>
</ivws:AgentLineDelete>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"AgentLineDelete",
"f054bbd2f5ebab9",
{
"accountcode":"default",
"user":"0001",
"linenumber":"2"
}
]
AgentLineModify¶
Modify line of an agent. There are three mandatory fields, that’s identify the agent and the line. It’s possible enable or disable the line to receive or place calls with the parameters presented below. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
original_accountcode | The original accountcode this agent was before the requested changes were made |
original_user | The original user of the target agent. |
original_linenumber | The original linenumber that identifies the line of one agent |
inbound | EnableDisable line to receive calls |
outbound | EnableDisable line to place calls |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentLineModify>
<ivws:key>1234</ivws:key>
<ivws:original_accountcode>default</ivws:original_accountcode>
<ivws:original_user>0001</ivws:original_user>
<ivws:original_linenumber>1</ivws:original_linenumber>
<ivws:inbound>1</ivws:inbound>
<ivws:outbound>1</ivws:outbound>
</ivws:AgentLineModify>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"AgentLineModify",
"1234",
{
"original_accountcode":"default",
"original_user":"0001",
"original_linenumber":"1",
"inbound":"1",
"outbound":"0"
}
]
AgentLineList¶
Lists all lines from a given agent. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
accountcode | The desired accountcode |
user | The agent’s user |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentLineList>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:user>0001</ivws:user>
</ivws:AgentLineList>
</soapenv:Body>
</soapenv:Envelope>
Response Example:
<SOAP-ENV:Envelope
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns="Ivws.Ivws">
<SOAP-ENV:Body>
<AgentLineListResponse>
<AgentLineListResult type="tns:AgentLinesArray">
<AgentLines>
<accountcode xsi:type="xs:string">default</accountcode>
<outbound xsi:type="xs:integer">1</outbound>
<inbound xsi:type="xs:integer">1</inbound>
<linestatus xsi:type="xs:string">IDLE</linestatus>
<linenumber xsi:type="xs:integer">1</linenumber>
<linestatusts xs:nil="1"/>
</AgentLines>
</AgentLineListResult>
</AgentLineListResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON Example:
[
"AgentLineList",
"1234",
{
"accountcode":"default",
"user":"0001"
}
]
Response Example:
[
0,
[
{
"id":13,
"queues_id":0,
"outbound":1,
"inbound":1,
"linestatus":"IDLE",
"uniqueid":"",
"linenumber":1,
"linestatusts":0
},
{
"id":8,
"queues_id":0,
"outbound":1,
"inbound":1,
"linestatus":"IDLE",
"uniqueid":"",
"linenumber":2,
"linestatusts":0
}
]
]
AgentQueueAdd¶
Includes an agent as member of a queue. Availability: STOMP, WSDL.
Field | Description | Specification |
---|---|---|
accountcode | The agent/queue accountcode | The accountcode where are the agent and queue |
user | The agent’s user | A user number of any existing agent |
queues | This field is a list and contais information about queues that this agent will be member | The parameters of each queue are described below |
Field | Description | Specification |
---|---|---|
name | The queue’s name | The name number of any existing queue. |
priority | The priority of the agent to receive calls in this queue | Must be a integer. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentQueueAdd>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:user>0001</ivws:user>
<ivws:queues>
<queue1>
<name>1</name>
<priority>1</priority>
</queue1>
<queue2>
<name>5</name>
<priority>0</priority>
</queue2>
</ivws:queues>
</ivws:AgentQueueAdd>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"AgentQueueAdd",
"1234",
{
"accountcode":"default",
"user":"0001"
"queues":
[
{
"name":"1",
"priority":"0"
}
]
}
]
AgentQueueDelete¶
Remove an agent from a queue. Availability: STOMP, WSDL.
An agent must be member at least of one queue. For this reason, it is not possible to remove an agent from a queue if it is the only one that the agent is a member of. If you want to modify this particular queue, use the AgentQueueModify method.
Method Argument | Description |
---|---|
accountcode | The accountcode where are the agent and queue |
user | The agent’s user |
name | The queue’s name |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentQueueDelete>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:user>0001</ivws:user>
<ivws:name>1</ivws:name>
</ivws:AgentQueueDelete>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"AgentQueueDelete",
"1234",
{
"accountcode":"default",
"user":"0001",
"name":"1"
}
]
AgentQueueModify¶
Allow modify the priority of the agent in a queue. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
original_accountcode | The original accountcode this agent was before the requested changes were made |
original_user | The original user of the target agent. |
original_name | The original name of the queue. |
priority | The new priority of the agent in this queue |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentQueueModify>
<ivws:key>1234</ivws:key>
<ivws:original_accountcode>default</ivws:original_accountcode>
<ivws:original_user>0001</ivws:original_user>
<ivws:original_name>1</ivws:original_name>
<ivws:priority>9</ivws:priority>
</ivws:AgentQueueModify>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"AgentQueueModify",
"1234",
{
"original_accountcode":"default",
"original_user":"0001",
"original_name":"1",
"priority":"10"
}
]
AgentQueueList¶
List queues and priority from a given agent. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
accountcode | The accountcode where are the agent and queue. |
user | The agent’s user. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentQueueList>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:user>0001</ivws:user>
</ivws:AgentQueueList>
</soapenv:Body>
</soapenv:Envelope>
Response Example:
<SOAP-ENV:Envelope
mlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
mlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
mlns:xs="http://www.w3.org/2001/XMLSchema"
mlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
mlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
mlns="Ivws.Ivws">
<SOAP-ENV:Body>
<AgentQueueListResponse>
<AgentQueueListResult type="tns:AgentQueuesArray">
<AgentQueues>
<priority xsi:type="xs:integer">0</priority>
<name xsi:type="xs:string">1</name>
</AgentQueues>
<AgentQueues>
<priority xsi:type="xs:integer">0</priority>
<name xsi:type="xs:string">2</name>
</AgentQueues>
</AgentQueueListResult>
</AgentQueueListResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON Example:
[
"AgentQueueList",
"1234",
{
"accountcode":"default",
"user":"0001"
}
]
Response Example:
[
0,
[
{
"name":1,
"priority":0
},
{
"name":2,
"priority":0
}
]
]
AgentQueueMembers¶
List all members from a given queue. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
accountcode | The accountcode where are the agent and queue. |
name | The queue’s name. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentQueueMembers>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:name>1</ivws:name>
</ivws:AgentQueueMembers>
</soapenv:Body>
</soapenv:Envelope>
Response Example:
<SOAP-ENV:Envelope
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns="Ivws.Ivws">
<SOAP-ENV:Body>
<AgentQueueMembersResponse>
<AgentQueueMembersResult type="tns:QueueMembersArray">
<QueueMembers>
<priority xsi:type="xs:integer">0</priority>
<user xsi:type="xs:string">0001</user>
</QueueMembers>
</AgentQueueMembersResult>
</AgentQueueMembersResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON Example:
[
"AgentQueueMembers",
"1234",
{
"accountcode":"default",
"name":"1"
}
]
Response Example:
[ 0,
[
{
"priority":"0",
"user":"0001"
},
{
"priority":"0",
"user":"0002"
}
]
]
AgentAddPermission¶
This method will set an agent’s permission group, allowing make calls according by the rules of this permission group. Availability: STOMP, WSDL.
Field | Description | Specification |
---|---|---|
key | Your access key. | The key used to access the service. |
accountcode | The agent accountcode. | The accountcode where is the agent. |
user | The user that identifies an agent. | The user of an existing agent. |
location | The permission group used to control outbound calls. | A permission group that exists on the system. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentAddPermission>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:user>0001</ivws:user>
<ivws:location>123</ivws:location>
</ivws:AgentAddPermission>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"AgentAddPermission",
"1234",
{
"accountcode": "default",
"user": "0001",
"location": "123"
}
]
AgentDeletePermission¶
This method will remove an agent from a permission group. Availability: STOMP, WSDL.
Field | Description | Specification |
---|---|---|
key | Your access key. | The key used to access the service. |
accountcode | The agent accountcode. | The accountcode where is the agent. |
user | The user that identifies an agent. | The user of an existing agent. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentDeletePermission>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:user>0001</ivws:user>
</ivws:AgentDeletePermission>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"AgentDeletePermission",
"1234",
{
"accountcode": "default",
"user": "0001",
}
]
AgentModifyPermission¶
This method will modify an agent’s permission group. Availability: STOMP, WSDL.
Field | Description | Specification |
---|---|---|
key | Your access key. | The key used to access the service. |
accountcode | The agent accountcode. | The accountcode where is the agent. |
user | The user that identifies an agent. | The user of an existing agent. |
location | The permission group used to control outbound calls. | A permission group that exists on the system. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentModifyPermission>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:user>0001</ivws:user>
<ivws:location>123</ivws:location>
</ivws:AgentModifyPermission>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"AgentModifyPermission",
"1234",
{
"accountcode": "default",
"user": "0001",
"location": "123"
}
]
AgentInfoPermission¶
This method returns the permission group of a given agent. Availability: STOMP, WSDL.
Field | Description | Specification |
---|---|---|
key | Your access key. | The key used to access the service. |
accountcode | The agent accountcode. | The accountcode where is the agent. |
user | The user that identifies an agent. | The user of an existing agent. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentInfoPermission>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:user>0001</ivws:user>
</ivws:AgentInfoPermission>
</soapenv:Body>
</soapenv:Envelope>
Response Example:
<SOAP-ENV:Envelope
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns="Ivws.Ivws">
<SOAP-ENV:Body>
<AgentInfoPermissionResponse>
<AgentInfoPermissionResult>
<code xsi:type="xs:integer">0</code>
<location xsi:type="xs:string">123</location>
</AgentInfoPermissionResult>
</AgentInfoPermissionResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON Example:
[
"AgentInfoPermission",
"1234",
{
"accountcode": "default",
"user": "0001",
}
]
Response Example:
[0, "123"]
AgentLogin¶
This method will login the given agent on you InstantVoice platform, allowing him to make and receive calls. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
Key | Your web service access key. |
Accountcode | The agent’s accountcode |
User | The agent’s username, which is always <accountcode>_<agentNumber>. Ex.: default_1001, instant_304512, etc. |
Interface | The telephony interface where this agent will answer his calls in the format <TECH>/<name>. Ex.: SIP/default_0001, IAX2/default_230, etc. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentLogin>
<ivws:key>f054bbd2f5ebab9</ivws:key>
<ivws:Accountcode>default</ivws:Accountcode>
<ivws:User>default_1001</ivws:User>
<ivws:Interface>SIP/default_0001</ivws:Interface>
</ivws:AgentLogin>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"AgentLogin",
"f054bbd2f5ebab9",
{
"Accountcode": "default",
"User": "default_1001",
"Interface": "SIP/default_0001",
}
]
AgentLogoff¶
This method will logoff the given agent from you InstantVoice platform. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
key | Your web service access key. |
Accountcode | The agent’s accountcode |
User | The agent’s useraname, which is always <accountcode>_<agentNumber>. Ex.: default_1001, instant_304512, etc. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentLogoff>
<ivws:key>f054bbd2f5ebab9</ivws:key>
<ivws:Accountcode>default</ivws:Accountcode>
<ivws:User>default_1001</ivws:User>
</ivws:AgentLogoff>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"AgentLogoff",
"f054bbd2f5ebab9",
{
"Accountcode": "default",
"User": "default_1001",
}
]
AgentPause¶
This method pauses the given agent, preventing him from receiving calls. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
key | Your web service access key. |
Accountcode | The agent’s accountcode |
User | The agent’s useraname, which is always <accountcode>_<agentNumber>. Ex.: default_1001, instant_304512, etc. |
Reason | The pause number, as defined in Telephony/Agent Pauses. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentPause>
<ivws:key>f054bbd2f5ebab9</ivws:key>
<ivws:Accountcode>default</ivws:Accountcode>
<ivws:User>default_1001</ivws:User>
<ivws:Reason>1</ivws:Reason>
</ivws:AgentPause>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"AgentPause",
"f054bbd2f5ebab9",
{
"Accountcode": "default",
"User": "default_1001",
"Reason": "1"
}
]
AgentUnpause¶
This method unpauses the given agent, allowing him to receive calls again. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
key | Your web service access key. |
Accountcode | The agent’s accountcode |
User | The agent’s useraname, which is always <accountcode>_<agentNumber>. Ex.: default_1001, instant_304512, etc. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:AgentUnpause>
<ivws:key>f054bbd2f5ebab9</ivws:key>
<ivws:Accountcode>default</ivws:Accountcode>
<ivws:User>default_1001</ivws:User>
</ivws:AgentUnpause>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"AgentUnpause",
"f054bbd2f5ebab9",
{
"Accountcode": "default",
"User": "default_1001",
}
]
BlindTransfer¶
This method will redirect all calls currently taken by the agent to the desired dest_ext. This destination can be anything, a queue, another agent or even an external number. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
key | Your web service access key. |
Accountcode | The agent’s accountcode |
User | The agent’s useraname, which is always <accountcode>_<agentNumber>. Ex.: default_1001, instant_304512, etc. |
Exten | The destination extension you want the calls to be redirected. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:BlindTransfer>
<ivws:key>f054bbd2f5ebab9</ivws:key>
<ivws:Accountcode>default</ivws:Accountcode>
<ivws:User>default_1001</ivws:User>
<ivws:Exten>6100</ivws:Exten>
</ivws:BlindTransfer>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"BlindTransfer",
"f054bbd2f5ebab9",
{
"Accountcode": "default",
"Agent": "default_1001",
"Exten": "6100"
}
]
NewCall¶
This method starts a new call to the desired dest_ext and returns it to the agent. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
Key | Your web service access key. |
Accountcode | The agent’s accountcode |
User | The agent’s useraname, which is always <accountcode>_<agentNumber>. Ex.: default_1001, instant_304512, etc. |
Exten | The destination extension you want to call. |
External_id | Your number to identify this new call |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:NewCall>
<ivws:key>f054bbd2f5ebab9</ivws:key>
<ivws:Accountcode>default</ivws:Accountcode>
<ivws:User>default_1001</ivws:User>
<ivws:Exten>6100</ivws:Exten>
<ivws:External_id>9999</ivws:External_id>
</ivws:NewCall>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"NewCall",
"f054bbd2f5ebab9",
{
"Accountcode": "default",
"Agent": "default_1001",
"Exten": "6100",
"External_id": "9999"
}
]
SendSms¶
This method sends a cellphone sms (text message) to the Number. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
Key | Your web service access key. |
Accountcode | The Accountcode |
Number | The cellphone number to which the text will be sent |
Text | The text of the message |
SendSms(key, accountcode, number, text)
Example:
SendSms("mykey", "default", "552188283288", "Hi there!")
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:SendSms>
<ivws:key>mykey</ivws:key>
<ivws:Accountcode>default</ivws:Accountcode>
<ivws:Number>552188283288</ivws:Number>
<ivws:Text>Hi there!</ivws:Text>
</ivws:SendSms>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"SendSms",
"mykey",
{
"Accountcode": "default",
"Number": "552188283288",
"Text": "Hi there!"
}
]
NewCallBack¶
NewCallBack(key, accountcode, ruleid, mcdu, originator, language)
Example:
NewCallBack("mykey", "default","1","6100","2177277722","pt_BR")
This method appends a new call to the callback list. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
Key | Your web service access key. |
Accountcode | The agent’s accountcode |
Mcdu | the number of the mcdu that will execute the callback |
Originator | the telephone number we will actually call back |
Language | either pt_BR or en_US |
Location_id | Id From Permission group |
Queue_id | Id From Queue |
Destination email to calback failed |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:NewCallBack>
<ivws:key>mykey</ivws:key>
<ivws:Accountcode>default</ivws:Accountcode>
<ivws:Mcdu>6100</ivws:Mcdu>
<ivws:Originator>2177277722</ivws:Originator>
<ivws:Language>pt_BR</ivws:Language>
<ivws:Location_id>1</ivws:Location_id>
<ivws:Queue_id>1</ivws:Queue_id>
<ivws:Email>instant@instant.com.br</ivws:Email>
</ivws:NewCallBack>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"NewCallBack",
"f054bbd2f5ebab9",
{
"Accountcode": "default",
"Ruleid": "1",
"Mcdu": "6100",
"Originator": "2177277722",
"Language": "pt_BR",
"Location_id": "1",
"Queue_id": "1',
"Email": "instant@instant.com.br"
}
]
Hangup¶
This method terminates a given call. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
Key | Your web service access key. |
Accountcode | The agent’s accountcode |
Uniqueid | The desired call uniqueid. You have received this on a NEWCALL call events, see Receiving Call Events. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:Hangup>
<ivws:key>f054bbd2f5ebab9</ivws:key>
<ivws:Accountcode>default</ivws:Accountcode>
<ivws:Uniqueid>1286208779.1.30</ivws:Uniqueid>
</ivws:Hangup>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"NewCall",
"f054bbd2f5ebab9",
{
"Accountcode": "default",
"Uniqueid": "1286208779.1.30"
}
]
QueueAdd¶
Creates a new queue in the platform. Availability: STOMP, WSDL.
Field | Description | Specification |
---|---|---|
accountcode | The queue’s accountcode. | Any pre-created accountcode is valid. |
name | The queue’s extension. | Must be an integer and unique. |
description | The description which is only for informational value. | Optional. |
sl_answeredbefore_1 | The first interval for service level calculations. | Optional, must be an integer smaller than 300. Default is 30. |
sl_answeredbefore_2 | The second interval for service level calculations. | Optional, must be an integer smaller than 900. Default is 60. |
sl_answeredbefore_3 | The third interval for service level calculations. | Optional, must be an integer smaller than 900. Default is 60. |
joinempty | Allows callers to join the queue even when there are no agents logged to it. | Optional, should be either “yes” or “no”. Default is “yes”. |
requiresendinfo | Hangs the call if unable to send cti information to the receiving agent. | Optional, should be either “yes” or “no”. Default is “yes”. |
timeout | Defines how long a caller can wait on queue. | Optional, defaults to 0 which means it can wait forever. Must be an integer. |
dialtimeout | Defines the timeout for each dial attempt to this queue’s agents. | Optional, defaults to 10. Must be an integer and 0 it has no timeout. |
maxlen | Defines the maximum length for this queue. Any caller who tries do enter after won’t be allowed in. | Optional, defaults to 0 which means no maximun length. Must be an integer. |
wrapuptime | Defines in seconds a minimum time between calls for all this queue’s agents. | Optional, defaults to 0. Must be an integer. |
quarantinetime | Defines the amount of seconds a quarantine lasts on this queue. An agent is placed in quarantine if he doesn’t answer a call sent to him. | Optional, defaults to 0. Must be an integer. |
announce | Sets a sound file to be played to the agents before the caller is bridged to them. | Must be the name of a sound file in the table messages. messages.name |
musiconhold | Sets the music on hold to be played to the waiting callers. | Must be the name a class configured in musiconhold.conf. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:QueueAdd>
<ivws:key>f054bbd2f5ebab9</ivws:key>
<ivws:accountcode>
default
</ivws:accountcode>
<ivws:name>7015</ivws:name>
<ivws:description></ivws:description>
<ivws:sl_answeredbefore_1>56</ivws:sl_answeredbefore_1>
<ivws:sl_answeredbefore_2></ivws:sl_answeredbefore_2>
<ivws:sl_answeredbefore_3></ivws:sl_answeredbefore_3>
<ivws:joinempty></ivws:joinempty>
<ivws:requiresendinfo></ivws:requiresendinfo>
<ivws:timeout></ivws:timeout>
<ivws:dialtimeout></ivws:dialtimeout>
<ivws:maxlen></ivws:maxlen>
<ivws:wrapuptime></ivws:wrapuptime>
<ivws:quarantinetime></ivws:quarantinetime>
<ivws:announce>SynthR - Oceanus.mp3</ivws:announce>
<ivws:musiconhold>default</ivws:musiconhold>
</ivws:QueueAdd>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"QueueAdd",
"f054bbd2f5ebab9",
{
"name": 7015,
"sl_answeredbefore_1": 56,
"announce": "SynthR - Oceanus.mp3",
"accountcode": "default",
"musiconhold": "default"
}
]
QueueModify¶
Modifies an existing queue in the platform. It expects the same arguments as QueueAdd with the addition of the two mandatory arguments described below. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
original_accountcode | The original accountcode this queue was before the requested changes were made |
original_name | The original number this queue was before the requested changes were made |
XML Example:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:QueueModify>
<ivws:key>f054bbd2f5ebab9</ivws:key>
<ivws:original_accountcode>
default
</ivws:original_accountcode>
<ivws:original_name>7015</ivws:original_name>
<ivws:accountcode>
default
</ivws:accountcode>
<ivws:name>8015</ivws:name>
<ivws:description>New Description.</ivws:description>
<ivws:sl_answeredbefore_1>30</ivws:sl_answeredbefore_1>
<ivws:sl_answeredbefore_2></ivws:sl_answeredbefore_2>
<ivws:sl_answeredbefore_3></ivws:sl_answeredbefore_3>
<ivws:joinempty></ivws:joinempty>
<ivws:requiresendinfo></ivws:requiresendinfo>
<ivws:timeout></ivws:timeout>
<ivws:dialtimeout></ivws:dialtimeout>
<ivws:maxlen></ivws:maxlen>
<ivws:wrapuptime></ivws:wrapuptime>
<ivws:quarantinetime></ivws:quarantinetime>
<ivws:announce>Welcome.mp3</ivws:announce>
<ivws:musiconhold></ivws:musiconhold>
</ivws:QueueModify>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"QueueModify",
"f054bbd2f5ebab9",
{
"original_name": 7015,
"original_accountcode": "default",
"name": 8015,
"sl_answeredbefore_1": 30,
"announce": "Welcome.mp3",
"accountcode": "default"
}
]
QueueDelete¶
Deletes a queue. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
accountcode | The queue’s accountcode. |
name | The queue’s extension. |
XML Example:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:QueueDelete>
<ivws:key>1234</ivws:key>
<ivws:accountcode>
default
</ivws:accountcode>
<ivws:name>8787</ivws:name>
</ivws:QueueDelete>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"QueueDelete",
"f054bbd2f5ebab9",
{
"name": 7015,
"accountcode": "default"
}
]
QueueList¶
Lists all queues from a given accountcode. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
accountcode | The desired accountcode. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:QueueList>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
</ivws:QueueList>
</soapenv:Body>
</soapenv:Envelope>
Response Example:
<SOAP-ENV:Envelope
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns="Ivws.Ivws">
<SOAP-ENV:Body>
<QueueListResponse>
<QueueListResult type="tns:integerArray">
<integer xsi:type="xs:integer">1000</integer>
<integer xsi:type="xs:integer">1</integer>
<integer xsi:type="xs:integer">2000</integer>
<integer xsi:type="xs:integer">2341</integer>
<integer xsi:type="xs:integer">10666</integer>
</QueueListResult>
</QueueListResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON Example:
[
"QueueList",
"f054bbd2f5ebab9",
{
"accountcode": "default"
}
]
Response Example:
[0, ['1002', '1004', '0015', '7021'] ]
QueueInfo¶
Returns all information about a given queue. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
accountcode | The queue’s accountcode. |
name | The queue’s extension. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:QueueInfo>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:name>1000</ivws:name>
</ivws:QueueInfo>
</soapenv:Body>
</soapenv:Envelope>
Response Example:
<SOAP-ENV:Envelope
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns="Ivws.Ivws">
<SOAP-ENV:Body>
<QueueInfoResponse>
<QueueInfoResult>
<accountcode xsi:type="xs:string">default</accountcode>
<description xsi:type="xs:string"/>
<requisendinfo xsi:type="xs:string">no</requisendinfo>
<sl_answeredbefore_2 xsi:type="xs:integer">60</sl_answeredbefore_2>
<maxlen xsi:type="xs:integer">0</maxlen>
<joinempty xsi:type="xs:string">yes</joinempty>
<sl_answeredbefore_1 xsi:type="xs:integer">30</sl_answeredbefore_1>
<timeout xsi:type="xs:integer">0</timeout>
<sl_answeredbefore_3 xsi:type="xs:integer">90</sl_answeredbefore_3>
<announce xsi:type="xs:string"/>
<wrapuptime xsi:type="xs:integer">0</wrapuptime>
<dialtimeout xsi:type="xs:integer">9991</dialtimeout>
<quarantinetime xsi:type="xs:integer">0</quarantinetime>
<musiconhold xsi:type="xs:string">default</musiconhold>
<name xsi:type="xs:string">1000</name>
</QueueInfoResult>
</QueueInfoResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON Example:
[
"QueueList",
"f054bbd2f5ebab9",
{
"accountcode": "default"
}
]
Response Example:
[
0,
{
"agents_total": 0,
"maxwait": 0,
"sl_w2_a3": null,
"requiresendinfo": "no",
"joinempty": "yes",
"max_recordings": 0,
"sl_w3_a2": null,
"sl_w3_a3": null,
"sl_w3_a1": null,
"id": 1,
"musiconhold": "default",
"agents_idle": 0,
"agents_pending_logoff": 0,
"sl_answeredbefore_3": 90,
"agents_loggedoff": 0,
"agents_unavailable_quarantine": 0,
"announce": "",
"wrapuptime": 0,
"dialtimeout": 10,
"leavewhenempty": "no",
"agents_oncall": 0,
"description": "Technical Support Queue",
"timestamp": 0,
"agents_paused": 0,
"agents_logoff_pause": 0,
"monitorfilename": "",
"agents_pending_pause": 0,
"len": 0,
"conditionalmon": "yes",
"quarantinetime": 0,
"sl_w1_a1": null,
"sl_w1_a2": null,
"sl_w1_a3": null,
"name": "default_7012",
"agents_unavailable_wrapup": 0,
"sl_answeredbefore_2": 60,
"maxlen": 0,
"monitor_format": "wav49",
"sl_answeredbefore_1": 30,
"sl_w2_a1": null,
"timeout": 0,
"sl_w2_a2": null,
"accountcode": "default",
"agents_loggedin": 0
}
]
SipUserAdd¶
Creates a new sip user in the platform. Availability: STOMP, WSDL.
Field | Description | Specification |
---|---|---|
accountcode | The desired accountcode for this user. | Any pre-created accountcode is valid. |
name | The extension of the user. | Must be numeric and unique. |
description | A description of the user. | Optional. |
allow | The allowed voice codecs for this user in order of preference. | Optional, should be a list of codecs, separated by ;. Possible codecs are: ilbc, gsm, ulaw, alaw, g729. Defaults to ilbc;gsm;ulaw;alaw |
amaflags | Categorization for CDR records. Choices are default, omit, billing, documentation. | Optional, valid options are: default, omit, billing, documentation. Default is default |
call-limit | Number of simultaneous calls through this user. | Optional, must be an integer. Defaults to 0 (no limit). |
callerid | The desired callerid for this user. | Optional. |
callgroup | Defines call groups for calls to this device. | Optional, must be a list of integers separated by comma. Defaults to null. |
canreinvite | If the client is able to support SIP re-invites. | Optional, must be yes or no. Default is yes. |
context | The context for all calls through this user. | Optional, default is instantvoice_agent |
defaultip | Default ip address for this user. Used if host is dynamic. | Optional, must be a valid ip address. |
deny | Limits SIP traffic to and from this user to a certain IP or network. | Optional, must be a valid ip or netmask. |
disallow | Disallows the informed codecs. | Optional, should be a list of codecs, separated by ; or ‘all’. Possible codecs are: ilbc, gsm, ulaw, alaw, g729. |
dtmfmode | Sets the desired dtmf mode for this user. | Optional, possible values are inband, info or rfc2833. Defaults to rfc2833. |
fromdomain | Sets default From: domain in SIP messages when acting as a SIP ua. | Optional. |
fromuser | Specify user to put in “from” instead of the callerid. | Optional. |
fullcontact | SIP URI contact. | Optional. |
host | How to find the client - IP # or host name. If you want the phone to register itself, use the keyword dynamic instead of Host IP. | Optional, defaults to dynamic. |
Field | Description | Specification |
---|---|---|
ignoregexpire | Indicates whether to use Contact information about a peer even if the information is stale because it has reached its expiration time. | Optional, must be yes or no. Default is no. |
insecure | Specifies how to handle connections with peers. | Optional, must be invite, port or both (invite,port). |
language | Default language used by any Playback()/Background(). | Optional, must be en_US, pt_BR or es_ES. Defaults to en_US. |
mailbox | Voicemail extension (for message waiting indications). | Optional. Must be an existing mailbox. |
md5secret | MD5-Hash of “<user>:==SIP_realm==: <secret>” (can be used instead of secret). | Optional. |
musiconhold | One of the classes specified in musiconhold.conf. | Optional. If set, must be an existing music on hold class. |
nat | This variable changes the behaviour of our platform for clients behind a firewall. | Optional, must be yes or no. Default is no. |
permit | Explicitly allows SIP traffic to and from this user to a certain IP or network. | Optional, must be a valid ip or netmask. |
pickupgroup | Group that can pickup fellow workers’ calls using *8 or the Pickup() application. | Optional, must be a list of integers separated by comma. Defaults to null. |
port | Sip port of the client. | Optional, must be numeric. Default is 5060. |
progressinband | If we should generate in-band ringing always. | Optional, must be yes, no or never. Default is never. |
promiscredir | Allows support for 302 Redirects. | Optional, must be yes or no. Default is no. |
qualify | Check if client is reachable. | Optional, must be yes , no or a value in miliseconds. Default is no. |
regexten | Extension to use in registers. | Optional, must be numeric. |
regseconds | Number of seconds between SIP REGISTER. | Optional, must be numeric in seconds. Defaults to 0. |
rpid | Defines the Remote-Party-ID header for this user. | Optional. |
rtpholdtimeout | Max number of seconds of inactivity before terminating a call on hold. | Optional, must be numeric in seconds. Defaults to 0. |
secret | This user’s password. | Optional. |
Field | Description | Specification |
---|---|---|
sendrpid | If a Remote-Party-ID SIP header should be sent. | Optional, must be yes or no. Default is no. |
setvar | Channel variable to be set for all calls from this user. | Optional. The format is variable=value. |
subscribecontext | Set a specific context for SIP SUBSCRIBE requests. | Optional. |
trustrpid | If Remote-Party-ID SIP header should be trusted. | Optional, must be yes or no. Default |
type | Relationship to client. | Optional, must be user, friend or peer. Defaults to friend. |
useclientcode | If yes, then the Call Originator as stated in the CDR will be changed to whatever is specified in a X-ClientCode SIP header. | Optional, must be yes or no. |
username | If the server is accepting SIP INVITE requests from a remote SIP client, this field specifies the user name for authentication. | Optional, must be numeric. |
route | Defines if this peer is a user or another brick of the platform. | Optional, must be yes or no. Default is no. |
macaddr | If this user is tied to a hardphone, you can set it’s mac address here. | Optional, must be a valid mac address. |
location | If this user is on a permission group. | Optional, must be an existing permission group. |
XML Example:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:SipUserAdd>
<ivws:key>f054bbd2f5ebab9</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:name>1010</ivws:name>
<ivws:description></ivws:description>
<ivws:allow></ivws:allow>
<ivws:amaflags></ivws:amaflags>
<ivws:call_limit></ivws:call_limit>
<ivws:callerid></ivws:callerid>
<ivws:callgroup></ivws:callgroup>
<ivws:canreinvite></ivws:canreinvite>
<ivws:context></ivws:context>
<ivws:defaultip></ivws:defaultip>
<ivws:deny></ivws:deny>
<ivws:disallow></ivws:disallow>
<ivws:dtmfmode></ivws:dtmfmode>
<ivws:fromdomain></ivws:fromdomain>
<ivws:fromuser></ivws:fromuser>
<ivws:fullcontact></ivws:fullcontact>
<ivws:host></ivws:host>
<ivws:ignoreexpire></ivws:ignoreexpire>
<ivws:insecure></ivws:insecure>
<ivws:ipaddr></ivws:ipaddr>
<ivws:language></ivws:language>
<ivws:mailbox></ivws:mailbox>
<ivws:md5secret></ivws:md5secret>
<ivws:musiconhold>default</ivws:musiconhold>
<ivws:nat></ivws:nat>
<ivws:permit></ivws:permit>
<ivws:pickupgroup></ivws:pickupgroup>
<ivws:port></ivws:port>
<ivws:progressinband></ivws:progressinband>
<ivws:promiscredir></ivws:promiscredir>
<ivws:qualify></ivws:qualify>
<ivws:regexten></ivws:regexten>
<ivws:regseconds></ivws:regseconds>
<ivws:rpid></ivws:rpid>
<ivws:rtpholdtimeout></ivws:rtpholdtimeout>
<ivws:secret>creative-password</ivws:secret>
<ivws:sendrpid></ivws:sendrpid>
<ivws:setvar></ivws:setvar>
<ivws:subscribecontext></ivws:subscribecontext>
<ivws:trustrpid></ivws:trustrpid>
<ivws:type></ivws:type>
<ivws:useclientcode></ivws:useclientcode>
<ivws:username></ivws:username>
<ivws:route></ivws:route>
<ivws:macaddr></ivws:macaddr>
<ivws:location></ivws:location>
</ivws:SipUserAdd>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"SipUserAdd",
"f054bbd2f5ebab9",
{
"name": 1010,
"accountcode": "default",
"musiconhold": "default"
"secret": "creative-password"
"useclientcode"": "yes"
}
]
SipUserModify¶
Modifies an existing sip user in the platform. It expects the same arguments as SipUserAdd with the addition of the two mandatory arguments described below. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
original_accountcode | The original accountcode this user was before the requested changes were made |
original_name | The original number this user was before the requested changes were made |
XML Example:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:SipUserModify>
<ivws:key>f054bbd2f5ebab9</ivws:key>
<ivws:original_accountcode>default</ivws:original_accountcode>
<ivws:original_name>1010</ivws:original_name>
<ivws:accountcode>default</ivws:accountcode>
<ivws:name>1010</ivws:name>
<ivws:description></ivws:description>
<ivws:allow></ivws:allow>
<ivws:amaflags></ivws:amaflags>
<ivws:call_limit></ivws:call_limit>
<ivws:callerid></ivws:callerid>
<ivws:callgroup></ivws:callgroup>
<ivws:canreinvite></ivws:canreinvite>
<ivws:context></ivws:context>
<ivws:defaultip></ivws:defaultip>
<ivws:deny></ivws:deny>
<ivws:disallow></ivws:disallow>
<ivws:dtmfmode></ivws:dtmfmode>
<ivws:fromdomain></ivws:fromdomain>
<ivws:fromuser></ivws:fromuser>
<ivws:fullcontact></ivws:fullcontact>
<ivws:host></ivws:host>
<ivws:ignoreexpire></ivws:ignoreexpire>
<ivws:insecure></ivws:insecure>
<ivws:ipaddr></ivws:ipaddr>
<ivws:language></ivws:language>
<ivws:mailbox></ivws:mailbox>
<ivws:md5secret></ivws:md5secret>
<ivws:musiconhold>default</ivws:musiconhold>
<ivws:nat></ivws:nat>
<ivws:permit></ivws:permit>
<ivws:pickupgroup></ivws:pickupgroup>
<ivws:port></ivws:port>
<ivws:progressinband></ivws:progressinband>
<ivws:promiscredir></ivws:promiscredir>
<ivws:qualify></ivws:qualify>
<ivws:regexten></ivws:regexten>
<ivws:regseconds></ivws:regseconds>
<ivws:rpid></ivws:rpid>
<ivws:rtpholdtimeout></ivws:rtpholdtimeout>
<ivws:secret>creative-password</ivws:secret>
<ivws:sendrpid></ivws:sendrpid>
<ivws:setvar></ivws:setvar>
<ivws:subscribecontext></ivws:subscribecontext>
<ivws:trustrpid></ivws:trustrpid>
<ivws:type></ivws:type>
<ivws:useclientcode></ivws:useclientcode>
<ivws:username></ivws:username>
<ivws:route></ivws:route>
<ivws:macaddr></ivws:macaddr>
<ivws:location></ivws:location>
</ivws:SipUserModify>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"SipUserModify",
"f054bbd2f5ebab9",
{
"original_name": 1010,
"original_accountcode": "default",
"musiconhold": "default"
"secret": "creative-password"
"useclientcode"": "yes"
}
]
SipUserDelete¶
Deletes a sip user. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
accountcode | The user’s accountcode. |
name | The user’s extension. |
XML Example:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:SipUserDelete>
<ivws:key>f054bbd2f5ebab9</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:name>1010</ivws:name>
</ivws:SipUserDelete>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"SipUserDelete",
"f054bbd2f5ebab9",
{
"name": 1010,
"accountcode": "default"
}
]
SipUserList¶
Lists all sip users from a given accountcode. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
accountcode | The desired accountcode. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:SipUserList>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
</ivws:SipUserList>
</soapenv:Body>
</soapenv:Envelope>
Response Example:
<SOAP-ENV:Envelope
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns="Ivws.Ivws">
<SOAP-ENV:Body>
<SipUserListResponse>
<SipUserListResult type="tns:integerArray">
<integer xsi:type="xs:integer">('instantvoice',)</integer>
<integer xsi:type="xs:integer">('0001',)</integer>
<integer xsi:type="xs:integer">('0002',)</integer>
<integer xsi:type="xs:integer">('0003',)</integer>
<integer xsi:type="xs:integer">('0004',)</integer>
</SipUserListResult>
</SipUserListResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON Example:
[
"SipUserList",
"1234",
{
"accountcode": "default"
}
]
Response Example:
[0, ['instantvoice', '0001', '0002', '0003', '0004'] ]
SipUserInfo¶
Returns all information about a given sip user. Availability: STOMP, WSDL.
Method Argument | Description |
---|---|
accountcode | The user’s accountcode. |
name | The user’s extension. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:SipUserInfo>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:name>0001</ivws:name>
</ivws:SipUserInfo>
</soapenv:Body>
</soapenv:Envelope>
Response Example:
<SOAP-ENV:Envelope
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns="Ivws.Ivws">
<SOAP-ENV:Body>
<SipUserInfoResponse>
<SipUserInfoResult>
<fullcontact xs:nil="1"/>
<call_limit xsi:type="xs:integer">0</call_limit>
<amaflags xsi:type="xs:string">default</amaflags>
<sendrpid xsi:type="xs:string">no</sendrpid>
<useclientcode xs:nil="1"/>
<callgroup xs:nil="1"/>
<progressinband xsi:type="xs:string">never</progressinband>
<port xsi:type="xs:integer">5060</port>
<musiconhold xs:nil="1"/>
<regseconds xsi:type="xs:integer">0</regseconds>
<callerid xsi:type="xs:string">default_0001</callerid>
<ipaddr xs:nil="1"/>
<fromdomain xs:nil="1"/>
<md5secret xs:nil="1"/>
<secret xsi:type="xs:string">creative-password</secret>
<nat xsi:type="xs:string">no</nat>
<type xsi:type="xs:string">friend</type>
<setvar xs:nil="1"/>
<username xs:nil="1"/>
<description xs:nil="1"/>
<insecure xs:nil="1"/>
<rtpholdtimeout xsi:type="xs:integer">0</rtpholdtimeout>
<disallow xs:nil="1"/>
<host xsi:type="xs:string">dynamic</host>
<promiscredir xsi:type="xs:string">no</promiscredir>
<defaultip xs:nil="1"/>
<subscribecontext xs:nil="1"/>
<mailbox xs:nil="1"/>
<accountcode xsi:type="xs:string">default</accountcode>
<deny xs:nil="1"/>
<dtmfmode xsi:type="xs:string">rfc2833</dtmfmode>
<name xsi:type="xs:string">default_0001</name>
<language xsi:type="xs:string">en_US</language>
<ignoreexpire xsi:type="xs:string">no</ignoreexpire>
<qualify xsi:type="xs:string">no</qualify>
<pickupgroup xs:nil="1"/>
<rpid xs:nil="1"/>
<canreinvite xsi:type="xs:string">yes</canreinvite>
<allow xsi:type="xs:string">ilbc;gsm;ulaw;alaw</allow>
<permit xs:nil="1"/>
<fromuser xs:nil="1"/>
<regexten xs:nil="1"/>
<trustrpid xsi:type="xs:string">no</trustrpid>
</SipUserInfoResult>
</SipUserInfoResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON Example:
[
"SipUserInfo",
"f054bbd2f5ebab9",
{
"accountcode": "default",
"name": "1010"
}
]
Response Example:
[
0,
{
"fullcontact": "",
"call-limit": 0,
"rtptimeout": 0,
"amaflags": "default",
"sendrpid": "no",
"useclientcode": "no",
"callgroup": "",
"progressinband": "never",
"id": 2,
"musiconhold": "",
"regseconds": 1292523047,
"ignoreregexpire": "no",
"callerid": null,
"ipaddr": "0.0.0.0",
"fromdomain": "",
"port": 0,
"md5secret": "",
"secret": "",
"nat": "no",
"type": "friend",
"setvar": "",
"username":
"default_0001",
"allow": "ilbc;gsm;ulaw;alaw",
"insecure": "",
"rtpholdtimeout": 0,
"disallow": "",
"host": "dynamic",
"promiscredir": "no",
"defaultip": "",
"subscribecontext": "",
"mailbox": "",
"accountcode": "default",
"deny": "",
"dtmfmode": "rfc2833",
"name": "default_0001",
"language": "en_US",
"route": "no",
"qualify": 0,
"pickupgroup": "",
"rpid": "",
"canreinvite": "yes",
"context": "instantvoice_agent",
"permit": "",
"fromuser": "",
"regexten": "",
"trustrpid": "no"
}
]
SipUserAddPermission¶
This method will set a sip user permission group, allowing make calls according by the rules of this permission group. Availability: STOMP, WSDL.
Field | Description | Specification |
---|---|---|
key | Your access key. | The key used to access the service. |
accountcode | The agent accountcode. | The accountcode where is the sip user. |
name | The name that identifies a sip user. | The name of an existing sip user. |
location | The permission group used to control outbound calls. | A permission group that exists on the system. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:SipUserAddPermission>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:name>1111</ivws:name>
<ivws:location>123</ivws:location>
</ivws:SipUserAddPermission>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"SipUserAddPermission",
"1234",
{
"accountcode": "default",
"name": "1111",
"location": "123"
}
]
SipUserDeletePermission¶
This method will remove a sip user from a permission group. Availability: STOMP, WSDL.
Field | Description | Specification |
---|---|---|
key | Your access key. | The key used to access the service. |
accountcode | The agent accountcode. | The accountcode where is the sip user. |
name | The name that identifies a sip user. | The name of an existing sip user. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:SipUserDeletePermission>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:name>1111</ivws:name>
</ivws:SipUserDeletePermission>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"SipUserDeletePermission",
"1234",
{
"accountcode": "default",
"name": "1111",
}
]
SipUserModifyPermission¶
This method will modify a sip user permission group. Availability: STOMP, WSDL.
Field | Description | Specification |
---|---|---|
key | Your access key. | The key used to access the service. |
accountcode | The agent accountcode. | The accountcode where is the sip user. |
name | The name that identifies a sip user. | The name of an existing sip user. |
location | The permission group used to control outbound calls. | A permission group that exists on the system. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:SipUserModifyPermission>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:name>1111</ivws:name>
<ivws:location>otherpermissiongroup</ivws:location>
</ivws:SipUserModifyPermission>
</soapenv:Body>
</soapenv:Envelope>
JSON Example:
[
"SipUserModifyPermission",
"1234",
{
"accountcode": "default",
"name": "1111",
"location": "otherpermissiongroup"
}
]
SipUserInfoPermission¶
This method returns the permission group of a given sip user. Availability: STOMP, WSDL.
Field | Description | Specification |
---|---|---|
key | Your access key. | The key used to access the service. |
accountcode | The agent accountcode. | The accountcode where is the sip user. |
name | The name that identifies a sip user. | The name of an existing sip user. |
XML Example:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ivws="Ivws.Ivws">
<soapenv:Header/>
<soapenv:Body>
<ivws:SipUserInfoPermission>
<ivws:key>1234</ivws:key>
<ivws:accountcode>default</ivws:accountcode>
<ivws:name>1111</ivws:name>
</ivws:SipUserInfoPermission>
</soapenv:Body>
</soapenv:Envelope>
Response Example:
<SOAP-ENV:Envelope
xmlns:plnk="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns="Ivws.Ivws">
<SOAP-ENV:Body>
<SipUserInfoPermissionResponse>
<SipUserInfoPermissionResult>
<code xsi:type="xs:integer">0</code>
<location xsi:type="xs:string">123</location>
</SipUserInfoPermissionResult>
</SipUserInfoPermissionResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
JSON Example:
[
"SipUserInfoPermission",
"1234",
{
"accountcode": "default",
"name": "1111",
}
]
Response Example:
[0, "123"]
Receiving Call Events¶
In order to receive call events for any given agent, one must simply subscribe to its topic on our STOMP message broker. The topics are in the format: iv.agents.accountcode_NUM. For example, to receive events for agent 1001 from accountcode “default”, you must subscribe to “/topic/iv.agents.default_1001”.
To receive call events for ALL agents in the system, simply subscribe to “iv.agents.#”, using a literal ‘#’ instead of a specific agent.
Example:
{
"direction": "OUTBOUND",
"callerid": "1234",
"type": "NEWCALL",
"uniqueid": "1282779516.1.6",
"agent": "default_1001"
}
Field | Description |
---|---|
Direction | This can be either INBOUND or OUTBOUND, it indicates the call’s direction. On Hangups it comes empty. On pauses, it shows the pause description |
Callerid | This is whatever comes as callerid for inbound calls and what was dialed by the agent on outbound calls. |
Type | Indicates the type of the event. Currently we have NEWCALL,DNEWCALL, HANGUP, CONNECT, DCONNECT, LOGIN, LOGOUT, PAUSE and UNPAUSE. |
Uniqueid | The system’s uniqueid for that call. It is useful to match the NEWCALL events with the corresponding HANGUP events. |
Agent | Each event is related to a single agent informed here. |
The table below describes all types of events.
Field | Description |
---|---|
NEWCALL | This event indicates a new call for an agent. |
DNEWCALL | When a NEWCALL method is requested, this event indicates that the remote party was called. |
HANGUP | This event indicates the end of a call. Every hangup has a reason, that indicates what occurred with the call. These reasons are described in table below. |
CONNECT | This event indicates that the call was answered by the destination. |
DCONNECT | When a NEWCALL method is requested, this event indicates that the call was answered by the remote party. |
LOGIN | This event indicates that an agent was logged in the system. |
LOGOUT | This event indicates that an agent was logged out the system. |
PAUSE | This event indicates that an agent was paused in the system. |
UNPAUSE | This event indicates that an agent was unpaused in the system. |
The table below describes all reasons for hangup.
Field | Description |
---|---|
BYCALLER | The call was answered and the calling party hung. |
BYCALLEE | The call was answered and the called party hung. |
NOANSWER | The call was not answered by the destination. |
FAILED | An error occurred while calling and the dial failed. |
BUSY | The destination was busy. |
UNKNOWN | An unknown error occurred. |
ATRANSFER | The agent transferred this call to another destination through attendant transfer key. |
BTRANSFER | The agent transferred this call to another destination through blind transfer key. |
QUEUEGIVEUP | The caller hangup the call while was waiting in the queue. |
QUEUEMISSED | The call from queue was forwarded to an agent but the agent did not answer the call. |
PICKUP | The call was ringing for an agent but another agent picked up the call through the pickup key. |
MSSTOP | If an error occurred and the media server stop, all calls from this media server are hung up with the MSSTOP reason. |
MSSTART | When media server recover from failure, all remaining calls from this media server are hung up with the MSSTART reason on server startup. |
MSGONE | When ACD server cannot communicate with media server, all calls from this media server are hung up with the MSGONE reason. |
Example 1:¶
For example, all the events involved in a agent to agent call are presented in the figure below. Each agent receives only your own events, the events of the caller agent are represented in red and the events of the callee agent are represented in blue.
Example 2:¶
The figure below show the events involved in a call using NewCall method of API. This scenario is a bit different because this method call the agent and then call the destination. The NEWCALL and CONNECT events are generated for the first part, between agent phone and InstantVoice. The DNEWCALL and DCONNECT events are generated for the remote party, between InstantVoice and the destination.
Return Codes¶
We always return 0 on success. These are the possible return codes when something goes wrong with a request.
Code | String | Description |
---|---|---|
1 | RESPONSE_MISSING_ARGS | There are mandatory arguments which were not filled. |
2 | RESPONSE_NO_MEMORY | The server has run out of memory. |
3 | RESPONSE_NOT_FOUND | The target of the request was not found. It could mean that the accountcode or the agent doesn’t exist, for example. |
4 | RESPONSE_DUPLICATE | The server interprets this request as a duplicate from a previous request and will not act on it. |
5 | RESPONSE_INVALID | The request doesn’t make sense to the server. |
6 | RESPONSE_NOTEMPTY | This request requires the target to be empty, but currently it is not. |
7 | RESPONSE_ITEM_FULL | The target cannot accept any more requests of this kind at this moment. |
8 | RESPONSE_ITEM_EMPTY | The target is currently empty, this request cannot be performed on an empty target. |
9 | RESPONSE_UNAUTHORIZED | The request doesn’t contain the correct password for the desired target. |
10 | RESPONSE_NOT_ALLOWED | The server is not allowed to perform the requested operation. |
11 | RESPONSE_DISABLED | The target is disabled, the server cannot perform this request. |
12 | RESPONSE_NO_LICENSE | The server cannot perform this request because the number of licensed agents was exceeded. |
1000 | RESPONSE_UNDEFINED | The server cannot perform any request because the IVACD is currently disabled. |
9999 | RESPONSE_INTERNAL_ERROR | An unexpected behaviour caused the request not to be completed. |
-1 | DAC_OFFLINE | IVWS could not communicate with IVACD. |
-2 | PERMISSION_DENIED | The provided key doesn’t have permission to perform this request. |