Call Center¶
Automatically process incoming calls received by a single phone number by distributing them to a group of users or agents. Includes enhanced features such as agent log in and log out, call queuing, and overflow control.
This section describes the services assigned to the user as part of a cal center.
Profile¶
Retrieve instance¶
-
GET
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/users/
(string: user_id)/services/call_centers/
¶ Retrieve the user’s call center settings and the list of call centers the specified user belongs to. By default the name of the call centers is not returned. It is possible to retrieve it by using the parameter enrichCcInfo. It’s also possible to filter the list of call centers by using the search criterion sensitiveServiceUserIdEquals within the desired call center. It’s possible to combine the previous parameters in the same request.
Authorization Right:minimum End User.
Example request:
GET /api/v1/tenants/foo/groups/foogroup/users/foouser/services/call_centers/ HTTP/1.1 Host: example.com
Example response:
HTTP/1.1 200 OK { "agentACDState": "Available", "agentThresholdProfileName": "Default Agent Threshold Profile", "agentUnavailableCode": "", "useDefaultGuardTimer": true, "enableGuardTimer": false, "guardTimerSeconds": 5, "useSystemDefaultUnavailableSettings": true, "forceAgentUnavailableOnDNDActivation": false, "forceAgentUnavailableOnBouncedCallLimit": false, "numberConsecutiveBouncedCallsToForceAgentUnavailable": 3, "forceAgentUnavailableOnNotReachable": false, "outgoingCallDNIS": { "serviceUserId": "APIOTestCallCenterP@sip.netaxis.be", "name": "Test DNIS" }, "call_centers": [ { "serviceUserId": "APIOTestCallCenterB@sip.netaxis.be", "available": false, "priority": "5.0", "phoneNumber": "", "extension": "", "type": "Basic", "logOffAllowed": true }, { "serviceUserId": "APIOTestCallCenterS@sip.netaxis.be", "available": false, "priority": "5.0", "phoneNumber": "", "extension": "", "type": "Basic", "logOffAllowed": true } ] }
- Response JSON Object:
agentACDState (string) – Agent Automatic Call Distribution (ACD) State.
agentThresholdProfileName (string) – Call Center Agent Threshold Profile name.
agentUnavailableCode (string) – Call Center Agent Unavailable Code Value.
useDefaultGuardTimer (boolean) – Toggle useDefaultGuardTimer functionality.
enableGuardTimer (boolean) – Toggle enableGuardTimer functionality.
guardTimerSeconds (integer) – The timer determines how long the system will wait before routing a call to a free agent.
useSystemDefaultUnavailableSettings (boolean) – Toggle useSystemDefaultUnavailableSettings functionality.
forceAgentUnavailableOnDNDActivation (boolean) – Toggle forceAgentUnavailableOnDNDActivation functionality.
forceAgentUnavailableOnPersonalCalls (boolean) – Toggle forceAgentUnavailableOnPersonalCalls functionality.
forceAgentUnavailableOnBouncedCallLimit (boolean) – Toggle forceAgentUnavailableOnBouncedCallLimit functionality.
numberConsecutiveBouncedCallsToForceAgentUnavailable (integer) – Call center maximum number of consecutive bounced calls allowed before forcing agent to become unavailable.
forceAgentUnavailableOnNotReachable (boolean) – Toggle forceAgentUnavailableOnNotReachable functionality.
makeOutgoingCallsAsCallCenter (boolean) – Toggle makeOutgoingCallsAsCallCenter functionality.
outgoingCallDNIS (object) – Uniquely identifies a Call Center DNIS. See Call Center DNIS Instance.
call_centers (array) – The properties of the assigned call centers. See Call Center Instance.
Example request with enrichCcInfo:
GET /api/v1/tenants/foo/groups/foogroup/users/foouser/services/call_centers/ HTTP/1.1 Host: example.com { "enrichCcInfo": true }
- Request JSON Object:
enrichCcInfo (boolean) – To enrich User call centers list with name.
Example response with enrichCcInfo:
HTTP/1.1 200 OK { "agentACDState": "Available", "agentThresholdProfileName": "Default Agent Threshold Profile", "agentUnavailableCode": "", "useDefaultGuardTimer": true, "enableGuardTimer": false, "guardTimerSeconds": 5, "useSystemDefaultUnavailableSettings": true, "forceAgentUnavailableOnDNDActivation": false, "forceAgentUnavailableOnBouncedCallLimit": false, "numberConsecutiveBouncedCallsToForceAgentUnavailable": 3, "forceAgentUnavailableOnNotReachable": false, "outgoingCallDNIS": { "serviceUserId": "APIOTestCallCenterP@sip.netaxis.be", "name": "Test DNIS" }, "call_centers": [ { "serviceUserId": "APIOTestCallCenterB@sip.netaxis.be", "available": false, "priority": "5.0", "phoneNumber": "", "extension": "", "type": "Basic", "logOffAllowed": true, "name": "APIO Test Call Center B" }, { "serviceUserId": "APIOTestCallCenterS@sip.netaxis.be", "available": false, "priority": "5.0", "phoneNumber": "", "extension": "", "type": "Basic", "logOffAllowed": true, "name": "APIO Test Call Center S" } ] }
Example request with sensitiveServiceUserIdEquals:
GET /api/v1/tenants/foo/groups/foogroup/users/foouser/services/call_centers/ HTTP/1.1 Host: example.com { "sensitiveServiceUserIdEquals": "APIOTestCallCenterS@sip.netaxis.be" }
- Request JSON Object:
sensitiveServiceUserIdEquals (string) – See sensitiveServiceUserIdEquals from Search criteria.
Example response with sensitiveServiceUserIdEquals:
HTTP/1.1 200 OK { "agentACDState": "Available", "agentThresholdProfileName": "Default Agent Threshold Profile", "agentUnavailableCode": "", "useDefaultGuardTimer": true, "enableGuardTimer": false, "guardTimerSeconds": 5, "useSystemDefaultUnavailableSettings": true, "forceAgentUnavailableOnDNDActivation": false, "forceAgentUnavailableOnBouncedCallLimit": false, "numberConsecutiveBouncedCallsToForceAgentUnavailable": 3, "forceAgentUnavailableOnNotReachable": false, "outgoingCallDNIS": { "serviceUserId": "APIOTestCallCenterP@sip.netaxis.be", "name": "Test DNIS" }, "call_centers": [ { "serviceUserId": "APIOTestCallCenterS@sip.netaxis.be", "available": false, "priority": "5.0", "phoneNumber": "", "extension": "", "type": "Basic", "logOffAllowed": true } ] }
Example request with enrichCcInfo and sensitiveServiceUserIdEquals:
GET /api/v1/tenants/foo/groups/foogroup/users/foouser/services/call_centers/ HTTP/1.1 Host: example.com { "enrichCcInfo": true, "sensitiveServiceUserIdEquals": "APIOTestCallCenterB@sip.netaxis.be" }
- Request JSON Object:
enrichCcInfo (boolean) – To enrich User call centers list with name.
sensitiveServiceUserIdEquals (string) – See sensitiveServiceUserIdEquals from Search criteria.
Example response with enrichCcInfo and sensitiveServiceUserIdEquals:
HTTP/1.1 200 OK { "agentACDState": "Available", "agentThresholdProfileName": "Default Agent Threshold Profile", "agentUnavailableCode": "", "useDefaultGuardTimer": true, "enableGuardTimer": false, "guardTimerSeconds": 5, "useSystemDefaultUnavailableSettings": true, "forceAgentUnavailableOnDNDActivation": false, "forceAgentUnavailableOnBouncedCallLimit": false, "numberConsecutiveBouncedCallsToForceAgentUnavailable": 3, "forceAgentUnavailableOnNotReachable": false, "outgoingCallDNIS": { "serviceUserId": "APIOTestCallCenterP@sip.netaxis.be", "name": "Test DNIS" }, "call_centers": [ { "serviceUserId": "APIOTestCallCenterB@sip.netaxis.be", "available": false, "priority": "5.0", "phoneNumber": "", "extension": "", "type": "Basic", "logOffAllowed": true, "name": "APIO Test Call Center B" } ] }
- Status Codes:
200 OK –
Update instance¶
-
PUT
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/users/
(string: user_id)/services/call_centers/
¶ Update the user’s call center settings. It must be noted that this API allow to modify settings linked to assigned call centers, not the assign the user to a call center.
Authorization Right:minimum End User.
Example request:
PUT /api/v1/tenants/foo/groups/foogroup/users/foouser/services/call_centers/ HTTP/1.1 Host: example.com { "agentACDState": "Unavailable", "agentThresholdProfileName": "Default Agent Threshold Profile", "agentUnavailableCode": "", "useDefaultGuardTimer": true, "enableGuardTimer": true, "guardTimerSeconds": 15, "forceAgentUnavailableOnDNDActivation": false, "forceAgentUnavailableOnBouncedCallLimit": false, "numberConsecutiveBouncedCallsToForceAgentUnavailable": 3, "forceAgentUnavailableOnNotReachable": false, "makeOutgoingCallsAsCallCenter": true, "outgoingCallDNIS": { "serviceUserId": "APIOTestCallCenterP@sip.netaxis.be", "name": "Test DNIS" }, "useSystemDefaultUnavailableSettings": true, "call_centers": [ { "serviceUserId": "APIOTestCallCenterB@sip.netaxis.be", "available": true } ] }
- Request JSON Object:
agentACDState (string) – Agent Automatic Call Distribution (ACD) State.
agentThresholdProfileName (string) – Call Center Agent Threshold Profile name.
agentUnavailableCode (string) – Call Center Agent Unavailable Code Value.
useDefaultGuardTimer (boolean) – Toggle useDefaultGuardTimer functionality.
enableGuardTimer (boolean) – Toggle enableGuardTimer functionality.
guardTimerSeconds (integer) – The timer determines how long the system will wait before routing a call to a free agent.
useSystemDefaultUnavailableSettings (boolean) – Toggle useSystemDefaultUnavailableSettings functionality.
forceAgentUnavailableOnDNDActivation (boolean) – Toggle forceAgentUnavailableOnDNDActivation functionality.
forceAgentUnavailableOnPersonalCalls (boolean) – Toggle forceAgentUnavailableOnPersonalCalls functionality.
forceAgentUnavailableOnBouncedCallLimit (boolean) – Toggle forceAgentUnavailableOnBouncedCallLimit functionality.
numberConsecutiveBouncedCallsToForceAgentUnavailable (integer) – Call center maximum number of consecutive bounced calls allowed before forcing agent to become unavailable.
forceAgentUnavailableOnNotReachable (boolean) – Toggle forceAgentUnavailableOnNotReachable functionality.
makeOutgoingCallsAsCallCenter (boolean) – Toggle makeOutgoingCallsAsCallCenter functionality. If true ‘outgoingCallDNIS’ is required.
outgoingCallDNIS (object) – Uniquely identifies a Call Center DNIS. See Call Center DNIS Instance. Can be set to null (None) to delete the actual value.
call_centers (array) – The list of the assigned call centers. See Call Center Instance.
- Status Codes:
200 OK –
Example response:
- Response:
Similar to GET instance method response.
- Status Codes:
200 OK –
Bad request due to invalid parameters or dnis not found, with possible sub-error code:
2: INVALID_PARAMETERS, “Outgoing Call Center is required when make outgoing call as call center is enabled.”. To avoid this error is required to provide a valid and not null ‘outgoingCallDNIS’.
Assign call center instance¶
-
PUT
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/users/
(string: user_id)/services/call_centers/
¶ Assign one or more call centers to the user. The call center must allow the user to join it. Else the user can be added as agent of the call center only suing the call center instance API.
Authorization Right:minimum End User.
Example request:
PUT /api/v1/tenants/foo/groups/foogroup/users/foouser/services/call_centers/ HTTP/1.1 Host: example.com { "list": true, "call_centers": [ { "serviceUserId": "APIOTestCallCenterB@sip.netaxis.be" }, { "serviceUserId": "APIOTestCallCenterS@sip.netaxis.be" } ] }
- Request JSON Object:
list (boolean) –
Actually needed to work with the list API.
call_centers (array) –
The list of call centers to be assigned to the user. Each time the complete list meaning it is not an incremental update of the list of call centers. See Call Center List Item.
- Status Codes:
200 OK –
Example response:
HTTP/1.1 200 OK {}
- Status Codes:
200 OK – instance updated
Available Call Centers¶
Retrieve list instances¶
-
GET
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/users/
(string: user_id)/services/call_centers/available/
¶
-
GET
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/users/
(string: user_id)/services/call_centers/
(deprecated)¶ Retrieve the list of the available Call Centers.
The method without available in the url is the old one and is deprecated and replaced by the new one. By default the name of the call centers is not returned. It is possible to retrieve it by using the parameter enrichCcInfo. It’s also possible to filter the list of call centers by using the search criterion sensitiveServiceUserIdEquals within the desired call center. It’s possible to combine the previous parameters in the same request.
Authorization Right:minimum End User.
Example request:
GET /api/v1/tenants/foo/groups/foogroup/users/foouser/services/call_centers/available/ HTTP/1.1 Host: example.com
Example response:
HTTP/1.1 200 OK { "call_centers": [ { "serviceUserId": "APIOTestCallCenterB@sip.netaxis.be" }, { "serviceUserId": "APIOTestCallCenterS@sip.netaxis.be" } ] }
- Response JSON Object:
call_centers (array) – The list of the available call centers. See Call Center List Item.
Example request with enrichCcInfo:
GET /api/v1/tenants/foo/groups/foogroup/users/foouser/services/call_centers/available/ HTTP/1.1 Host: example.com { "enrichCcInfo": true }
- Request JSON Object:
enrichCcInfo (boolean) – To enrich User call centers list with name.
sensitiveServiceUserIdEquals (string) – See sensitiveServiceUserIdEquals from Search criteria.
Example response with enrichCcInfo:
HTTP/1.1 200 OK { "call_centers": [ { "name": "APIO Test Call Center B", "serviceUserId": "APIOTestCallCenterB@sip.netaxis.be" }, { "name": "APIO Test Call Center S", "serviceUserId": "APIOTestCallCenterS@sip.netaxis.be" } ] }
- Response JSON Object:
call_centers (array) – The list of the available call centers. See Call Center List Item.
Example request with sensitiveServiceUserIdEquals:
GET /api/v1/tenants/foo/groups/foogroup/users/foouser/services/call_centers/available/ HTTP/1.1 Host: example.com { "sensitiveServiceUserIdEquals": "APIOTestCallCenterB@sip.netaxis.be" }
- Request JSON Object:
enrichCcInfo (boolean) – To enrich User call centers list with name.
sensitiveServiceUserIdEquals (string) – See sensitiveServiceUserIdEquals from Search criteria.
Example response with sensitiveServiceUserIdEquals:
HTTP/1.1 200 OK { "call_centers": [ { "serviceUserId": "APIOTestCallCenterB@sip.netaxis.be" } ] }
- Response JSON Object:
call_centers (array) – The list of the available call centers. See Call Center List Item.
Example request with enrichCcInfo and sensitiveServiceUserIdEquals:
GET /api/v1/tenants/foo/groups/foogroup/users/foouser/services/call_centers/available/ HTTP/1.1 Host: example.com { "enrichCcInfo": true, "sensitiveServiceUserIdEquals": "APIOTestCallCenterB@sip.netaxis.be" }
- Request JSON Object:
enrichCcInfo (boolean) – To enrich User call centers list with name.
sensitiveServiceUserIdEquals (string) – See sensitiveServiceUserIdEquals from Search criteria.
Example response with enrichCcInfo and sensitiveServiceUserIdEquals:
HTTP/1.1 200 OK { "call_centers": [ { "name": "APIO Test Call Center B", "serviceUserId": "APIOTestCallCenterB@sip.netaxis.be" } ] }
- Response JSON Object:
call_centers (array) – The list of the available call centers. See Call Center List Item.
- Status Codes:
200 OK –
Available DNIS¶
Retrieve list instances¶
-
GET
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/users/
(string: user_id)/services/call_centers/dnis/
¶
-
GET
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/users/
(string: user_id)/services/call_centers/
(deprecated)¶ Retrieve the list of the available DNIS in the Call Centers.
The method without dnis in the url is the old one and is deprecated and replaced by the new one.
Authorization Right:minimum End User.
Example request:
GET /api/v1/tenants/foo/groups/foogroup/users/foouser/services/call_centers/dnis/ HTTP/1.1 Host: example.com
Example response:
HTTP/1.1 200 OK { "call_centers_dnis": [ { "serviceUserId": "APIOTestCallCenterP@sip.netaxis.be", "name": "Test DNIS" } ] }
- Response JSON Object:
call_centers_dnis (array) – The list of the available DNIS in the call centers. See Call Center DNIS List Item.
- Status Codes:
200 OK –
Supervised Agents¶
Retrieve supervised agents list of a call center’s supervisor¶
-
GET
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/users/
(string: supervisorUserId)/services/call_centers/
(string: instance_name)/supervised_agents/
¶ Retrieve supervised agents list of a call center’s supervisor.
Authorization rights: minimum End User.
Example request:
GET /api/v1/tenants/foo/groups/foogroup/users/fooSupervisorUser/services/call_centers/fooCallCenter/supervised_agents/ HTTP/1.1 Host: example.com { "sensitiveUserLastNameStarts": "Test" }
- Request JSON Object:
combineWithOr (boolean) – See combineWithOr from Search criteria. If true, at least one search criteria must be present.
sensitiveUserLastNameStarts (string) – See sensitiveUserLastNameStarts from Search criteria.
sensitiveUserLastNameContains (string) – See sensitiveUserLastNameContains from Search criteria.
sensitiveUserLastNameEquals (string) – See sensitiveUserLastNameEquals from Search criteria.
insensitiveUserLastNameStarts (string) – See insensitiveUserLastNameStarts from Search criteria.
insensitiveUserLastNameContains (string) – See insensitiveUserLastNameContains from Search criteria.
insensitiveUserLastNameEquals (string) – See insensitiveUserLastNameEquals from Search criteria.
sensitiveUserFirstNameStarts (string) – See sensitiveUserFirstNameStarts from Search criteria.
sensitiveUserFirstNameContains (string) – See sensitiveUserFirstNameContains from Search criteria.
sensitiveUserFirstNameEquals (string) – See sensitiveUserFirstNameEquals from Search criteria.
insensitiveUserFirstNameStarts (string) – See insensitiveUserFirstNameStarts from Search criteria.
insensitiveUserFirstNameContains (string) – See insensitiveUserFirstNameContains from Search criteria.
insensitiveUserFirstNameEquals (string) – See insensitiveUserFirstNameEquals from Search criteria.
sensitiveUserIdStarts (string) – See sensitiveUserIdStarts from Search criteria.
sensitiveUserIdContains (string) – See sensitiveUserIdContains from Search criteria.
sensitiveUserIdEquals (string) – See sensitiveUserIdEquals from Search criteria.
insensitiveUserIdStarts (string) – See insensitiveUserIdStarts from Search criteria.
insensitiveUserIdContains (string) – See insensitiveUserIdContains from Search criteria.
insensitiveUserIdEquals (string) – See insensitiveUserIdEquals from Search criteria.
insensitiveDnStarts (string) – See insensitiveDnStarts from Search criteria.
insensitiveDnContains (string) – See insensitiveDnContains from Search criteria.
insensitiveDnEquals (string) – See insensitiveDnEquals from Search criteria.
insensitiveExtensionStarts (string) – See insensitiveExtensionStarts from Search criteria.
insensitiveExtensionContains (string) – See insensitiveExtensionContains from Search criteria.
insensitiveExtensionEquals (string) – See insensitiveExtensionEquals from Search criteria.
sensitiveUserDepartmentEquals (string) – See sensitiveUserDepartmentEquals from Search criteria.
responseSizeLimit (integer) – See responseSizeLimit from Search criteria.
Example response:
HTTP/1.1 200 OK { "supervised_agents": [ { "userId": "ApioUserTest1@sip.netaxis.be", "lastName": "Test1", "firstName": "Test1", "phoneNumber": "+3225126778", "extension": "5001", "department": { "tenantId": "ApioSpTest", "groupId": "ApioGrpTest", "departmentName": "test_department_initial", "fullPathName": "test_department_parent_1 \\ test_department_initial" }, "emailAddress": "", "impId": "", "locationCode": "" } ] }
- Response JSON Object:
supervised_agents (array) – The list of the supervised agents. A list of objects as defined Supervised Agent.
- Status Codes:
200 OK – no errors
Replacement list of supervised agents of a Call Center’s supervisor¶
-
PUT
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/users/
(string: supervisorUserId)/services/call_centers/
(string: instance_name)/supervised_agents/
¶ Replace the full list of supervised agents for a call center’s supervisor. Use this PUT API to do a full replacement and use the DELETE/POST APIs to do partial replacements.
Authorization rights: minimum End User.
Example request:
PUT /api/v1/tenants/foo/groups/foogroup/users/fooSupervisorUser/services/call_centers/fooCallCenter/supervised_agents/ HTTP/1.1 Host: example.com { "supervised_agents": [ { "userId": "ApioUserTest1@sip.netaxis.be" }, { "userId": "ApioUserTest2@sip.netaxis.be" } ], }
- Request JSON Object:
supervised_agents (array) – A full replacement list of supervised agents to modify. See Supervised Agent. An empty list will remove all the actual assigned agents.
Example response:
- Response:
Similar to GET instance method response.
- Status Codes:
200 OK – list updated
Add a list of supervised agents of a Call Center’s supervisor¶
-
POST
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/users/
(string: supervisorUserId)/services/call_centers/
(string: instance_name)/supervised_agents/
¶ Add a list of supervised agents for a call center’s supervisor. Use this POST API to do add supervised agents and use the PUT API to do full replacements of gthe list of agents.
Authorization rights: minimum End User.
Example request:
POST /api/v1/tenants/foo/groups/foogroup/users/fooSupervisorUser/services/call_centers/fooCallCenter/supervised_agents/ HTTP/1.1 Host: example.com { "supervised_agents": [ { "userId": "ApioUserTest1@sip.netaxis.be" }, { "userId": "ApioUserTest2@sip.netaxis.be" } ], }
- Request JSON Object:
supervised_agents (array) – A list of agents to assign to a supervisor. See Supervised Agent.
Example response:
- Response:
Similar to GET instance method response.
- Status Codes:
201 Created – list added
Remove a list of supervised agents of a Call Center’s supervisor¶
-
DELETE
/api/v1/tenants/
(string: tenant_id)/groups/
(string: group_id)/users/
(string: supervisorUserId)/services/call_centers/
(string: instance_name)/supervised_agents/
¶ Remove a list of supervised agents for a call center’s supervisor. Use this DELETE API to do remove supervised agents and use the PUT API to do full replacements/full deletion of the list of agents.
Authorization rights: minimum End User.
Example request:
DELETE /api/v1/tenants/foo/groups/foogroup/users/fooSupervisorUser/services/call_centers/fooCallCenter/supervised_agents/ HTTP/1.1 Host: example.com { "supervised_agents": [ { "userId": "ApioUserTest1@sip.netaxis.be" }, { "userId": "ApioUserTest2@sip.netaxis.be" } ], }
- Request JSON Object:
supervised_agents (array) – A list of supervised agents to be removed. See Supervised Agent.
Example response:
- Response:
Similar to GET instance method response.
- Status Codes:
200 OK – list deleted
Configuration Information for Call Centers¶
The APIO behaviour is controlled by the following settings:
"ENRICH_CC_INFO": false,
- With following parameters:
ENRICH_CC_INFO: To enrich User call centers list with name. It is by default false because it has a performance cost.