This chapter provides a general specification for Interaction Processor type network services. It contains these sections:
Service Overview
An Interaction Processor type service is responsible for managing agent sessions and providing access to its underlying CTI for call control and possibly multimedia functionality. All Interaction Processor services must support each request, response, and event detailed here unless otherwise marked optional. However, they are free to expand on the structures of those messages as well as define new messages.
...
The "instance-domain" property is used to identify a group of interaction processors running within separate integration platforms that are working together to service the same pool of clients. The set of clients will spread their connections across the platform instances hosting the correct domain. The following information must be provided by all Interaction Processor type services.
{
Code Block | ||
---|---|---|
| ||
{ "vendor", "<vendor-name>", |
...
"version", "<current-version>", |
...
"cti-vendor": "<cti-vendor-name>", |
...
"cti-version": "<cti-version>", |
...
"instance-domain": "<instance-domain>" |
...
} |
Service Requests and Responses
...
It is recommended that clients initially use a value of false for this property and allow the user to decide if they want to destroy the session. If the user requests the session be removed, the client would send a second request with a value of true for the "override" property.
Request
Code Block | ||
---|---|---|
| ||
{ |
...
"command": "prepareSession", |
...
"data": |
...
{
{ "model": "<name-of-call-model>", |
...
"override": true | false, |
...
"agent": |
...
{
{ "id": "<agent-id>", |
...
"password": "<agent-password>" |
...
}
}
} } } |
Confirmation Response
Code Block | ||
---|---|---|
| ||
{ |
...
"command": "prepareSession", |
...
"result": "confirm", |
...
"message": "<confirmation-prompt-text>", |
...
"original": |
...
<Contains the original prepareSession request JSON structure>
{ <Contains the original prepareSession request JSON structure> } } |
Success Response
Code Block | ||
---|---|---|
| ||
{ |
...
"command": "prepareSession", |
...
"result": "success", |
...
"resource": |
...
{
{ "id": "<resource-id>", |
...
"data": |
...
<Contains the original data property of the request>
}
{ <Contains the original data property of the request> } } } |
Failure Response
Code Block | ||
---|---|---|
| ||
{ |
...
"command": "prepareSession", |
...
"result": "failure", |
...
"failure": |
...
{
{ "code": "<error-code-for-failure>", |
...
"message": "<error-message>", |
...
"context": "<stack-trace-if-applicable>" |
...
}
}, "original": |
...
<Contains the original prepareSession request JSON structure>
{ <Contains the original prepareSession request JSON structure> } } |
Secondary Events
This request should not generate any secondary service events.
...
The getCapabilities request is used by a client to discover the capabilities of this interaction processor.
Request
Code Block | ||
---|---|---|
| ||
{ |
...
"command": "getCapabilities", |
...
"data": |
...
{
}
{ } } |
Success Response
Code Block | ||
---|---|---|
| ||
{ |
...
"command": " getCapabilities ", |
...
"result": "success", |
...
"data": |
...
{
<key value pairs of capabilities>
}
{ <key value pairs of capabilities> } } |
Failure Response
Code Block | ||
---|---|---|
| ||
{ |
...
"command": " getCapabilities ", |
...
"result": "failure", |
...
"failure": |
...
{
{ "code": "<error-code-for-failure>", |
...
"message": "<error-message>", |
...
"context": "<stack-trace-if-applicable>" |
...
}
}, "original": |
...
<Contains the original getCapabilities request JSON structure>
{ <Contains the original getCapabilities request JSON structure> } } |
Secondary Events
This request should not generate any secondary service events.
...