Core REST Recording API
Introduction
Anywhere365 introduces a Representational State Transfer (REST) Recording service, which can be used by a payment system to control the recording state. This feature enables you to be PCI compliant.
Prerequisites
-
Available for UCC A Unified Contact Center, or UCC, is a queue of interactions (voice, email, IM, etc.) that are handled by Agents. Each UCC has its own settings, IVR menus and Agents. Agents can belong to one or several UCCs and can have multiple skills (competencies). A UCC can be visualized as a contact center “micro service”. Customers can utilize one UCC (e.g. a global helpdesk), a few UCC’s (e.g. for each department or regional office) or hundreds of UCC’s (e.g. for each bed at a hospital). They are interconnected and can all be managed from one central location. Core service from 6.7 and higher
Get Recording state
When an audio call is in progress this command will allow for the recorder to be controlled.
Recording states are;
-
Uninitialized = 0,
-
Started = 1,
-
Stopped = 2,
-
Paused = 3
Marking states are;
-
None = 0,
-
Mark = 1,
-
Unmark = 2
Saving states are;
-
None = 0,
-
Save = 1,
-
Delete = 2
Request
GET http(s)://{fqdn}/attendantservice/api/recording/ucc-demo-name/1d6c6a58-6739-4f0c-98ff-0968292c8c30 HTTP/1.1
Accept: application/json
Response (session found)
{
"CorrelationId":"1d6c6a58-6739-4f0c-98ff-0968292c8c30",
"RecordingState":0,
"MarkingState":1,
"SavingState":1,
"ErrorMessage":null,
"UCCName":"ucc-demo-name"
}
Response (session not found)
{
"CorrelationId":"1d6c6a58-6739-4f0c-98ff-0968292c8c30",
"RecordingState":0,
"MarkingState":0,
"SavingState":0,
"ErrorMessage":{
"ErrorType":2,
"Message":"No Audio session with correlation Id:'1d6c6a58-6739-4f0c-98ff-0968292c8c30' was found."
},
"UCCName":"ucc-demo-name"
}
Change recorder state
Actions that modify the state are;
-
Start = 1,
-
Stop = 2,
-
Pause = 3,
-
Save = 4,
-
Delete = 5,
-
Mark = 6,
-
UnMark = 7
Request with action id
POST http(s)://{fqdn}/attendantservice/api/recording/set HTTP/1.1
Accept: application/json
Content-Type: application/json
{
"Action":1,
"RequesterSipUri":"sip:agent@domain.com",
"CorrelationId":"1d6c6a58-6739-4f0c-98ff-0968292c8c30",
"UCCName":"ucc-demo-name"
}
Request with action name
POST http(s)://{fqdn}/attendantservice/api/recording/set HTTP/1.1
Accept: application/json
Content-Type: application/json
{
"Action":"Mark",
"RequesterSipUri":"sip:agent@domain.com",
"CorrelationId":"1d6c6a58-6739-4f0c-98ff-0968292c8c30",
"UCCName":"ucc-demo-name"
}
Recording capabilities
In order for the change recorder state command to work the UCC must be set to allow AgentCanEditRecordings, with this command you can verify the setting.
Request
GET http(s)://{fqdn}/attendantservice/api/recording/capabilities/ucc-demo-name HTTP/1.1
Accept: application/json
Response
Response (ucc not found)
{
"AgentCanEditRecordings":false,
"ErrorMessage":{
"ErrorType":2,
"Message":"Ucc with name:'ucc-demo-name' not found."
},
"UCCName":"ucc-demo-name"
}
Recording events
SignalR hub can be listened to for the RecordingStateChangedEvent which holds UccName, CorrelationId and StateAction. StateAction is the type of action that changed the state of the audiorecorder;
-
Start = 1,
-
Stop = 2,
-
Pause = 3,
-
Save = 4,
-
Delete = 5,
-
Mark = 6,
-
UnMark = 7
Error Messages
Each recording command response can contain an ErrorMessage body.
ErrorMessage will be null when the message is successful, otherwise it will contain the following;
The error types that can be returned are;
-
Configuration = 1,
-
Validation = 2,
-
Processing = 3