Introduction
Overview
First of all, if necessary, ALE can offer you a quote for a Mentoring Service Pack
which will help you with O2G deployment and the use of O2G APIs with the support of dedicated ALE experts.
Contact your ALE representative for more details.
This package is not embedded in OXE, and it is able to address the installed OXE(s).
O2G API services are available according to the following rules regarding the licenses :
- Required license : No license required (free).
O2G API services characterized in this way can be invoked without O2G license.
- Required license : [license name] - True.
O2G API services characterized in this way require an O2G license [license name] of boolean type.
These services can only be invoked if the corresponding O2G license [license name] value is TRUE.
- Required license : [license name] - one license per user.
O2G API services characterized in this way require an O2G license [license name] that determines the maximum number
of distinct OXE users (*) that can be controlled using these APIs, regardless of the number of active application sessions on O2G.
For instance, if multiple application sessions need to collectively control up to 100 distinct OXE users through such API services,
the corresponding O2G license [license name] value must be set to 100.
Notes:
- Refer to User Management service to see how to declare O2G users from OXE subscribers.
- Directory numbers must be only digits to be monitored (Numbers without #, *, A, B, C or D char).
- Required license : [license name] - number of licenses greater than or equal to total number of OXE users on all OXE nodes.
- Required license : [license name] - number of licenses must be equal to total OXE users.
O2G API services characterized in this way require the corresponding O2G license [license name] to be set to the maximum number of OXE subscribers
across all OXE nodes.
- Required license : [license name] - N licenses required.
O2G API services characterized in this way require O2G license [License name] to be set to the fixed value of N.
Note: O2G license [License name] may also be required when using O2G API services enabling OXE user control.
If both types of O2G API services are used, the value of O2G license [License name] must be set to the number of distinct OXE users controlled by the API plus N.
For instance, if the need is to control up to 100 distinct OXE users through O2G API services subject to O2G license [License name] and
to invokes O2G API services that require the fixed value of 40 O2G license [License name] ,
O2G license [License name] value has to be set to 100 (OXE users) plus 40 (fixed number) = 140.
Each resource can be accessed through the following kind of URL:
http(s)://<host>:<port>/api/rest/<version>/<resource _name>
Where:
- <host> is the host name or IP address of the server
- <port> is the port of the server
- <version> is the resource version
- <resource_name> is the name of the invoked resources
Third party application can get available API versions by performing a
GET http request on the root URL
(Only GET operation is available on this resource, else 405 HTTP error "Method Not Allowed" in returned)
The structure of the returned body can be found in
RoxeRestApiDescriptor.
http(s)://<host>:<port>/api/rest
Example of response :
{
"serverInfo": {
"productName": "O2G Solution",
"productType": "O2G",
"productVersion": {
"major": "2.6",
"minor": "000.000"
},
"haMode": true
},
"versions" : [{
"id" : "1.0",
"status" : "CURRENT",
"publicUrl" : "https://public-server/api/rest/authenticate?version=1.0",
"internalUrl" : "https://server/api/rest/authenticate?version=1.0"
}],
"custoFeatures" : [{
"CCD_LOAD_OPE_CCA" : true,
"HOTEL_LOAD_Z_GUESTS" : true
}]
}
Notes : The customizable options (custoFeatures) are:
- CCD_LOAD_OPE_CCA: Indicates that devices with parameters ACT_Type=AGENT and Ope_Cca=TRUE are taken into account
- HOTEL_LOAD_Z_GUESTS: Indicates that devices with parameters Station_Type=ANALOG, Teleservice=Phone, Function=Room and Occupation_Type=Client are taken into account
To validate these options, "customize.properties" file must be created in /var/data/system directory.
The allowed parameters are "acd.loadOpeCca" and "hotel.loadZGuests".
Example of content:
acd.loadOpeCca=true
hotel.loadZGuests=true
Vocabulary
An application is a third party using the O2G system.
An application can create one or more O2G administrator sessions to interact with all users.
It can also have one or more O2G user sessions.
The person who administers the O2G system.
This person will be able to manage the O2G system, by connecting via an SSH link, using the roxeAdm account with the credentials configured during installation.
It is an O2G user with administrator right.
The installer can create an administrator in O2G system, using the roxe-config.sh tool (or roxe-install.sh during installation).
It is a subscriber of the OXE system.
The installer can manage a subscriber in OXE system, by using MGR tool by example.
It is a subscriber number of the OXE system or an external number.
It is an O2G user with no administrator right.
An O2G user is associated with one OXE subscriber, or more in the case of a multi-device OXE configuration.
An O2G user is automatically created by the O2G system if an OXE subscriber has the A4980 right or if OXE subscriber is managed on demand (depending on the O2G configuration).
- An administrator account :
A O2G administrator account is a O2G session, associated to a O2G administrator.
To create an O2G administrator account, a third-party application must authenticate and log in (open a session).
A login and a password will be used to authenticate to the REST APIs.
(Method: GET https://server/api/rest/authenticate?version=1.0)
This administrator account will be able to use all REST APIs methods.
The login and password used are those administered in O2G by the installer.
A O2G user account is a O2G session, associated to a O2G user.
To create an O2G user account, a third-party application must authenticate and log in (open a session).
A login and a password will be used to authenticate to the REST APIs.
(Method: GET https://server/api/rest/authenticate?version=1.0)
This user account will be able to use only user REST APIs methods.
The login and password used depend on the choice of authentication mechanism, chosen by the installer.
Several authentication mechanisms are possible :
The installer denies user authentication.
  In this case, no user can authenticate (no user session).
  Only an administrator account must use to perform an action for a user.
The installer authorizes user authentication by O2G.
  In this case, the user authentication is checked by O2G (default mode).
  It is a basic HTTPS authentication, based on a login/password.
The
login is the QMCDU of the OXE subscriber prefixed by "oxe" (Ex: oxe70120).
The
password is the Secret Code (4 digits), of the OXE subscriber.
The installer authorizes user authentication by OXE.
  This configuration impacts all OXEs managed by O2G :
  Each OXE must be configured with a local authentication or
  with a LDAP authentication (only possible from OXE version N4.507.2).
  For a local authentication :
The
login is the Login of the subscriber.
The
password is the Password of the subscriber.
 
  For a LDAP authentication :
The
login is the Login of the subscriber.
The
password is the password of the user defined in the LDAP server.
This attribute is used in many O2G REST API methods.
It corresponds to the QMCDU of the OXE subscriber prefixed by "oxe" (Ex: oxe70120).
This is true regardless of the login used by the authentication mechanism.
History
2.7.4
- added feature 'Authentication'
- modified feature 'Session management'
- added in representation 'SessionInfo' :
- added in representation 'SessionRequest' :
- modified feature 'Call control'
- added in representation 'CallData' :
- modified feature 'Communication log'
- added in representation 'ComHistoryRecord' :
- holdDuration
- transferredBy
- associatedData
- added in representation 'Participant' :
- modified feature 'Call Center Management'
- added methods :
- Get advanced pilot information
- added feature 'Call Center Real Time'
- added feature 'Call Center Statistics'
2.7.3
- added feature 'User Management'
- modified feature 'Call control'
- added in representation 'Identifier' :
- modified feature 'Maintenance'
- added in representation 'DRLink' :
- added in representation 'SystemStatus' :
- modified feature 'Call Center Agent'
- added methods :
- Cancel Agent Permanent listening
- added in representation 'IntrusionMode' :
2.7.2
- modified feature 'Call control'
- added in representation 'DeviceState' :
- modified feature 'Call Center Pilot'
- added methods :
- MonitorStart pilot
- MonitorStop pilot
- added in notification 'OnPilotCallCreated' :
2.7.1
- modified feature 'Call control'
- added in representation 'CallData' :
2.7
- modified feature 'Session management'
- added in representation 'SessionInfo' :
- creationDate
- otherSessions
- modified feature 'User information'
- added in representation 'User' :
- modified feature 'User Management'
- added in representation 'User' :
- modified feature 'Call control'
- added methods :
- Get pilot transfer information
- modified feature 'Maintenance'
- modified feature 'Call Center Agent'
- added feature 'Call Center Management'
- added feature 'Call Center Pilot'
Change logs
Complete changes history can be found here.
Authentication mechanism
All resources are protected by the authentication mechanism.
A dedicated resource is provided to perform user/administrator authentication :
http(s)://<host>:<port>/api/rest/authenticate?version=1.0
The first action for an application is to authenticate on O2G.
Authentication is basic HTTPS authentication, based on a login and password.
The first action for an application is to authenticate on O2G.
Authentication for an administrator
Authentication is basic HTTPS authentication, based on a login/password.
- The login is managed in the configuration file
- The password is managed in the configuration file
The credentials (login and password) are first checked to see if they correspond to an O2G administrator.
JWT authentication is implemented to provide an identifier based on credentials.
This identifier must be passed in a cookie (AlcUserId) in all subsequent HTTPS requests, so that O2G can check their validity.
See below a sequence diagram for a Basic authentication.
Example:
Request
GET http://server/api/rest
Response :
200 OK
Content-Type: application/json
{
"versions" : [ {
"id" : "1.0",
"status" : "CURRENT",
"publicUrl" : "https://public-server/api/rest/authenticate?version=1.0",
"internalUrl" : "https://server/api/rest/authenticate?version=1.0"
} ]
}
Request :
GET https://server/api/rest/authenticate?version=1.0
Authorization: Basic aW50ZXJuYWwyOTphbGNhdGVsMjk=
Response :
200 OK
Set-Cookie: AlcUserId=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJpbnRlcm5...; Path=/
Content-Type: application/json
{
"credential" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJpbnRlcm5...",
"publicUrl" : "https://public-server/api/rest/1.0/sessions",
"internalUrl" : "https://server/api/rest/1.0/sessions",
"expired" : "false",
"login": "oxe1000"
}
Authentication for an user : Secure Access
An installer can authorize or deny user authentication.Enable these options through O2G configuration (root account only).
Several options are possible.
- An installer denies user authentication.
In this case, no user can authenticate (no user session).
Only an administrator account must use to perform an action for a user.
- An installer authorizes user authentication by O2G.
In this case, the user authentication is checked by O2G (default mode).
It is a basic HTTPS authentication, based on a login/password.
- The login is the QMCDU of the OXE subscriber prefixed by "oxe" (Ex: oxe70120).
- The password is the Secret Code (4 digits), of the OXE subscriber.
See previous a sequence diagram for a Basic authentication.
- An installer authorizes user authentication by OXE.
This configuration impacts all OXEs managed by O2G :
Each OXE must be configured with a
local authentication or
with a
LDAP authentication (only possible from OXE version N4.507.2).
For a local authentication :
- The login is the Login of the subscriber.
- The password is the Password of the subscriber.
For a LDAP authentication :
- The login is the Login of the subscriber.
- The password is the password of the user defined in the LDAP server.
The authentication request response provides two additional parameters :
First parameter is the O2G login for further request
Second parameter is a optional boolean which indicate if the OXE password is expired or not.
If this boolean is true, the password provided must be quickly changed using the proper API request
⚠ An expired password can quickly leads to authentication failure
Note : For OXE LDAP authentication, the login is the Login of the subscriber must be the same of the user defined in the LDAP server.
O2G checks the consistency between the LDAP login and the OXE subscriber login.
Session creation
All services are invoked through a session (user or administrator one).
The resource to perform user/administrator session creation is:
http(s)://<host>:<port>/api/rest/1.0/sessions
The session creation request and all the subsequent requests must contain the Cookie AlcUserId with value equals to the one received in the Set-Cookie of the authentication response.
Important: all the sessions are created with an initial time-to-leave of 1800 seconds (30 minutes): To see how to maintain the session, refer to SESSION MANAGEMENT chapter.
Example:
Request
POST /api/rest/1.0/sessions HTTP/1.1
Content-Type: application/json
Host: (server address)
Cookie: AlcUserId=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJpbnRlcm5...
...
{
[body] : refer to Session Management section
}
Response :
200 OK
Server: Apache/2.4.23
Set-Cookie: JSESSIONID=88C00EA2B3C482E19825F1184D0BB50E.tomcat; Path=/api
Content-Type: application/json
{
"timeToLive": 1800,
"publicBaseUrl": "http://public-server/api/rest/1.0",
"privateBaseUrl": "https://server/api/rest/1.0",
"services": [
{...
O2G Services Through Websocket
O2G REST service may be used through a websocket. This configuration could be interesting in a context where the security must be improved or if
the opening of http ports on the local domain is considerd as an issue.
The solution is to use a reverse HTTP proxy over web socket. The aim is to provide a secure connection setup from the internal network to the external network
in order to tunnel the API requests to internal O2G APIs from the external third party client.
A Web Socket agent run in the internal network (in front end of O2G API) establishes a single connection to a remote Web Socket server in secure mode.
The Web socket agent is included in the O2G solution and may be configured thanks to the O2G configuration tool.
The web socket server side is not handled by O2G solution and it remains to the client to provide it.
A json formatted message protocol is used in the websocket to translate the http REST requests and responses.
In the same manner, the events the client has subcribed to are sent back by O2G through this socket towards the application.
Moreover, an identifier may used as query parameter in the subscription request: in that manner, the events correponding to this susbscription will be automatically
sent to the client through the web socket with this identifier (no need to open a chunk channel).
Here is the Ws protocol map:
Example of request/response for authentication through WS protocol:
Example of request/response for subscription through WS protocol:
Example of event through WS protocol:
Error management
Management of errors returned by REST services invocation follows the common practise which consists of providing as much information as possible to the user.
The returned information structure contains several fields, targetting all possible users of the API: see
RestErrorInfo
The complete list of REST API errors is the following:
type | code | helpMessage | canRetry |
NOT_READY | 1000 | The server is not yet available. Please retry later if the initialization is not finished. | true |
INVALID_SESSION | 1001 | No valid session found for the given identifier. Please logout and login with correct credentials. | true |
NOT_ALLOWED | 1002 | The operation is not allowed, because of insufficient rights or bad credential. Please contact the installer to fix the problem. | false |
NOT_FOUND | 1003 | Missing or bad parameter sent by a request on a service. Fix the problem and retry. | true |
NOT_EXPECTED | 1004 | The request can not be performed due to current user's state.Check the state or fix your request before sending it back. | true |
NOT_SUPPORTED | 1005 | This operation is not supported. Please check the documentation. | false |
BAD_PARAMETER | 1006 | Request parameters are not correct. Please fix the problem and send the request back. | true |
SERVER_PROBLEM | 1007 | Server general problem. Please contact the installer to fix the problem. | false |
Example 1: The service in charge of executing the invoked request is not installed, or the server is not properly configured.
{
"httpStatus":"SERVICE_UNAVAILABLE",
"code":1007,
"helpMessage":"Server general problem. Please contact the installer to fix the problem.",
"type":"SERVER_PROBLEM",
"innerMessage":"AlcChameleonException.PLUGIN_NOT_INSTALLED 'PLUGIN_NAME' plugin is not installed",
"canRetry":false
}
Example 2: Invalid session. The application has to log out, if previously logged in, and retry to log in.
{
"httpStatus":"FORBIDDEN",
"code":1001,
"helpMessage":"No valid session found for the given identifier. Please logout and login with correct credentials.",
"type":"INVALID_SESSION",
"innerMessage":"AlcChameleonException.BAD_FRAMEWORK_SESSION_IDENTIFIER No framework session in API with this ID : ...323437343",
"canRetry":true
}
High Availability (HA)
The HA solution is based on the redundancy of the server in a Primary/Secondary server pair.
Licenses :
Required in CAPEX mode (FlexLM server): ROXE_HA - true.
Required in OPEX mode (LMS server): No license required (free).
Client code samples
Representations
boolean'boolean' is a data type, having two values (true and false).
DestinationTypeLists the different types of a destination.
Value | Description |
---|
OFFICE | Destination is office device(deprecated). |
MOBILE | Destination is mobile device(deprecated). |
VOICEMAIL | Destination is the voice mail of the user. |
NUMBER | Destination is a number.
Used in forward routes. |
UNKNOWN | Unknown destination type. |
HttpStatusint'int' is a 32-bit number (-2147483648 to 2147483647).
ProductVersionGive information about the version installed on the server.
Name | Type | Cardinality | Description |
---|
major | string | [0..1] | Major version of the product.
This field should help to identify the release of a product. |
minor | string | [0..1] | Minor revision of the product.
This field is for internal needs. |
RestErrorInfoContains all information from errors sent while invoking REST operations on resources.
Name | Type | Cardinality | Description |
---|
httpStatus | HttpStatus | [0..1] | The HTTP status. |
code | int | [0..1] | A REST API error code, linked with the above type, to help the user's application to quickly differentiate possible errors. |
helpMessage | string | [0..1] | A help message, associated with the above type and code, providing a more detailed cause of the error. |
type | string | [0..1] | A REST API error type, which group all possible underlying errors in a finite number of possibilities. |
innerMessage | string | [0..1] | This message contains relevant information to help an administrator or support team to find the cause of the problem. |
canRetry | boolean | [0..1] | An indication for the developer of the application if the error can be solved by modifying the request, or if it is a problem on server side. |
routing | RoutingErrorInfo | [0..1] | Extra details if errors are generated by a routing service request. |
telephony | TelephonyErrorInfo | [0..1] | Extra details if errors are generated by a telephony service request. |
userPreferences | UserPreferencesErrorInfo | [0..1] | Extra details if errors are generated by a userPreferences service request. |
[+] : JSON Example{
"httpStatus": "CONTINUE | SWITCHING_PROTOCOLS | PROCESSING | OK | CREATED | ACCEPTED | ...",
"code": int,
"helpMessage": "string",
"type": "string",
"innerMessage": "string",
"canRetry": boolean,
"routing": {
"errorType": "UNKNOWN | BAD_PARAMETER_VALUE | UNAUTHORIZED | INVALID_OPERATION | ...",
"destinationType": "OFFICE | MOBILE | VOICEMAIL | NUMBER | UNKNOWN",
"errorCause": "UNKNOWN | BAD_PHONE_NUMBER_FORMAT | INVALID_CURRENT_DEVICE | ...",
"message": "string"
},
"telephony": {
"errorType": "UNKNOWN | CALL_REFERENCE_NOT_FOUND | LEG_NOT_FOUND | BAD_PARAMETER_VALUE | ...",
"errorCause": "UNKNOWN | INVALID_CALLING | INVALID_DESTINATION | INVALID_CALL_ID | ...",
"message": "string"
},
"userPreferences": {
"errorType": "UNKNOWN | WRONG_VALUE | WRONG_NUMBER_FORMAT",
"parameter": "GUI_LANGUAGE"
}
} |
RoutingErrorCauseLists the different routing error causes.
Value | Description |
---|
UNKNOWN | Unknown routing error cause. |
BAD_PHONE_NUMBER_FORMAT | The phone number does not comply with formating rules.
Examples:
- The phone number does not respect the following regular expression: [+]?[0-9A-D*#\\(\\) ]{1,49}
- The nomadic OTHER number must be canonical.
|
INVALID_CURRENT_DEVICE | The given device number as current device is not valid.
Examples:
- The device is not in an acceptable state to be used (e.g. not registered).
|
INVALID_FORWARD_ROUTE | The given forward route is not valid.
Examples:
- More than 1 forward route is specified.
- The forwarded destination type is not one of USER / VOICEMAIL / NUMBER for a STANDARD user.
- The forwarded destination is not acceptable.
- A loop in the forward chain has been detected.
|
INVALID_OVERFLOW_ROUTE | The given overflow route is not valid.
Examples:
- More than 1 overflow route is specified.
- The overflow type is not specified.
- The overflow destination type is not one of VOICEMAIL / ASSOCIATE for a STANDARD user.
- The overflow destination is not acceptable.
|
NULL_OR_EMPTY_PARAMETER | Parameter must not be null nor empty. |
NULL_PARAMETER | Parameter must not be null. |
UNAUTHORIZED_CANCEL_OVERFLOW | Cancel overflow has been rejected because of barring rules. |
UNAUTHORIZED_NOT_A_USER | The destination type is set to USER, but the number does not correspond to a user. |
UNAUTHORIZED_OVERFLOW | Overflow has been rejected because of barring rules. |
UNAUTHORIZED_PHONE_NUMBER | The given phone number is unauthorized.
Examples:
- Barring as rejected the number in OTHER destination.
- The user set his own number in an overflow route.
- The destination can not be a service number.
- The destination is a voicemail, but user has no rights to use it.
- The destination is one of the user's device.
|
RoutingErrorInfoComplementary information for routing errors.
Name | Type | Cardinality | Description |
---|
errorType | RoutingErrorType | [0..1] | The routing error type. |
destinationType | DestinationType | [0..1] | The routing destination for which the error occurred. |
errorCause | RoutingErrorCause | [0..1] | The probable routing error cause. |
message | string | [0..1] | An additional textual error information provided by the routing service. |
[+] : JSON Example{
"errorType": "UNKNOWN | BAD_PARAMETER_VALUE | UNAUTHORIZED | INVALID_OPERATION | ...",
"destinationType": "OFFICE | MOBILE | VOICEMAIL | NUMBER | UNKNOWN",
"errorCause": "UNKNOWN | BAD_PHONE_NUMBER_FORMAT | INVALID_CURRENT_DEVICE | ...",
"message": "string"
} |
RoutingErrorTypeLists the different routing error types.
Value | Description |
---|
UNKNOWN | Unknown routing error. |
BAD_PARAMETER_VALUE | The routing service has rejected the request for a bad or missing parameter reason. |
UNAUTHORIZED | Routing service request has been rejected because of limitation configured on the concerned user.
Examples:
- Overflow on busy is not allowed (barring limitation).
- Cancel overflow is not allowed: (barring limitation).
- Phone number to OTHER destination is not authorized (dial plan limitation).
|
INVALID_OPERATION | Requested operation is not supported by the routing service. |
INCOMPLETE_PHONE_NUMBER | The provided phone number can not be fully resolved in the current dial plan.
Example:
- Setting route with a destination type OTHER, containing a partially matching number (e.g. 3253 instead of 32535).
|
UNKNOWN_PHONE_NUMBER | The provided phone number can not be resolved in the current dial plan.
Example:
- Setting route with a destination type NUMBER, containing an unknown number.
|
RoxeRestApiDescriptorHigh level information of the server and supported REST API versions.
Name | Type | Cardinality | Description |
---|
serverInfo | ServerInfo | [0..1] | Provide extra information about the server hosting the REST API. |
versions | Version | [1..*] | List of the versions supported on the server. |
custoFeatures | string | [0..*] | List of customized feature (informative) added on the server. |
ServerInfoProvide information on the server.
Name | Type | Cardinality | Description |
---|
productName | string | [1] | Friendly description of the product. |
productType | string | [1] | Short name of the product. |
productVersion | ProductVersion | [0..1] | Version of the product. |
haMode | boolean | [0..1] | Indicate if the server is in High Availability mode. |
string'string' represents character strings.
TelephonyErrorCauseLists the different telephony error causes.
Value | Description |
---|
UNKNOWN | Unknown telephony error cause. |
INVALID_CALLING | The call server can not process the request because the calling device is not an acceptable one. |
INVALID_DESTINATION | Destination is not a correct number. |
INVALID_CALL_ID | The referenced call identifier is not valid. |
INVALID_CONNECTION_STATE | The current state of the call does not permit |
DEVICE_OUT_OF_SERVICE | The device is not in service. |
INVALID_DEVICE | The device is not in valid. |
INVALID_DEVICE_STATE | The device state is incompatible with the request. |
INVALID_DATA | The data parameter has invalid value. |
RESOURCE_BUSY | The destination is busy. All the user phone lines are already engaged. |
TelephonyErrorInfoComplementary information for telephony errors.
Name | Type | Cardinality | Description |
---|
errorType | TelephonyErrorType | [0..1] | The telephony error type. |
errorCause | TelephonyErrorCause | [0..1] | The probable telephony error cause. |
message | string | [0..1] | An additional textual error information provided by the telephony service. |
[+] : JSON Example{
"errorType": "UNKNOWN | CALL_REFERENCE_NOT_FOUND | LEG_NOT_FOUND | BAD_PARAMETER_VALUE | ...",
"errorCause": "UNKNOWN | INVALID_CALLING | INVALID_DESTINATION | INVALID_CALL_ID | ...",
"message": "string"
} |
TelephonyErrorTypeLists the different telephony error types.
Value | Description |
---|
UNKNOWN | Unknown telephony error. |
CALL_REFERENCE_NOT_FOUND | Any operations involving an invalid call reference. |
LEG_NOT_FOUND | The telephony service can not execute the request because the leg can not be found.
Examples:
- Recording online requested, but no active leg found.
|
BAD_PARAMETER_VALUE | Some parameters attached to the request are not correct.
Examples:
- A user tried to make a call with some associated data bigger than 32 bytes.
- Dropping an unknown participant from a call.
|
INCOMPATIBLE_WITH_STATE | The telephony service can not execute the request because the current telephony state does not permit such operation.
Examples:
- Merging or transferring call requested but user state with one active call and one held call not found.
|
SERVICE_NOT_PROVIDED | The telephony service can not execute the request because the corresponding service is not provided in this context. |
SERVICE_UNAVAILABLE | The telephony service can not execute the request because it relies on another service which is unavailable.
Examples:
- Redirecting to voicemail is requested, but user has no voicemail.
- Online recording is requested for , but user has no voicemail.
|
INITIALIZATION | The telephony service is starting up and has not finished its initialization. |
UNAUTHORIZED | Telephony service request has been rejected.
Examples:
- The user has already a call ongoing and he has only a BASIC TELEPHONY license.
- The user tried to add one of his device as a call participant.
- The user tried to switch a call to a device not belonging to him.
|
CALL_SERVER_ERROR | Telephony service request failed because of an error generated by the call server.
More details can be provided by the call server TelephonyErrorCause. |
REQUEST_TIMEOUT | An operation invoked on the telephony service has exceeded the expected response timeout (default 5 seconds). |
MAX_RESOURCES_EXCEEDED | The maximum resource number is exceeded by the request. |
UserPreferencesErrorInfoComplementary information for userPreferences errors.
[+] : JSON Example{
"errorType": "UNKNOWN | WRONG_VALUE | WRONG_NUMBER_FORMAT",
"parameter": "GUI_LANGUAGE"
} |
UserPreferencesErrorTypeDTOValue | Description |
---|
UNKNOWN | Unexpected error |
WRONG_VALUE | Value not expected |
WRONG_NUMBER_FORMAT | Wrong number format |
UserPreferencesParameterDTOValue | Description |
---|
GUI_LANGUAGE | User GUI language |
VersionName | Type | Cardinality | Description |
---|
id | string | [1] | Identifier of the version (e.g. '1.0'). |
status | string | [1] | Status of the given version. 'CURRENT' means this is the latest version on the server. |
publicUrl | string | [1] | Authentication URL to use from public (i.e. internet) access. |
internalUrl | string | [1] | Authentication URL to use from private (i.e. intranet) access. |
Authentication
Presentation
The Authentication service allows a user or an administrator to authenticate on the O2G server.
This is a prerequisite to create a session.
All resources are protected by the authentication mechanism.
A dedicated resource is provided to perform user/administrator authentication :
http(s)://<host>:<port>/api/rest/authenticate?version=1.0
The first action for an application is to authenticate on O2G.
Authentication is basic HTTPS authentication, based on a login and password.
The first action for an application is to authenticate on O2G.
Authentication is basic HTTPS authentication, based on a login/password.
Authentication for an administrator
- The login is managed in the configuration file
- The password is managed in the configuration file
Authentication for an user : Secure Access
An installer can authorize or deny user authentication.Enable these options through O2G configuration (root account only).
Several options are possible.
- An installer denies user authentication.
In this case, no user can authenticate (no user session).
Only an administrator account must use to perform an action for a user.
- An installer authorizes user authentication by O2G.
In this case, the user authentication is checked by O2G (default mode).
It is a basic HTTPS authentication, based on a login/password.
- The login is the QMCDU of the OXE subscriber prefixed by "oxe" (Ex: oxe70120).
- The password is the Secret Code (4 digits), of the OXE subscriber.
- An installer authorizes user authentication by OXE.
This configuration impacts all OXEs managed by O2G :
Each OXE must be configured with a
local authentication or
with a
LDAP authentication (only possible from OXE version N4.507.2).
For a local authentication :
- The login is the Login of the subscriber.
- The password is the Password of the subscriber.
For a LDAP authentication :
- The login is the Login of the subscriber.
- The password is the password of the user defined in the LDAP server.
The authentication request response provides two additional parameters :
First parameter is the O2G login for further request
Second parameter is a optional boolean which indicate if the OXE password is expired or not.
If this boolean is true, the password provided must be quickly changed using the proper API request
⚠ An expired password can quickly leads to authentication failure
Note : For OXE LDAP authentication, the login is the Login of the subscriber must be the same of the user defined in the LDAP server.
O2G checks the consistency between the LDAP login and the OXE subscriber login.
JWT authentication is implemented to provide an identifier based on credentials: it is returned in the Set-Cookie header as the AlcUserId:
Set-Cookie: AlcUserId=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJpbnRlcm5...;
This identifier must be passed in a in all subsequent HTTPS requests in the cookie header:
Cookie: AlcUserId=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJpbnRlcm5...;
History
Since version 2.7.4
Resource summary
Resource
/authenticate
Methods
Ask request authentication.
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
query parametersparameter | type | description |
---|
version | string | : This parameter is mandatory and MUST be set with 1.0 |
Response
code | type | media types | description |
---|
200 | AuthenticationResponse | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Authentication of a user
request :GET https://server/api/rest/authenticate?version=1.0
Authorization: Basic aW50ZXJuYWwyOTphbGNhdGVsMjk=
response :200 OK
Set-Cookie: AlcUserId=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJpbnRlcm5...; Path=/
Content-Type: application/json
{
"credential" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJpbnRlcm5...",
"publicUrl" : "https://public-server/api/rest/1.0/sessions",
"internalUrl" : "https://server/api/rest/1.0/sessions"
}
Representations
AuthenticationResponseThe authentication response containing credential and URLs to access the Openness REST API.
Name | Type | Cardinality | Description |
---|
credential | string | [1] | The token returned by the authentication mechanism. |
publicUrl | string | [1] | The public URL of the session resource(to be used in the case a reverse proxy has been set up). |
internalUrl | string | [1] | The private URL of the session resource(to be used inside the company). |
loginName | string | [0..1] | Since version 2.7.4 The login name needed to be used after authentication for O2G mechanism. |
expired | boolean | [0..1] | Since version 2.7.4 The boolean which asses if the password filled for authentication is expired or not. |
Associated method :
boolean'boolean' is a data type, having two values (true and false).
string'string' represents character strings.
Session management
Presentation
The Session service allows a user or an administrator to open a session on the O2G server.
This is a prerequisite to any service usage and must happened after the authentication stage.
A session is created with an initial time-to-leave of
1800 seconds (30 minutes)
: the application is responsible to keep the session alive
by posting /sessions/keepalive request or other requests before each expiration of the timer. The TTL of the session is re-initialized on each request.
If the TTL expires, the session is closed by the server.
Resources summary
Resources
/sessions
Methods
Gets information of the opened session.
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | SessionInfo | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Open a session for a user or an administrator. This is the first thing to do
before invoking any others resources. The user or the administrator session is identified by its authentication cookie.
This one must be provided for the session creation request to the server. This authentication key is obtained after a successful authentication
(See
Authentication mechanism chapter)
A session can be opened only once (same authentication cookie), if the session is already open an error is returned (Forbidden).
(With different authentication cookies, one user may open several sessions.
In each case, the obtained reference to the Session must be
released using the logout operation (DELETE).
The Session is closed either after the reference has been released (after
a call to the DELETE operation) or after the session timer ends.
3 types of Sessions exist:
- User Session:
The credential (cookie) used to open the session, is the one of a
User. In case of success, this credential will be used to
identify the Session and the User. This Session allows a User to use any
other service.
- Administrator Session:
The credential (cookie) used to open the session, is the one of a
Administrator. In case of success, this credential will be used
to identify the Session and the Administrator. This
Session allows a Administrator to use any other services.
A Administrator Session can also be used by an
Application (as an Application account) to supervise several Users in a same Session.
Such a session allows an Application to use the User oriented services.
-
Supervised Session:
This kind of Session is opened thanks to the supervisor
operation. This operation uses the credential of a Administrator
(with supervisor role) and the identification of a User or another
Administrator (login name, phone number or e-mail) to open the Session.
In case of success, this credential will be used in all subsequent requests,
to identify the Session, and the supervised User or Administrator.
After the session opening, a Supervised Session can be used like a
User Session or a Administrator Session (described
above). In other words, this Session allows a Supervisor to use
any other services
as if it was opened by the User or Administrator.
Detail of the "applicationName" field : A session may be opened with:
- a simple application name which is only useful for logging or statistic purpose
- an encrypted bypass token given including a list of authorized services with a limited usage date. In this case, no license is
taken at service request; furthermore, the response to the session creation returns the expiration date of the bypass token.
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
body parametertype | media types | description |
---|
SessionRequest | application/json
| This element is used to open a Session. |
Response
code | type | media types | description |
---|
200 | SessionInfo | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Creation of a user session
request :POST https://server/api/rest/1.0/sessions
Content-Type: application/json
{
"applicationName":"TESTS_API"
}
response :200 OK
Content-Type: application/json
{
"timeToLive": 1800,
"publicBaseUrl": "http://public-server/api/rest/1.0",
"privateBaseUrl": "https://server/api/rest/1.0",
"services": [
{
"serviceName": "Users",
"serviceVersion": "1.0",
"relativeUrl": "/users"
},
{
"serviceName": "Telephony",
"serviceVersion": "1.0",
"relativeUrl": "/telephony/calls"
},
{
"serviceName": "Logins",
"serviceVersion": "1.0",
"relativeUrl": "/logins"
},
{
"serviceName": "Devices",
"serviceVersion": "1.0",
"relativeUrl": "/telephony/devices"
},
{
"serviceName": "State",
"serviceVersion": "1.0",
"relativeUrl": "/telephony/state"
},
{
"serviceName": "Directory",
"serviceVersion": "1.0",
"relativeUrl": "/directory"
},
{
"serviceName": "EventSummary",
"serviceVersion": "1.0",
"relativeUrl": "/eventSummary"
},
{
"serviceName": "Routing",
"serviceVersion": "1.0",
"relativeUrl": "/routing"
},
{
"serviceName": "Subscriptions",
"serviceVersion": "1.0",
"relativeUrl": "/subscriptions"
},
{
"serviceName": "Comlog",
"serviceVersion": "1.0",
"relativeUrl": "/comlog/records"
}
]
}
[+] : Creation of an administrator session
request :POST https://server/api/rest/1.0/sessions
Content-Type: application/json
{
"applicationName":"TESTS_API"
}
response :200 OK
Content-Type: application/json
{
"admin": true,
"timeToLive":"1800",
"publicBaseUrl":"https://public-server/api/rest/1.0",
"privateBaseUrl":"https://server/api/rest/1.0",
"Services":
[
{
"serviceName":"Users",
"serviceVersion":"1.0",
"relativeUrl":"/logins"
},
.....
{
"serviceName":"Telephony",
"serviceVersion":"1.0",
"relativeUrl":"/telephony/calls"
}
]
}
[+] : Creation of a supervised user session
request :POST https://server/api/rest/1.0/sessions
Content-Type: application/json
{
"applicationName":"TESTS_API",
"supervisedAccount":
{
"id":"oxe70020",
"type":"LOGIN_NAME"
}
}
response :200 OK
Content-Type: application/json
{
"timeToLive":"1800",
"publicBaseUrl":"https://public-server/api/rest/1.0",
"privateBaseUrl":"https://server/api/rest/1.0",
"Services":
[
{
"serviceName":"Users",
"serviceVersion":"1.0",
"relativeUrl":"/logins"
},
.....
{
"serviceName":"Telephony",
"serviceVersion":"1.0",
"relativeUrl":"/telephony/calls"
}
]
}
[+] : Creation of a session with a token
request :POST https://server/api/rest/1.0/sessions
Content-Type: application/json
{
"applicationName":"[clear part]f80fumpxLtf71YqxWNcu6PyW+1PvPTq2sZeR+Z+8c9IAgu7KkIhfAEIgpXx+ADbhM..."
}
response :200 OK
Content-Type: application/json
{
"timeToLive":"1800",
"publicBaseUrl":"https://public-server/api/rest/1.0",
"privateBaseUrl":"https://server/api/rest/1.0",
"Services":
[
{
"serviceName":"Users",
"serviceVersion":"1.0",
"relativeUrl":"/logins"
},
.....
{
"serviceName":"Telephony",
"serviceVersion":"1.0",
"relativeUrl":"/telephony/calls"
}
],"expirationDate":"2018-12-07"
}
[+] : Creation of an administrator session, 2 other sessions already exist on this user: the result returns the identifiers of each.
request :POST https://server/api/rest/1.0/sessions
Content-Type: application/json
{
"applicationName":"TESTS_API"
}
response :200 OK
Content-Type: application/json
{
"admin": true,
"timeToLive":"1800",
"publicBaseUrl":"https://public-server/api/rest/1.0",
"privateBaseUrl":"https://server/api/rest/1.0",
"Services":
[
{
"serviceName":"Users",
"serviceVersion":"1.0",
"relativeUrl":"/logins"
},
.....
{
"serviceName":"Telephony",
"serviceVersion":"1.0",
"relativeUrl":"/telephony/calls"
}
],
"creationDate": "2023-08-07T14:13:36Z",
"otherSessions": [
{
"sessionId": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJpbnRlcm5hbDI5IiwiaWF0IjoxNjkxNDE1OTYxfQ.CfGGFrfNuy46spQww6mw_bd6wqaRdpetPXHGZheKUi8",
"creationDate": "2023-08-07T13:46:14Z",
"timeToLive": 1426
},
{
"sessionId": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJpbnRlcm5hbDI5IiwiaWF0IjoxNjkxNDEyNTU0fQ.TmVCsB6goObhgoZ9evDe9X1SNFnNOV5PVYiIwOTQ_X0",
"creationDate": "2023-08-07T13:29:21Z",
"timeToLive": 1607
}
]
}
Closes a Session.
When the Session is closed (following the call to this operation or due to a session time out),
all license references are released and all services sessions are closed.
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content (The session is closed) |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden (The session is already closed) |
500 | application/json
| Internal Server Error (The session doesn't exist) |
503 | application/json
| Service Unavailable |
/sessions/keepalive
Methods
Restarts the session timer.
To keep the session open, if there is no request before session timeout.
Each Session is limited in time.
The initial duration of a session is fixed to 30 minutes(1800 secs).
Each time a Session is used(using this method or any one else), the session timer is automatically restarted.
In case a secure token has been used to create the session, its expiration date will be returned.
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | SessionTokenInfo | application/json
| OK (in case a secure token has been used to create the session)} |
204 | | application/json
| No Content (The session timer has been correctly refreshed) |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden (The session doesn't exist) |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : KeepaLive of a session with a token
request :POST https://server/api/rest/1.0/sessions/keepalive
response :204 No Content
Representations
boolean'boolean' is a data type, having two values (true and false).
int'int' is a 32-bit number (-2147483648 to 2147483647).
ServiceThis value contains all available information about a local service.
Name | Type | Cardinality | Description |
---|
serviceName | string | [1] | This value contains the name of the service. |
serviceVersion | string | [0..1] | This value contains the version of the service, which allows an application to check its compatibility with the service. |
relativeUrl | string | [1] | This value contains the relative URL of the service, which allows a consumer to access it. |
SessionInfoSession information.
Name | Type | Cardinality | Description |
---|
admin | boolean | [0..1] | Indicate if the session has been opened by an administrator. |
login | string | [0..1] | Since version 2.7.4 the roxe login of the user. |
timeToLive | int | [0..1] | The TTL time-out applied on the Session in seconds. |
publicBaseUrl | string | [0..1] | This value contains the public base URL which must be used by a consumer
to access services from the Internet. |
privateBaseUrl | string | [1] | This value contains the private base URL of the service, which must be
used by a consumer to access services from a local network. |
services | Service | [0..*] | All information available about the local services provided by public API
for the current user. |
creationDate | string | [0..1] | Since version 2.7 when this session has been created |
expirationDate | string | [0..1] | in case of secured token used to create the session, the expiration date
of the token |
otherSessions | UserSession | [0..*] | Since version 2.7 List of all previous sessions opened by this user and still alive. |
[+] : JSON Example{
"admin": boolean,
"login": "string",
"timeToLive": int,
"publicBaseUrl": "string",
"privateBaseUrl": "string",
"services": [ {
"serviceName": "string",
"serviceVersion": "string",
"relativeUrl": "string"
} ],
"creationDate": "string",
"expirationDate": "string",
"otherSessions": [ {
"sessionId": "string",
"creationDate": "string",
"timeToLive": int
} ]
} |
Associated methods :
SessionRequestThis element is used to open a
Session.
Name | Type | Cardinality | Description |
---|
applicationName | string | [1] | Application name corresponds either to a simple identifier which is only useful for logging or statistic purpose or
an encrypted token including a list of authorized services with a limited usage date (in this last case, no license is taken). |
applicationAddress | string | [0..1] | Application address. |
supervisedAccount | SupervisedAccount | [0..1] | Identifier used to retrieve the supervised user (Administrator authentication but user session). |
timeToLive | int | [0..1] | Since version 2.7.4 Time to live in seconds for this session: default value depends on O2G configuration |
[+] : JSON Example{
"applicationName": "string",
"applicationAddress": "string",
"supervisedAccount": {
"id": "string",
"type": "LOGIN_NAME | PHONE_NUMBER"
},
"timeToLive": int
} |
Associated method :
SessionTokenInfoSession information on Keep alive when a secured token is used
Name | Type | Cardinality | Description |
---|
expirationDate | string | [0..1] | in case of secured token used to create the session, the expiration date
of the token |
[+] : JSON Example{
"expirationDate": "string"
} |
Associated method :
string'string' represents character strings.
SupervisedAccountThe supervised user description.
Name | Type | Cardinality | Description |
---|
id | string | [1] | The identifier itself. The type of this value is given by the SupervisedAccountType attribute. |
type | SupervisedAccountType | [1] | Gives the type of the identifier. |
[+] : JSON Example{
"id": "string",
"type": "LOGIN_NAME | PHONE_NUMBER"
} |
SupervisedAccountTypeThe supervised account type values.
Value | Description |
---|
LOGIN_NAME | The identifier is a login name. |
PHONE_NUMBER | The identifier is a phone number. |
UserSessionUser Session information.
Name | Type | Cardinality | Description |
---|
sessionId | string | [0..1] | The session identifier |
creationDate | string | [0..1] | The creation date of this session |
timeToLive | int | [0..1] | The residual TTL of the Session in seconds. The value 0 indicates that
the session duration is finished and will be soon disappear, but the Thread
which purges the sessions has not yet been triggered (It is triggered every 5
minutes). |
User information
Presentation
The User service allows
- an administrator to retrieve the list of O2G users.
- a user to get information on another user account.
- a user to change its password or some parameter like supported language.
Resources summary
Notifications summary
Notification | Description |
---|
OnUserCreated |
This event is sent on creation of an user (only for administrator). |
OnUserDeleted |
This event is sent when user is deleted (only for administrator). |
OnUserInfoChanged | This event is sent on any change on the user's data. |
Resources
/logins
Methods
An administrator can get the list of the users (login name).
For a user, only personal information (login name) is returned.
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
query parametersparameter | type | description |
---|
nodeIds | string | This parameter is an optional search criterion which allows to select only the users belonging to the given pbx node(s).
The given value must be one OXE nodeId or a comma separated list of nodeId.
(Note: this parameter can only be used by an administrator). |
onlyACD | boolean | This parameter is another optional search criterion which allows to select only the ACD operators (agents or supervisors).
This parameter has no value.
(Note: this parameter can only be used by an administrator). |
onlyWithExtLogin | boolean | This parameter is another optional search criterion which allows to select only users with valid external login.
This parameter has no value.
(Note: this parameter can only be used by an administrator). |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | LoginsResponse | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get information with a user role.
The session was opened by a user.
request :GET https://server/api/rest/1.0/logins
response :200 OK
Content-Type: application/json
{
{"loginNames":["oxe70020"]}
}
[+] : Get all user's logins with an administrator role.
The session was opened by an administrator.
request :GET https://server/api/rest/1.0/logins
response :200 OK
Content-Type: application/json
{
{"loginNames":["oxe70020","oxe70021","oxe70022"]}
}
[+] : Get all user's logins belonging to OXE node 7 or 8.
The session was opened by an administrator.
request :GET https://server/api/rest/1.0/logins?nodeIds=7,8
response :200 OK
Content-Type: application/json
{
{"loginNames":["oxe70020","oxe70021","oxe70022"]}
}
[+] : Get all user's logins corresponding to ACD operators (agents or supervisors)
The session was opened by an administrator.
request :GET https://server/api/rest/1.0/logins?onlyACD
response :200 OK
Content-Type: application/json
{
{"loginNames":["oxe60114","oxe60113","oxe60112"]}
}
[+] : Get all user's logins belonging to OXE node 5 and 7 and corresponding to ACD operators (agents or supervisors)
The session was opened by an administrator.
request :GET https://server/api/rest/1.0/logins?nodeIds=5,7&onlyACD
response :200 OK
Content-Type: application/json
{
{"loginNames":["oxe60114","oxe60113"]}
}
/users
Methods
Find information about a user from a company phone.
This operation provides useful information to the application:
- Name and first name of the user
- User's internal login name
- User's phone number
- User's voicemail information
- User's list of devices
- ...
Remark: only one query parameter can be used at a time. If no query parameter a BAD_REQUEST error will be generated.
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
query parametersparameter | type | description |
---|
companyPhone | string | Company phone of the user to retrieve the account description. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code and, if the code is SUCCESS, information about the concerned user
Usercode | type | media types | description |
---|
200 | User | application/json
| Returns the result code and, if the code is SUCCESS, information about the concerned user User |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get information about another user's account.
request :GET https://server/api/rest/1.0/users?companyPhone=70121
response :200 OK
Content-Type: application/json
{
"companyPhone":"70121",
"firstName":"N70121",
"lastName":"L70121",
"loginName":"oxe70121",
"apiRights":[],"nodeId":"7"
}
/users/{loginName}
Methods
Gets information about a user account.
This operation provides useful information to the application:
- Name and first name of the user
- User's internal login name
- User's phone number
- User's voicemail information
- User's list of devices
- ...
An application should invoke this method just after the open session step to know the user's account description.
A server application which is interested by retrieving data of the user using this method must invoke it only when it is necessary and then cache the result.
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user to retrieve the account description. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code and, if the code is SUCCESS, information about the concerned user
Usercode | type | media types | description |
---|
200 | User | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get information about the user's account for which the session is opened.
request :GET https://server/api/rest/1.0/users/oxe70120
response :200 OK
Content-Type: application/json
{
"companyPhone":"70120",
"firstName":"F70120",
"lastName":"L70120",
"loginName":"oxe70120",
"devices":[{"type":"DESKPHONE","id":"70120","label":"POC","subType":"NOE_C_Color_IP"}],
"apiRights":[],"nodeId":"7"
}
Associated notifications
/users/{loginName}/password
Methods
Change user's password.
This operation allows a user or an administrator to change its password.
Depending on the authentication configuration (see the authentication mechanism description in the Introduction tab), this action may be not possible.
Configuration type |
Action possible |
For an O2G administrator |
Yes : The password is changed in the O2G configuration, and must comply with the O2G password policy. |
For an user : O2G authentication |
Yes : The password corresponds to the Secret Code attribute of the OXE subscriber.
The value is 4 digits, that must respect the OXE password policy. |
For an user : OXE local authentication |
Yes : The password corresponds to the Password attribute of the OXE subscriber.
The value is a string, that must respect the OXE password policy. |
For an user : OXE LDAP authentication |
No |
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user to change the password. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code and
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
/users/{loginName}/preferences
Methods
Gets information about user's preferences.
This operation provides useful information to the application:
Here, the correspondence table of the different languages between OXE and O2G.
OXE language | GUI language |
Arabic_D | ar |
Arabic_FV | ar-fv |
Australian | en-au |
Austrian | de-at |
Bahasa_Malay | id |
Brazilian | br |
Bulgarian | bg |
Canadian_French | fr-ca |
Cantonese | ca-? |
Catalonian | ca |
Croat | hr |
Czech | cs |
Danish | da |
Egyptian_FV | eg-fv |
Egyptian_MV | eg-mv |
English_Africa | en-af |
English_UK | en-gb |
Estonian | et |
Finnish | fi |
Flemish | nl-be |
French | fr |
French_Swiss | fr-ch |
Generic_English | en |
German | de |
German_Swiss | de-ch |
Greek | el |
Hebrew | he |
Holland | nl |
Hungarian | hu |
Icelandic | is |
Irish | ga |
Italian | it |
Italian_Swiss | it-ch |
Japanese | ja |
Korean | ko |
Latvian | lv |
Lithuanian | lt |
Malay | ms |
Mandarin_China | zh |
Mandarin_Taiwan | zh-tw |
Norwegian | no |
Persian | fa |
Polish | pl |
Portuguese | pt |
Rumanian | ro |
Russian | ru |
Slovene | si |
Spanish | es |
Spanish_America | es-us |
Swedish | sv |
Thai | th |
Turkish | tr |
US_English | en-us |
Valenciano | ca-es |
Vietnamese | vi |
Yugoslav | yu |
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user to retrieve the preferences. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code and, if the code is SUCCESS, preferences about the concerned user
UserPreferencescode | type | media types | description |
---|
200 | UserPreferences | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get user's preferences for which the session is opened.
request :GET https://server/api/rest/1.0/users/oxe70020/preferences
response :200 OK
Content-Type: application/json
{
"guiLanguage":"en_GB"
}
Updates information about user's preferences.
This operation provides useful information to the application:
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code.
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : set user's preferences for which the session is opened.
request :POST https://server/api/rest/1.0/users/oxe70020/preferences
Content-Type: application/json
{
"guiLanguage":"en_GB"
}
response :204 No Content
Associated notifications
OnPreferencesChanged
/users/{loginName}/preferences/supportedLanguages
Methods
Gets information about supported languages for user's GUI language preference:
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user to retrieve the supported languages. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code and, if the code is SUCCESS, supported languages about the concerned user
code | type | media types | description |
---|
200 | SupportedLanguages | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get user's supported languages for which the session is opened.
request :GET https://server/api/rest/1.0/users/oxe70020/preferences/supportedLanguages
response :200 OK
Content-Type: application/json
{"supportedLanguages":["fr","en-gb","de","es","pt","it"]}
Representations
ChangePasswordRequestRequest to change password of the user
Name | Type | Cardinality | Description |
---|
oldPassword | string | [1] | Old password |
newPassword | string | [1] | New password |
Associated method :
DeviceDescribe a device.
Name | Type | Cardinality | Description |
---|
type | DeviceType | [0..1] | Device's type. |
id | string | [0..1] | Device identifier which is used to identify the device in telephony requests and events. |
subType | string | [0..1] | Device's subtype :
For a DESKPHONE type, we could have : ANALOG, NOE_C_Color_IP, ... |
[+] : JSON Example{
"type": "DECT | DESKPHONE | MOBILE | SOFTPHONE",
"id": "string",
"subType": "string"
} |
Associated method :
DeviceTypeThe device type values.
Value | Description |
---|
DECT | A wireless phone set used within the enterprise. |
DESKPHONE | A phone set on an office's desk. |
MOBILE | A mobile phone. |
SOFTPHONE | A phone started from a computer with VOIP. |
LoginsResponseThe get logins response.
Name | Type | Cardinality | Description |
---|
loginNames | string | [1..*] | List of logins matching the request. |
[+] : JSON Example{
"loginNames": [ "string" ]
} |
Associated methods :
OnUserCreated
This event is sent on creation of an user (only for administrator).
There is no control on the 'ids' provided in the 'Selector' filter of the subscription filter (subscription done for all users).
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnUserCreated' |
user | User | [1] | The created user object. |
[+] : JSON Example{
"eventName": "string",
"user": {
"companyPhone": "string",
"firstName": "string",
"lastName": "string",
"loginName": "string",
"voicemail": {
"number": "string",
"type": "VM_4635 | VM_4645 | EXTERNAL"
},
"devices": [ {
"type": "DECT | DESKPHONE | MOBILE | SOFTPHONE",
"id": "string",
"subType": "string"
} ],
"nodeId": "string",
"externalLogin": "string"
}
} |
OnUserDeleted
This event is sent when user is deleted (only for administrator).
There is no control on the 'ids' provided in the 'Selector' filter of the subscription filter (subscription done for all users).
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnUserDeleted' |
loginName | string | [1] | The login name of the deleted user. |
OnUserInfoChangedThis event is sent on any change on the user's data.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnUserInfoChanged' |
loginName | string | [0..1] | Login name of the user receiving the event. |
user | User | [1] | The changed user object. |
[+] : JSON Example{
"eventName": "string",
"loginName": "string",
"user": {
"companyPhone": "string",
"firstName": "string",
"lastName": "string",
"loginName": "string",
"voicemail": {
"number": "string",
"type": "VM_4635 | VM_4645 | EXTERNAL"
},
"devices": [ {
"type": "DECT | DESKPHONE | MOBILE | SOFTPHONE",
"id": "string",
"subType": "string"
} ],
"nodeId": "string",
"externalLogin": "string"
}
} |
Associated method :
string'string' represents character strings.
SupportedLanguagesThe get supported languages.
Name | Type | Cardinality | Description |
---|
supportedLanguages | string | [1..*] | List of supported languages. |
supportedGuiLanguages | string | [0..*] | Gets the value of the GUI supported languages list. |
[+] : JSON Example{
"supportedLanguages": [ "string" ],
"supportedGuiLanguages": [ "string" ]
} |
Associated method :
UserThe description of a user
Name | Type | Cardinality | *1 | *2 | Description |
---|
companyPhone | string | [0..1] | | | User's company phone number. |
firstName | string | [0..1] | | | First name of the User or Administrator owner of this Account.
Note: Corresponds to the "UTF8_Phone_Book_First_Name" parameter. If this one is empty, it is the parameter "Annu_First_Name" which is taken into account. |
lastName | string | [0..1] | | | Last name of the User or Administrator owner of this Account.
Note: Corresponds to the "UTF8_Phone_Book_Name" parameter. If this one is empty, it is the parameter "Annu_Name" which is taken into account. |
loginName | string | [0..1] | | | Login name which identifies the User Account. |
voicemail | Voicemail | [0..1] | | | User's voicemail description. |
devices | Device | [0..*] | X | X | User's devices. |
nodeId | string | [0..1] | | | Node Id on which user is attached |
externalLogin | string | [0..1] | | | Since version 2.7 External login of the user if set (only available with oxe > n1.271) |
*1 : attribute only provided if the user is the session's owner or for an administrator session.
*2 : attribute only provided if the user is the session's owner or for an administrator session.
[+] : JSON Example{
"companyPhone": "string",
"firstName": "string",
"lastName": "string",
"loginName": "string",
"voicemail": {
"number": "string",
"type": "VM_4635 | VM_4645 | EXTERNAL"
},
"devices": [ {
"type": "DECT | DESKPHONE | MOBILE | SOFTPHONE",
"id": "string",
"subType": "string"
} ],
"nodeId": "string",
"externalLogin": "string"
} |
Associated methods :
UserPreferencesThe preferences of a user
Name | Type | Cardinality | Description |
---|
guiLanguage | string | [0..1] | GUI Language of the User or the Administrator. |
oxeLanguage | string | [0..1] | OXE Language of the User or the Administrator. |
Associated methods :
VoicemailDescribes user's voicemail.
Name | Type | Cardinality | Description |
---|
number | string | [1] | Voicemail number. |
type | VoicemailType | [1] | Voicemail type. |
[+] : JSON Example{
"number": "string",
"type": "VM_4635 | VM_4645 | EXTERNAL"
} |
VoicemailTypeVoicemail type values
Value | Description |
---|
VM_4635 | Integrated 46x5 voice mail system |
VM_4645 | Integrated 46x5 voice mail system |
EXTERNAL | External voice mail systems |
User Management
Presentation
The User Management service allows an administrator to create/delete/get the O2G users.
O2G allows to create O2G users according to different methods:
- automatically when O2G starts, according to automatic user creation mode (through roxe-config.sh) which be can be:
- ALL : all the OXE subscribers are taken in account without any filter.
- 4980 : only the OXE subscribers with A4980 attribute set with a value different from NO_4980 are taken in account. This is the default mode.
- NONE : no user is automatically created from OXE subscriber.
- through provisioning files. They have to be uploaded, one file per oxe node in /var/data/roxe/userprov/oxe.[nodeNbr], where [nodeNbr] is the unique node number of the oxe.
One or several files respecting this naming may be set.
Example:
- /var/data/roxe/userprov/oxe.5
- /var/data/roxe/userprov/oxe.101
In order to take in account all the subscribers of an oxe, create an empty file.
To define a list of devices to create, the content of the file MUST respect the following format CSV text on one or several lines, each element is:
- a single device_Number
- or a range [first number of the device range]-[size of the range]
Example:
40000-1000,50000-50
60001,60002,60003,70000-10,80000-100
90001,90002
(The subscriber numbers which are not valid are ignored)
- or on demand through this REST service: the service allows to create one user, a list of users or all the users.
The 3 methods may be used together, a user created automatically or by provisioning may also be removed through the REST service.
"All the users" means all the configured oxe Subscribers.
The analog devices (Z) with Ghost feature may also used through O2G but their usage should be restricted to special services like generate a call followed by a blind transfer.
In any cases, there is no persistence: a user created on demand through this service is not kept after a server restart.
(Rem: If a user automatically created by 4980 is removed by API, it will be created again by midnight audit)
History
Since version 2.7.3
Resources summary
Resources
/usermanagement
Methods
Get one or several users loginName.
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
query parametersparameter | type | description |
---|
nodeIds | string | This parameter is an optional search criterion which allows to select only the users belonging to the given pbx node(s).
The given value must be one OXE nodeId or a comma separated list of nodeId.
|
deviceNumber | string | This parameter is an optional search criterion which allows to select only a user by its phone number.
the device number may its main device or one of its secondary devices. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | LoginsResponse | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get all existing O2G user identifiers
request :GET https://server/api/rest/1.0/usermanagement
response :200 OK
Content-Type: application/json
{
{"loginNames":["oxe70020","oxe70021", ...]}
}
[+] : Get all user's identifiers belonging to OXE node 7 or 8.
request :GET https://server/api/rest/1.0/usermanagement?nodeIds=7,8
response :200 OK
Content-Type: application/json
{
{"loginNames":["oxe70020","oxe70021","oxe70022"]}
}
[+] : Get the user identifier corresponding to the secondary device 70124
request :GET https://server/api/rest/1.0/usermanagement?deviceNumber=70124
response :200 OK
Content-Type: application/json
{
{"loginNames":["oxe70123"]}
}
Create and monitor one or several O2G user(s) associated to a pbx Subscriber, giving its(their) device number.
If the oxe user is a multi device, the user may be created with its main number or with any of its secondary device.
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the list of created users only if the request does not concern all the users else return null
code | type | media types | description |
---|
200 | Users | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Create the user 70120 on node 7.
request :POST https://server/api/rest/1.0/usermanagement
{"nodeId":"7","deviceNumbers":["70120"]}
response :200 Ok : the new created user
Content-Type: application/json
{
"companyPhone":"70120",
"firstName":"F70120",
"lastName":"L70120",
"loginName":"oxe70120",
"voicemail": {
"number": "885",
"voicemailtype": "VM_4645"
},
"devices":[{"type":"DESKPHONE","id":"70120","label":"POC","subType":"NOE_C_Color_IP"}],
"nodeId":"7",
"externalLogin":"user70120@my.domain.com"
}
[+] : Create the multi device user 70123 from its tandem device 70124 on node 7.
request :POST https://server/api/rest/1.0/usermanagement
{"nodeId":"7","deviceNumbers":["70124"]}
response :200 Ok : the new created user
Content-Type: application/json
{
"users": [
{
"companyPhone": "70123",
"firstName": "F70123",
"lastName": "L70123",
"loginName": "oxe70123",
"voicemail": {
"number": "885",
"voicemailtype": "VM_4645"
},
"devices": [
{
"type": "DESKPHONE",
"id": "70124",
"subType": "NOE_C_Color_IP"
},
{
"type": "DESKPHONE",
"id": "70125",
"subType": "NOE_C_Color_IP"
},
{
"type": "DESKPHONE",
"id": "70123",
"subType": "NOE_C_Color_IP"
}
],
"nodeId": "7",
"externalLogin": ""
}
]
}
[+] : Create severals users corresponding to the devices: 70120,70121,70122 and 70123 on node 7.
request :POST https://server/api/rest/1.0/usermanagement
{"nodeId":"7","deviceNumbers":["70120",70121,70122,70123]}
response :200 Ok : the new created users
Content-Type: application/json
{
"users": [
{
"companyPhone": "70120",
...
[+] : Create all the users corresponding to node 7.
request :POST https://server/api/rest/1.0/usermanagement
{"nodeId":"7","all":true}
response :200 Ok : the new created users
Content-Type: application/json
{
"users": [
{
"companyPhone": "70120",
...
/usermanagement/{loginName}
Methods
Get information about a user.
This operation provides user information:
- Name and first name of the user
- User's internal login name
- User's phone number
- User's voicemail information
- User's list of devices
- ...
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user to retrieve the account description. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code and, if the code is SUCCESS, information about the concerned user
Usercode | type | media types | description |
---|
200 | User | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get information about a user
request :GET https://server/api/rest/1.0/usermanagement/oxe70120
response :200 OK
Content-Type: application/json
{
"companyPhone":"70120",
"firstName":"F70120",
"lastName":"L70120",
"loginName":"oxe70120",
"devices":[{"type":"DESKPHONE","id":"70120","label":"POC","subType":"NOE_C_Color_IP"}],
"apiRights":[],"nodeId":"7"
}
Remove an O2G user.
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
path parametersparameter | type | description |
---|
loginName | string | loginName of the user to delete |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Remove the user corresponding to the device 1000.
request :DELETE https://server/api/rest/1.0/usermanagement/oxe1000
response :204 No Content
Representations
boolean'boolean' is a data type, having two values (true and false).
DeviceDescribe a device.
Name | Type | Cardinality | Description |
---|
type | DeviceType | [0..1] | Device's type. |
id | string | [0..1] | Device identifier which is used to identify the device in telephony requests and events. |
subType | string | [0..1] | Device's subtype :
For a DESKPHONE type, we could have : ANALOG, NOE_C_Color_IP, ... |
[+] : JSON Example{
"type": "DECT | DESKPHONE | MOBILE | SOFTPHONE",
"id": "string",
"subType": "string"
} |
Associated method :
DeviceTypeThe device type values.
Value | Description |
---|
DECT | A wireless phone set used within the enterprise. |
DESKPHONE | A phone set on an office's desk. |
MOBILE | A mobile phone. |
SOFTPHONE | A phone started from a computer with VOIP. |
int'int' is a 32-bit number (-2147483648 to 2147483647).
LoginsResponseThe get logins response.
Name | Type | Cardinality | Description |
---|
loginNames | string | [1..*] | List of logins matching the request. |
[+] : JSON Example{
"loginNames": [ "string" ]
} |
Associated methods :
string'string' represents character strings.
UserThe description of a user
Name | Type | Cardinality | *1 | *2 | Description |
---|
companyPhone | string | [0..1] | | | User's company phone number. |
firstName | string | [0..1] | | | First name of the User or Administrator owner of this Account.
Note: Corresponds to the "UTF8_Phone_Book_First_Name" parameter. If this one is empty, it is the parameter "Annu_First_Name" which is taken into account. |
lastName | string | [0..1] | | | Last name of the User or Administrator owner of this Account.
Note: Corresponds to the "UTF8_Phone_Book_Name" parameter. If this one is empty, it is the parameter "Annu_Name" which is taken into account. |
loginName | string | [0..1] | | | Login name which identifies the User Account. |
voicemail | Voicemail | [0..1] | | | User's voicemail description. |
devices | Device | [0..*] | X | X | User's devices. |
nodeId | string | [0..1] | | | Node Id on which user is attached |
externalLogin | string | [0..1] | | | Since version 2.7 External login of the user if set (only available with oxe > n1.271) |
*1 : attribute only provided if the user is the session's owner or for an administrator session.
*2 : attribute only provided if the user is the session's owner or for an administrator session.
[+] : JSON Example{
"companyPhone": "string",
"firstName": "string",
"lastName": "string",
"loginName": "string",
"voicemail": {
"number": "string",
"type": "VM_4635 | VM_4645 | EXTERNAL"
},
"devices": [ {
"type": "DECT | DESKPHONE | MOBILE | SOFTPHONE",
"id": "string",
"subType": "string"
} ],
"nodeId": "string",
"externalLogin": "string"
} |
Associated methods :
UserCreateRequestO2G User on demand creation request
Name | Type | Cardinality | Description |
---|
nodeId | int | [1] | Node number. |
deviceNumbers | string | [0..*] | List of device phone number(s). Must be present if the following all parameter is absent or false. |
all | boolean | [0..1] | if all parameter is present with value true, the request is to create all the users corresponding to all the oxe devices.
In this case the previous deviceNumbers list is ignored.
!! The request to create all the users should be reserved to small OXE configuration. |
Associated method :
UsersList of the created users
Name | Type | Cardinality | Description |
---|
users | User | [0..*] | List of users. |
[+] : JSON Example{
"users": [ {
"companyPhone": "string",
"firstName": "string",
"lastName": "string",
"loginName": "string",
"voicemail": {
"number": "string",
"type": "VM_4635 | VM_4645 | EXTERNAL"
},
"devices": [ {
"type": "DECT | DESKPHONE | MOBILE | SOFTPHONE",
"id": "string",
"subType": "string"
} ],
"nodeId": "string",
"externalLogin": "string"
} ]
} |
Associated method :
VoicemailDescribes user's voicemail.
Name | Type | Cardinality | Description |
---|
number | string | [1] | Voicemail number. |
type | VoicemailType | [1] | Voicemail type. |
[+] : JSON Example{
"number": "string",
"type": "VM_4635 | VM_4645 | EXTERNAL"
} |
VoicemailTypeVoicemail type values
Value | Description |
---|
VM_4635 | Integrated 46x5 voice mail system |
VM_4645 | Integrated 46x5 voice mail system |
EXTERNAL | External voice mail systems |
Subscription management
Presentation
Management of all subscription related resources.
Once subscription to events is performed, client should instantiate the
HTTP Chunk notification channel.
To be eligible to event notification, client must fulfill the following conditions:
- Have an opened framework session.
- Have subscribed to the set of events he wants to be notified on.
- Have received an ACCEPTED subscription response from the server.
Subscription to event notification is done by declaring the exact names of the events the client
wants to be notified on. Another possibility is to subscribe to a set of events, grouped per domain.
These sets of events are also called event packages. Supported event packages for API Openness are:
- telephony [OnCallCreated, OnCallModified, OnCallRemoved, OnUserStateModified, OnDeviceStateModified, OnTelephonyState,
OnDynamicStateChanged ]
- eventSummary [OnEventSummaryUpdated]
- unifiedComLog [OnComRecordCreated, OnComRecordModified, OnComRecordsDeleted, OnComRecordsAck, OnComRecordsUnAck]
- user [OnUserInfoChanged]
- userManagement [OnUserCreated, OnUserDeleted, OnUserInfoChanged ]
- routingManagement [OnRoutingStateChanged]
- agent [OnAgentStateChanged, OnSupervisorHelpRequested, OnSupervisorHelpCancelled , OnAgentSkillChanged ]
- rsi [OnRouteRequest,OnRouteEnd,OnToneGeneratedStart,OnToneGeneratedStop,OnDigitCollected]
- pilot [OnPilotCallCreated,OnPilotCallQueued,OnPilotCallRemoved]
- system [ OnLicenseExpiration,OnPbxLoaded,OnCtiLinkDown,OnCtiLinkUp]
- pbxManagement [OnPbxObjectInstanceCreated,OnPbxObjectInstanceModified,OnPbxObjectInstanceDeleted]
- rti [OnAgentRtiChanged,OnPilotRtiChanged,OnPGAgentRtiChanged,OnQueueRtiChanged,OnPGOtherRtiChanged]
- acdstats [OnAcdStatsProgress]
To declare these events or packages in a subscription request, one or several selectors must be used (at least one per event package).
- For pbxManagement and system packages, a selector contains the "names" attribute which is either the event package name or a list of corresponding events. The "ids" attributes MUST be absent.
- For rsi package, no license will be taken. The licenses will be taken upon invoking the methods of this feature. The "ids" are RSI directory numbers.
- For pilot package, no license will be taken. The licenses will be taken upon invoking the methods of this feature. The "ids" are acd pilot object phone numbers.
- For rti package, no license will be taken. The licenses will be taken upon invoking the methods of this feature. The "ids" are acd object (agent, pilot, processing group agent, queue, processing group other) phone numbers.
- For the other packages, a selector MUST contain a list of "ids" (i.e. logins), and either a list of "names" corresponding to one or several event names of the same package or an event package name.
It is not possible to mix event names of different packages inside the same selector: different selectors must be used in such case.
It is possible for an administrator only to subscribe for event for all the users of the system.
In this case, the id has to be replaced by the wildcard "*".
It is highly recommended to use this method instead of giving a huge list of login names (which would penalize the internal system subscription map)
A subscription request includes other fields such as:
- The version of the api (e.g. '1.0'). This is a mandatory parameter, which can be use, for instance, to subscribe to older versions of events.
-
An optional timeout parameter can be set by the client at subscription to indicate whether a timeout shall be established by the server or not.
A timeout is set by the server in following cases:
- timeout parameter is not provided by client. In that case the server sets a 10 minutes default timeout.
- timeout parameter is provided by client with a non-zero value (10 minutes minimum to one hour maximum). In that case the server sets a timeout corresponding to the value provided.
When a timeout value has been set and if no activity is detected during this timeout, the notification chunk (socket) is closed on server side.
It is then up to the client to renew its subscription and reopen the chunk notification channel.
The client can indicate to the server to not establish a timeout by providing a timeout parameter with timeout=0 as value.
In that case, the server establishes and maintains the chunk channel without setting a timeout.
The server sends a keep alive event on the chunk socket to the client every 1 minute (this value can be changed through web.xml) in case of no other activity.
The keep alive event sent by the server is of type: { "eventName": "OnChannelInformation", "text": "keepalive"}.
When webHookUrl is used, the timeout parameter is not applicable and will be ignored if present.
-
An optional webHookUrl (ex: "webHookUrl": "https://172.25.152.114:8091/webHookOTEvent") which specifies the http(s) webHook event call back URL: If specified, the events are sent
on this URL. Each event will be sent through an Http(s) POST request including as Cookie header the subscriptionId and the body containing the event (encoded in JSON oject like in chunk mode).
NB1: the webHook subscription is exclusive with the http chunk mode which must not be used with the same subscription.
NB2: The previous timeout parameter is not applicable in case of webhook: the webHook URL will be considered as valid as long as the subscription is alive.
A subscription response will provide following information to the user:
- Notification mode and format, as a reminder of the request parameters.
- The subscription status, containing the result of the subscription: ACCEPTED if all events or event packages subscription have been accepted,
REFUSED if no subscription can be performed.
- An error message as a hint for refused subscriptions.
- The subscription Id as a key to access the subscription.
- The private and public polling URL for instantiating the HTTP Chunk mode on client side. If public polling URL is specified, it has to be used
(access through reverse proxies).
The following remarks must be taken in consideration while designing a REST client using Http chunk mode:
- Since the subscription and the notification are not sharing the same channel, events are queued if
they occur between subscription and opening of chunk notification channel.
- The client can set a timeout value at the subscription by giving a non zero value (10 minutes minimum to one hour maximum, if no attribute parameter is given, a 10 minutes default value is set): If no activity is detected
during this timeout, the notification chunk (socket) is closed on server side.
It is up to the client to renew its subscription and reopen the chunk notification channel: if the chunk channel is not reopened after one minute, then the subscription is closed.
If the client chooses to not have a timeout by giving explicitely a timeout=0 parameter, a keep-alive event will be sent by the server every minute on the chunk socket in case of no other activity,
in order to detect socket closure.
In any cases (timeout or not), the subscription will be closed after the socket has been detected as closed for one minute.
When webHookUrl is used, the timeout parameter is not applicable and will be ignored if present.
NOTE1: License count check for administrator session.
An administrator can subscribe to event notification concerning a subset of users. Only one license per package will be taken,
but the amount of supervised users can not exceed the number of TELEPHONY_ADVANCED licenses installed on the server.
The following rules apply when checking if the limit is reached or not:
- The counter is increased when a user is part of an administrator's subscription for the first time.
- The counter is decreased when the last administrator's subscription is removed for a given user.
- The whole subscription is refused if the content will make the counter exceed the installed number of licenses.
Resources summary
Resources
/subscriptions
Methods
Create a subscription for event notification.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED or/and ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | The user framework session Identifier, received as a cookie. |
Response
Returns the subscription response (which contains the subscription state).
code | type | media types | description |
---|
200 | Subscription | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Create a subscription to all events of the telephony, eventSummary event packages,
for user userA.
request :POST https://server/api/rest/1.0/subscriptions
Content-Type: application/json
{
"filter": {
"selectors": [
{"ids": [ "userA" ],"names": [ "telephony" ]},
{"ids": [ "userA" ],"names": [ "eventSummary" ]}
]
},
"version":"1.0"
}
response :200 OK
{
"subscriptionId":"...93231353535373132393",
"publicPollingUrl":"https://public.server:8016/OTEvents?subscriptionId=...93231353535373132393",
"privatePollingUrl":"https://server:8016/OTEvents?subscriptionId=...93231353535373132393",
"status":"ACCEPTED",
"mode":"CHUNK", "format":"JSON"
}
[+] : Create a subscription to telephony event packages, for all users of the system.
request :POST https://server/api/rest/1.0/subscriptions
Content-Type: application/json
{
"filter":{"selectors":[
{"ids":["*"],"names":["telephony"],"families":[],"origins":[]}
]
},
"sessionId":"...2303639373638343","version":"1.0",
"timeout":60
}
}
response : [+] : Create a subscription to system event package.
request :POST https://server/api/rest/1.0/subscriptions
Content-Type: application/json
{
"filter": {
"selectors": [
{"names": [ "system" ]}
]
},
"version":"1.0"
}
response : [+] : Create a subscription to pbxManagement event package.
request :POST https://server/api/rest/1.0/subscriptions
Content-Type: application/json
{
"filter": {
"selectors": [
{"names": [ "pbxManagement" ]}
]
},
"version":"1.0"
}
response : [+] : Create a subscription with webhook on https address (and port=8091)
request :POST https://server/api/rest/1.0/subscriptions
Cookie: AlcUserId=eyJhbGciOiJIUzI.....
Content-Type: application/json
{
"filter": {
"selectors": [
{"names": [ "pbxManagement" ]}
]
},
"version":"1.0",
"webHookUrl": "https://[@IP address]:8091/webHookOTEvent"
}
response :POST /webHookOTEvent HTTP/1.1
Cookie: AlcUserId%3DeyJhbGciOiJIUzI...
Content-type: application/json
{"eventName":...
[+] : Create a subscription to pilot and rsi event packages.
request :POST https://server/api/rest/1.0/subscriptions
Content-Type: application/json
{
"filter": {
"selectors": [
{"ids": [ "60141" ],"names": [ "pilot"]},
{"ids": [ "65000" ],"names": [ "rsi"]}
]
},
"version":"1.0"
}
response : Associated notifications
Update an existing subscription for event notification.
Only the filter part
Filter of a subscription can be updated.
The other parameters of a previously created subscription will be left untouched
(notificationMode, notificationFormat,timeout, ...).
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED or/and ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
cookie parametersparameter | type | description |
---|
AlcUserId | string | The user framework session Identifier, received as a cookie. |
body parametertype | media types | description |
---|
Filter | application/json
| The filter to update. Filter |
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Update a subscription for all events of the telephony, eventSummary event packages,
for user userA and userB.
request :PUT https://server/api/rest/1.0/subscriptions
Content-Type: application/json
{
"selectors":[
{"ids":["userA","userB"],"names":["telephony"]},
{"ids":["userA","userB"],"names":["eventSummary"]}
]
}
response :204 No Content
/subscriptions/{subscriptionId}
Methods
Remove a subscription. If the notification of events has started for this subscription (HTTP chunk initiated), the socket will be closed,
and all queued events deleted.
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
path parametersparameter | type | description |
---|
subscriptionId | string | The identifier of the subscription. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | The user framework session Identifier, received as a cookie. |
Response
The result code.
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
Examples
[+] : Delete an existing subscription. Associated notification channel will be closed, if already opened.
request :DELETE https://server/api/rest/1.0/subscriptions/...35373132393
response :204 No Content
Representations
FilterHigh level container of event selector.
Name | Type | Cardinality | Description |
---|
selectors | Selector | [0..*] | List of selectors. |
[+] : JSON Example{
"selectors": [ {
"ids": [ "string" ],
"names": [ "string" ]
} ]
} |
Associated method :
int'int' is a 32-bit number (-2147483648 to 2147483647).
SelectorA selector is a filter applied to an event.
The attributes of an event must match all the criteria of the
selector to be sent to the subscriber.
Name | Type | Cardinality | Description |
---|
ids | string | [0..*] | The selector specifies that all events must contain one of these identifier.
This parameter is not mandatory for a user session, but it is mandatory for an
administrator session (at least one identifier must be provided).
|
names | string | [1..*] | The selector specifies that all events must match this attribute.
The content of this field must match the name of events or one of the event packages, as listed in Subscription overview.
The name can't be empty. |
string'string' represents character strings.
SubscriptionContains the status returned by the server on a subscription request.
Name | Type | Cardinality | Description |
---|
subscriptionId | string | [0..1] | The identifier of the subscription, if this one has been accepted. |
message | string | [0..1] | Contains a relevant message, especially in case of error or failure. |
publicPollingUrl | string | [0..1] | This value contains the public URL to be used in case of HTTP CHUNK notification mode.
If set, public URL must be used because it takes into account access through a reverse proxy (Internet access). |
privatePollingUrl | string | [0..1] | This value contains the private URL to be used in case of HTTP CHUNK notification mode.
This allows access from local network (Intranet access). |
status | SubscriptionState | [1] | Status of the subscription returned by the server. |
[+] : JSON Example{
"subscriptionId": "string",
"message": "string",
"publicPollingUrl": "string",
"privatePollingUrl": "string",
"status": "UNKNOWN | ACCEPTED | REFUSED"
} |
Associated method :
SubscriptionRequestContains all information needed for subscription to event notification.
Name | Type | Cardinality | Default | Description |
---|
filter | Filter | [0..1] | | List of selector used to filter events. |
sessionId | string | [0..1] | | Reserved: DO NOT USE.
|
version | string | [1] | | The version of the events the user wants to subscribe to. |
timeout | int | [0..1] | 10 | Default lifetime of the channel opened between the server and the client.
After that time, in minutes, the server closes the connection in case of no activity.
It is up to the client to reconnect.
Allowed values are 2 minutes and 60 minutes, with an exception for the value 0.
For this special case, the lifetime of the notification channel is not maintained
by the given timeout, but depends on the lifetime of the user's session. A KeepAlive event is sent by the server to maintain the connection. |
webHookUrl | string | [0..1] | | If specified, the events corresponding to this subscription will be sent on this URL by callback |
[+] : JSON Example{
"filter": {
"selectors": [ {
"ids": [ "string" ],
"names": [ "string" ]
} ]
},
"sessionId": "string",
"version": "string",
"timeout": int,
"webHookUrl": "string"
} |
Associated method :
SubscriptionStateDefines the response status of the server on a subscription request.
Value | Description |
---|
UNKNOWN | Subscription state is unknown. |
ACCEPTED | Full subscription has been accepted. |
REFUSED | The subscription has been refused. |
Call control
Presentation
The Telephony service allows a user to initiate a call and to activate pbx telephony services:
- Most of the services concerning the monitored calls are available through /telephony/calls url or telephony/basicCall url.
- Some services are invoked on a device: /telephony/devices
- Some various services for hunting groups, callbacks, miniMessages, pilots.
The service is rejected if :
- the device number is invalid (invalid csta device identifier)
- the device is out of service or its equipment number is out of range (resource out of service)
- the device is not monitored (requesting incompatible with object)
- the device is an analog set in the state : line lock-lout (invalid object state)
Resources summary
Resource | Method | Description |
---|
/telephony/basicCall | POST | Initiates a call to another user (the callee). |
/telephony/basicCall/answer | POST | Responds to the incoming ringing call. |
/telephony/basicCall/dropme | POST | Exits from the call: if the call is a single call, it is released; if it is a conference,
the call carries on without the user. |
/telephony/calls | GET | Get information on all the calls in progress. |
POST | Initiates a new call to another user (the callee). |
/telephony/calls/{callRef} | GET | Returns a description of a call. |
DELETE | Hangs on an active call, all the parties are released. |
/telephony/calls/{callRef}/alternate | POST | Puts on hold the active call and retrieve a call that has been previously put in hold. |
/telephony/calls/{callRef}/answer | POST | Responds to an incoming ringing call. |
/telephony/calls/{callRef}/attachdata | POST | Associates data to a call, following a previously established call. |
/telephony/calls/{callRef}/blindtransfer | POST | Transfers a specified active call to another user, without knowing if this user will answer and
without keeping control on this call. |
/telephony/calls/{callRef}/callback | POST | Requests for call back during a call. |
/telephony/calls/{callRef}/deviceLegs | GET | Returns the legs involved in the call |
/telephony/calls/{callRef}/deviceLegs/{legId} | GET | Returns the leg whose Id is legId |
POST | Translates the call from a user device to another device. |
/telephony/calls/{callRef}/dropme | POST | Exits from an active call: if the call is a single call, it is released; if it is a conference,
the call carries on without the user. |
/telephony/calls/{callRef}/hold | POST | Holds a specified active call. |
/telephony/calls/{callRef}/merge | POST | Makes a n-party conference with a specified active call and a specified held call. |
/telephony/calls/{callRef}/overflowToVoiceMail | POST | Redirects an outgoing ringing call to the voice mail of the called user. |
/telephony/calls/{callRef}/park | POST | Park a specified active call to a target device. |
/telephony/calls/{callRef}/participants | GET | Returns the list of participants in a call. |
/telephony/calls/{callRef}/participants/{participantId} | GET | Returns information about a participant in a call. |
DELETE | Drops a participant from an active call: if the call is a single call, it is released; if it is a conference,
the call carries on without the participant. |
/telephony/calls/{callRef}/reconnect | POST | Release a current call (active or ringing) to retrieve a previously put
in hold call (cancel a consultation call). |
/telephony/calls/{callRef}/recording | POST | Starts, stops, pauses or resumes the recording of a call. |
/telephony/calls/{callRef}/redirect | POST | Redirects an incoming ringing call to another user or number, instead of responding to it. |
/telephony/calls/{callRef}/retrieve | POST | Retrieves a call that has been previously put in hold. |
/telephony/calls/{callRef}/sendDtmf | POST | Sends DTMF in an active call. |
/telephony/calls/{callRef}/sendaccountinfo | POST | Send the account info. |
/telephony/calls/{callRef}/transfer | POST | Transfers a specified active call to a specified held call. |
/telephony/deskSharing | POST | Log the user (DSU) on a specified device (DSS). |
DELETE | Logoff the DSU user. |
/telephony/devices | GET | Gets states of all user devices |
/telephony/devices/{deviceId} | GET | Gets a user device state |
/telephony/devices/{deviceId}/intrusion | POST | Intrusion in the active call of a called user. |
/telephony/devices/{deviceId}/ithmicro | PUT | Push the MICRO/ITH key. |
/telephony/devices/{deviceId}/pickup | POST | Picks up an incoming call on another user. |
/telephony/devices/{deviceId}/unpark | POST | UnPark a call from a target device. |
/telephony/huntingGroupLogOn | GET | Get the user status in its current hunting group: logged on or not |
POST | Log the user in its current hunting group. |
DELETE | Logout the user from its current hunting group. |
/telephony/huntingGroupMember/{hgNumber} | POST | Set the user as member of a Hunting group. |
DELETE | Remove the user from a Hunting group. |
/telephony/huntingGroups | GET | Get the Hunting groups of the node and eventually the current one the user belongs to. |
/telephony/incomingCallbacks | GET | Returns the whole list of callback requests. |
DELETE | Deletes all callback requests. |
/telephony/incomingCallbacks/{callbackId} | DELETE | Deletes a callback request. |
/telephony/miniMessages | GET | Returns the current new message. |
POST | Send a mini message. |
/telephony/outgoingCallbacks | POST | Requests for call back from an idle device. |
/telephony/pilots/{nodeId}/{pilotNumber}/transferInfo | POST | Get information of a pilot related to transfer capability
This method should be used by an agent before transferring a call to a pilot
Return information related to transfer: transfer is /or not possible and transfer is /or not supervised |
/telephony/state | GET | Asks for the user telephonic state and capabilities. |
/telephony/state/snapshot | POST | Ask a snapshot event on user call state. |
Notifications summary
Notification | Description |
---|
OnCallCreated | This notification indicates that a new call has been created. |
OnCallModified | This notification indicates that an existing call has been modified. |
OnCallRemoved | This notification indicates that a call has been removed (hang up, transfer...). |
OnDeviceStateModified | This notification indicates that device's state has been modified. |
OnDynamicStateChanged | This notification indicates the user's dynamic state change. |
OnTelephonyState | This notification indicates the telephonic state (calls[] and deviceCapabilities[]) of a user |
OnUserStateModified | This notification indicates that user's state has been modified (FREE, BUSY ...). |
Resources
/telephony/basicCall
Methods
Initiates a call to another user (the callee).
Also used to initiate a call from any connected set which is not associated to an user.
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
201 | string | application/json
| CREATED |
204 | | application/json
| No Content Only for a call from a connected set which is not associated to an user |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Initiates a call to another user (the callee)
request :POST https://server/api/rest/1.0/telephony/basicCall
Content-Type: application/json
{
"deviceId": "70021",
"callee": "70022",
"autoAnswer": true
}
response :201 Created
Location: http://server/api/rest/1.0/telephony/basicCall/2db0a05647030100
[+] : Initiates a call from any connected set which is not associated to an user.
request :POST https://server/api/rest/1.0/telephony/basicCall
Content-Type: application/json
{
"deviceId": "70060",
"callee": "70022"
}
response :204 No Content
Associated notifications
/telephony/basicCall/answer
Methods
Responds to the incoming ringing call.
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
/telephony/basicCall/dropme
Methods
Exits from the call: if the call is a single call, it is released; if it is a conference,
the call carries on without the user.
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
/telephony/calls
Methods
Get information on all the calls in progress.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | Calls | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Initiates a new call to another user (the callee).
To initiate a regular call don't fill the associatedData, pin, secretCode or
businessCode parameters.
To initiate a call with associated data fill the associatedData parameter.
To initiate a Private Call fill the pin and secretCode parameters.
To initiate a Business Call fill the businessCode parameter.
To initiate a call from any connected set which is not associated to an user, don't fill the bypass, associatedData,
pin, secretCode or businessCode parameters.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
201 | string | application/json
| CREATED |
204 | | application/json
| No Content Only for a call from a connected set which is not associated to an user |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Initiates a call to another user (the callee)
request :POST https://server/api/rest/1.0/telephony/calls
Content-Type: application/json
{
"deviceId": "70021",
"callee": "70022",
"autoAnswer": true
}
response :201 Created
Location: http://server/api/rest/1.0/telephony/calls/49bfa0564a030100
[+] : Initiates a Private call.
request :POST https://server/api/rest/1.0/telephony/calls
Content-Type: application/json
{
"deviceId": "70021",
"callee": "70022",
"pin": "01222",
"secretCode": "0124"
}
response :201 Created
Location: http://server/api/rest/1.0/telephony/calls/e4c3a0564c030100
[+] : Initiates a Business call.
request :POST https://server/api/rest/1.0/telephony/calls
Content-Type: application/json
{
"deviceId": "70021",
"callee": "70022",
"businessCode": "0124"
}
response :201 Created
Location: http://server/api/rest/1.0/telephony/calls/e5c3a0564c030100
[+] : Initiates an ACD call from an agent to a supervisor (no callee)
request :POST https://server/api/rest/1.0/telephony/calls
Content-Type: application/json
{
"deviceId": "70060",
"autoAnswer": true,
"acdCall": {
"callToSupervisor": true
}
}
response :204 No Content
[+] : Initiates a call with associateData as a string
request :POST https://server/api/rest/1.0/telephony/calls
Content-Type: application/json
{
"deviceId": "70060",
"callee": "60112",
"autoAnswer": true,
"associatedData": "unechaine"
}
response :204 No Content
[+] : Initiates a call associate data as binary sequence
request :POST https://server/api/rest/1.0/telephony/calls
Content-Type: application/json
{
"deviceId": "70060",
"callee": "60112",
"autoAnswer": true,
"hexaBinaryAssociatedData": "f1f200a0b3"
}
response :204 No Content
/telephony/calls/{callRef}
Methods
Returns a description of a call.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Call reference.
|
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | Call | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the details of the call 0ba25a675f050700 of user oxe70121 from an admin session
request :GET https://server/api/rest/1.0/telephony/calls/0ba25a675f050700?loginName=oxe70121
response :200 OK
{
"callRef":"0ba25a675f050700","callData":{"initialCalled":{"id":
....
}
Hangs on an active call, all the parties are released.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Call reference.
|
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
/telephony/calls/{callRef}/alternate
Methods
Puts on hold the active call and retrieve a call that has been previously put in hold.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | reference of the held call. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
/telephony/calls/{callRef}/answer
Methods
Responds to an incoming ringing call.
NOTE: To invoke answer on a call, the API user must check the correct state of the concerned call.
This can be done by listening to the telephony events, and more specifically to the capabilities of the involved leg.
(answer capability on the leg).
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Call reference.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
/telephony/calls/{callRef}/attachdata
Methods
Associates data to a call, following a previously established call.
Associates data can be encoded as clear string or binary encoded string
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Call reference.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : during incoming call (ringing state), 70125 attaches clear string data to the call
request :POST https://server/api/rest/1.0/telephony/calls/e4c3a0564c030100/attachdata
Content-Type: application/json
{
"deviceId": "70125",
"associatedData":"this is my data"
}
response :204 No Content
[+] : 70125 attaches to incoming call a string data
request :POST https://server/api/rest/1.0/telephony/calls/e4c3a0564c030100/attachdata
Content-Type: application/json
{
"deviceId": "70125",
"associatedData": "unechaine",
}
response :204 No Content
[+] : 70125 attaches to incoming call a binary data sequence
request :POST https://server/api/rest/1.0/telephony/calls/e4c3a0564c030100/attachdata
Content-Type: application/json
{
"deviceId": "70125",
"hexaBinaryAssociatedData": "f0a4f900b3"
}
response :204 No Content
/telephony/calls/{callRef}/blindtransfer
Methods
Transfers a specified active call to another user, without knowing if this user will answer and
without keeping control on this call.
N.B. On multi-device, this service requires to have OXE "Specific Telephone Services/Consult.call mod.on multi-line" parameter been set to False.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Reference of the active call. |
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
/telephony/calls/{callRef}/callback
Methods
Requests for call back during a call.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Reference of the active call. |
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
/telephony/calls/{callRef}/deviceLegs
Methods
Returns the legs involved in the call
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Call reference.
|
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | Legs | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
/telephony/calls/{callRef}/deviceLegs/{legId}
Methods
Returns the leg whose Id is legId
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Call reference.
|
legId | string | Leg reference |
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | Leg | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Translates the call from a user device to another device.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Call reference.
|
legId | string | Leg reference |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : switch the call from the device 70123 to the device 70125
request :POST https://server/api/rest/1.0/telephony/calls/e4c3a0564c030100/deviceLegs/70123
Content-Type: application/json
{
"otherDeviceId": "70125"
}
response :204 No Content
Associated notifications
/telephony/calls/{callRef}/dropme
Methods
Exits from an active call: if the call is a single call, it is released; if it is a conference,
the call carries on without the user.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Call reference.
|
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
/telephony/calls/{callRef}/hold
Methods
Holds a specified active call.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Call reference.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
/telephony/calls/{callRef}/merge
Methods
Makes a n-party conference with a specified active call and a specified held call.
The active could be a single call but also, could be already a conference.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Reference of the active call. |
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
/telephony/calls/{callRef}/overflowToVoiceMail
Methods
Redirects an outgoing ringing call to the voice mail of the called user.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Call reference.
|
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
/telephony/calls/{callRef}/park
Methods
Park a specified active call to a target device. If the device where to park the call is the same device, the ParkRequestDTO argument may be omitted.
Usage restriction: The Park/UnPark service should be used only with external incoming call (the monitoring of unparking of calls that have been parked by the caller leads to inconsistent result)
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Reference of the active call to park. |
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
/telephony/calls/{callRef}/participants
Methods
Returns the list of participants in a call.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Call reference.
|
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | Participants | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
/telephony/calls/{callRef}/participants/{participantId}
Methods
Returns information about a participant in a call.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Call reference.
|
participantId | string | Reference of the participant |
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | Participant | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Drops a participant from an active call: if the call is a single call, it is released; if it is a conference,
the call carries on without the participant.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Call reference.
|
participantId | string | Reference of the participant |
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
/telephony/calls/{callRef}/reconnect
Methods
Release a current call (active or ringing) to retrieve a previously put
in hold call (cancel a consultation call).
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Reference of the held call to reactive. |
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : cancel the enquiry call ref2 and reconnect the call ref1 from the device 60113
request :POST https://server/api/rest/1.0/telephony/calls/ref1/reconnect?loginName=oxe60113
Content-Type: application/json
{"
deviceId":"60113",
"enquiryCallRef":"ref2"
}
response :204 No Content
Associated notifications
/telephony/calls/{callRef}/recording
Methods
Starts, stops, pauses or resumes the recording of a call.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Reference of the active call. |
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
action | string | Mandatory parameter. Possible values are start, stop, pause, resume. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Start a record
request :POST https://server/api/rest/1.0/telephony/calls/e4c3a0564c030100/recording?action=start
response :204 No Content
[+] : Pause a record
request :POST https://server/api/rest/1.0/telephony/calls/e4c3a0564c030100/recording?action=pause
response :204 No Content
[+] : Resume a record
request :POST https://server/api/rest/1.0/telephony/calls/e4c3a0564c030100/recording?action=resume
response :204 No Content
[+] : Stop a record
request :POST https://server/api/rest/1.0/telephony/calls/e4c3a0564c030100/recording?action=stop
response :204 No Content
Associated notifications
/telephony/calls/{callRef}/redirect
Methods
Redirects an incoming ringing call to another user or number, instead of responding to it.
If redirectTo is equal to VOICEMAIL redirect an incoming ringing call to voice mail.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Call reference.
|
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Redirect an incoming ringing call to 70000
request :POST https://server/api/rest/1.0/telephony/calls/e4c3a0564c030100/redirect
Content-Type: application/json
{
"redirectTo": "70000"
}
response :204 No Content
Associated notifications
/telephony/calls/{callRef}/retrieve
Methods
Retrieves a call that has been previously put in hold.
NOTE: Although it is possible for a standard user to invoke an answer on a held call instead of invoking a retrieve,
this is not the recommended usage. Furthermore, telephony event OnCallModified, sent after a held operation, does not list any answer
capability on the concerned leg.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Call reference.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
/telephony/calls/{callRef}/sendDtmf
Methods
Sends DTMF in an active call.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Call reference.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
/telephony/calls/{callRef}/sendaccountinfo
Methods
Send the account info.
This operation is used by a CCD agent to send the transaction code at the end of the call.
The string value MUST complain with the transaction code accepted by OXE (that is numerical value only)
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Call reference.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : during incoming call (ringing state), agent 70125 sends an account information associated to the call
request :POST https://server/api/rest/1.0/telephony/calls/e4c3a0564c030100/sendaccountinfo
Content-Type: application/json
{
"deviceId": "70125",
"accountInfo":"123"
}
response :204 No Content
/telephony/calls/{callRef}/transfer
Methods
Transfers a specified active call to a specified held call.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callRef | string | Reference of the active call |
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
/telephony/deskSharing
Methods
Log the user (DSU) on a specified device (DSS).
DSU: Desk Sharing User. Subscriber of the system that is allowed to log to a DSS.
DSS: Desk Sharing Set. Phone set not permanently associated to a user to which a DSU can be log in to.
For the method, a prefix "Station Features == Desk Sharing Over Logon" should be created.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
body parametertype | media types | description |
---|
DSLogOnRequest | application/json
| DSLogOnRequest
Device phone number for which the operation is invoked. If the session is opened
by a Framework User, the device phone number must be one of the user. |
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Log-on the DSU user onto the DSS device "xxxx"
request :POST https://server/api/rest/1.0/telephony/deskSharing
Content-Type: application/json
{
"dssDeviceNumber": "xxx"
}
response :204 No Content
Logoff the DSU user.
DSU: Desk Sharing User. Subscriber of the system that is allowed to log to a DSS.
DSS: Desk Sharing Set. Phone set not permanently associated to a user to which a DSU can be log in to.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Log-off the DSU user
request :DELETE https://server/api/rest/1.0/telephony/deskSharing
Content-Type: application/json
response :204 No Content
/telephony/devices
Methods
Gets states of all user devices
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | DeviceStates | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
/telephony/devices/{deviceId}
Methods
Gets a user device state
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
deviceId | string | Device phone number for which the operation is invoked. If the session is opened
by a Framework User, the device phone number must be one of the user. |
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | DeviceState | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
/telephony/devices/{deviceId}/intrusion
Methods
Intrusion in the active call of a called user.
No parameter is required to invoke the intrusion: it only depends on the current capability intrusion of the current device.
It is based on the fact that the current device must be in releasing state while calling a user which is in busy call with another user, the
current device has the intrusion capability and the 2 users engaged in the call have the capability to allow intrusion.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
deviceId | string | device which asks the intrusion. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : during outgoing call which fails cause busy(releasing state), the user invokes intrusion from its device 70125
It must have the intrusion capability
request :POST https://server/api/rest/1.0/telephony/devices/70125/intrusion
response :204 No Content
Associated notifications
/telephony/devices/{deviceId}/ithmicro
Methods
Push the MICRO/ITH key.
This action acts as a "flip/flop" and has the same effect than pressing the key:
- it activates or deactivates the microphone if the device has an outgoing or established call
- it activates or deactivates the interphony if the device is idle
- it has no effect if the device is ringing on incoming call
This operation is done in blind mode: no state event is provided on the push but when the device returns to idle after a call, the microphone comes back in the active state.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
deviceId | string | device concerned. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : press on ITH/micro key on the device 70125
request :PUT https://server/api/rest/1.0/telephony/devices/70125/ithmicro
response :204 No Content
/telephony/devices/{deviceId}/pickup
Methods
Picks up an incoming call on another user. If the pickuped device is present, a direct pickup is performed.
Else a group (hunting or processing group in case of agent) pickup is performed.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
deviceId | string | Device phone number for which the operation is invoked. If the session is opened
by a Framework User, the device phone number must be one of the user. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
/telephony/devices/{deviceId}/unpark
Methods
UnPark a call from a target device. If the call has been parked on the current device,
the ParkRequestDTO argument may be omitted.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
deviceId | string | device from where the unpark request is requested. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
body parametertype | media types | description |
---|
UnParkRequest | application/json
| |
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : unpark from same device
request :POST https://server/api/rest/1.0/telephony/devices/60113/unpark
response :204 No Content
[+] : unpark from other device
request :POST https://server/api/rest/1.0/telephony/devices/60113/unpark
{
"unParkFrom": "60114"
}
response :204 No Content
Associated notifications
/telephony/huntingGroupLogOn
Methods
Get the user status in its current hunting group: logged on or not
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | HuntingGroupStatus | application/json
| Ok |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the user status in its hg group
request :GET https://server/api/rest/1.0/telephony/huntingGroupLogOn
response :200 Ok
{
"logon":"true"
}
Log the user in its current hunting group.
NB1: The user must belong to a group.
NB2: To notify the user on the phone set, a prefix "Set Features" with "Station Features" set to "Station group exit" must be created.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Log the user into its current hg group
request :POST https://server/api/rest/1.0/telephony/huntingGroupLogOn
response :204 No Content
Associated notifications
Logout the user from its current hunting group.
NB: The user must belong to a group.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Logout the user from its hg group
request :DELETE https://server/api/rest/1.0/telephony/huntingGroupLogOn
Content-Type: application/json
response :204 No Content
Associated notifications
/telephony/huntingGroupMember/{hgNumber}
Methods
Set the user as member of a Hunting group.
If the group doesn't exist, returns 404 Not Found
If the user already belongs to the group, nothing is done and the returned result is OK
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
hgNumber | string | string : the hunting group number |
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found if the group doesn't exist |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Set the user member of the hg group number 10001
request :POST https://server/api/rest/1.0/telephony/huntingGroupMember/10001
response :204 No Content
Remove the user from a Hunting group.
If the group doesn't exist, returns 404 Not Found
If the user doesn't belong to the group, nothing is done and the returned result is OK
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
hgNumber | string | string : the hunting group number |
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found if the group doesn't exist |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Remove the user member from the hg group number 10001
request :DELETE https://server/api/rest/1.0/telephony/huntingGroupMember/10001
response :204 No Content
/telephony/huntingGroups
Methods
Get the Hunting groups of the node and eventually the current one the user belongs to.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | HuntingGroupResult | application/json
| |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the hg list (the user belongs to the hg 10001)
request :GET https://server/api/rest/1.0/telephony/huntingGroups
response :200 Ok
{
"hgList":[
"10001",
"10002",
"10003"
],
"currentHg": "10001"
}
/telephony/incomingCallbacks
Methods
Returns the whole list of callback requests.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | Callbacks | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Deletes all callback requests.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
/telephony/incomingCallbacks/{callbackId}
Methods
Deletes a callback request.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
callbackId | string | identifier of the callback to delete |
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
/telephony/miniMessages
Methods
Returns the current new message.
Caution: As soon as a message is read, it is erased from OXE and cannot be read again.
The message are retrieved in Last In First Out mode.
If all the messages have been retrieved, a new GET invoke will return 400 Bad Request.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | MiniMessage | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the last received minimessage
request :GET https://server/api/rest/1.0/telephony/miniMessages
response :200 OK { "sender": "70020", "date":"2020-06-29T07:07:00.000Z", "message": "hello!" }
Send a mini message.
Text messages are up to 128 characters long.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Send a minimessage to another user (the recipient)
request :POST https://server/api/rest/1.0/telephony/miniMessages Content-Type: application/json { "recipient": "70021",
"message": "hello!" }
response :204 no content
/telephony/outgoingCallbacks
Methods
Requests for call back from an idle device.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
body parametertype | media types | description |
---|
CallbackRequest | application/json
| call back information |
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
/telephony/pilots/{nodeId}/{pilotNumber}/transferInfo
Methods
Get information of a pilot related to transfer capability
This method should be used by an agent before transferring a call to a pilot
Return information related to transfer: transfer is /or not possible and transfer is /or not supervised
History
Since version 2.7
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
nodeId | int | the pbx node number |
pilotNumber | string | the pilot number |
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
body parametertype | media types | description |
---|
PilotQueryParam | application/json
| transfer parameter used to know the transfer capability depending on a given profile. |
Response
code | type | media types | description |
---|
200 | PilotTransferCapa | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the transfer information for pilot 60141 in node 1 with agent 60113 and it skills
request :POST https://server/api/rest/1.0/telephony/pilots/1/60141/transferInfo
Content-Type: application/json
{
"agentNumber": "60113",
"skills": {
"skills": [ {
"skillNumber": 1,
"acrStatus": true,
"expertEvalLevel": 2
} ],
},
"priorityTransfer": true,
"supervisedTransfer": true
}
response :200 OK Content-Type: application/json
{
"number": "60141",
"queueState": "s_Opened",
"waitingTime": 0,
"saturation": false,
"rules": {
"ruleList": [
{
"ruleNumber": "0", "name": "RULE_PIL_0", "active": false
},
{
"ruleNumber": "1", "name": "PILO_RUL_1", "active": true
}
]},
"possibleTransfer":true,
"supervisedTransfer":false
}
/telephony/state
Methods
Asks for the user telephonic state and capabilities.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | TelephonicState | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the user oxe70121 telephony state from an admin session
request :GET https://server/api/rest/1.0/telephony/state?loginName=oxe70121
response :200 OK
{
"calls": ["callRef": "0ba25a675f050700",
"callData": {...
}
/telephony/state/snapshot
Methods
Ask a snapshot event on user call state.
The event OnTelephonyState will contain the TelephonicState (calls[] and deviceCapabilities[])
If this request is made by an administrator and no loginName is provided, the snapshot is asked for all the users
If a second request is asked since the previous one is still in progress, it has no effect.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session identifier matches a user account.
For an administrator session, the loginName must either correspond to an existing user
or be null: in this last case, the snapshot event request is done for all the users.
CAUTION!: this request is immediately acknowledged but the processing may take a long time if the number of users is huge. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
Representations
AcdCallDataDescribes data related to an ACD call.
Name | Type | Cardinality | Description |
---|
callInfo | AcdCallInfo | [0..1] | info related to the call |
queueData | QueueData | [0..1] | state of the queue |
pilotNumber | string | [0..1] | pilot number if it is an acd call |
rsiNumber | string | [0..1] | rsi number if it is an rsi call |
supervisedTransfer | boolean | [0..1] | if the transfer from the pilot has been supervised or not |
pilotTransferInfo | PilotTransferInfo | [0..1] | in case of enquiry call only, information related to the transfer of the call to the pilot |
[+] : JSON Example{
"callInfo": {
"queueWaitingTime": int,
"globalWaitingTime": int,
"agentGroup": "string",
"local": boolean
},
"queueData": {
"waitingTime": int,
"saturated": boolean
},
"pilotNumber": "string",
"rsiNumber": "string",
"supervisedTransfer": boolean,
"pilotTransferInfo": {
"transferPossible": boolean,
"pilotStatus": "OPEN | BLOCKED | BLOCKED_ON_RULE | BLOCKED_ON_BLOCKED_RULE | GENERAL_FORWARDING | ..."
}
} |
AcdCallInfoDescribes data related to the distributed ACD call.
Name | Type | Cardinality | Description |
---|
queueWaitingTime | int | [0..1] | waiting time in the queue |
globalWaitingTime | int | [0..1] | global waiting time in the distribution |
agentGroup | string | [0..1] | agent group |
local | boolean | [0..1] | if the acd call is local or not |
[+] : JSON Example{
"queueWaitingTime": int,
"globalWaitingTime": int,
"agentGroup": "string",
"local": boolean
} |
AcdCallParamDescribes parameter related to an ACD call request.
Name | Type | Cardinality | Description |
---|
supervisedTransfer | boolean | [0..1] | If true in a consultation call, force the Pilot or RSI consultation mode |
skills | ACRSkills | [0..1] | Skills associated to the new call |
callToSupervisor | boolean | [0..1] | If true, for an agent, call its supervisor. The callee number parameter is ignored in this case and can be absent |
[+] : JSON Example{
"supervisedTransfer": boolean,
"skills": {
"skills": [ {
"skillNumber": int,
"acrStatus": boolean,
"expertEvalLevel": int
} ]
},
"callToSupervisor": boolean
} |
ACRSkillDescribes an ACR skill.
Name | Type | Cardinality | Description |
---|
skillNumber | int | [0..1] | skill number |
acrStatus | boolean | [0..1] | skill activation status |
expertEvalLevel | int | [0..1] | expert evaluation level |
[+] : JSON Example{
"skillNumber": int,
"acrStatus": boolean,
"expertEvalLevel": int
} |
ACRSkillsList of ACR skills.
Name | Type | Cardinality | Description |
---|
skills | ACRSkill | [0..*] | skill list. |
[+] : JSON Example{
"skills": [ {
"skillNumber": int,
"acrStatus": boolean,
"expertEvalLevel": int
} ]
} |
AlternateRequestRequest to switch between an active call and a held call.
Name | Type | Cardinality | Description |
---|
deviceId | string | [1] | Device phone number for which the operation is invoked.
If the session is opened by a User, the device phone number must be one of the user. |
Associated method :
AnswerRequestRequest to answer a ringing incoming call.
Name | Type | Cardinality | Description |
---|
deviceId | string | [1] | Device phone number for which the operation is invoked.
If the session is opened by a User, the device phone number must be one of the user. |
Associated methods :
BlindTransferRequestRequest to transfer an incoming call.
Name | Type | Cardinality | Description |
---|
transferTo | string | [1] | Phone number to which the call is transferred. |
anonymous | boolean | [0..1] | Anonymous call (secret identity).
This parameter is optional. If it is omitted, anonymous is not set for this call. |
Associated method :
boolean'boolean' is a data type, having two values (true and false).
CallDescribes an user's call.
Name | Type | Cardinality | Description |
---|
callRef | string | [1] | Reference of the call. |
callData | CallData | [0..1] | Call data. |
legs | Leg | [0..*] | User's devices. |
participants | Participant | [0..*] | Participants. |
[+] : JSON Example{
"callRef": "string",
"callData": {
"initialCalled": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"lastRedirecting": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"deviceCall": boolean,
"anonymous": boolean,
"callUUID": "string",
"state": "UNKNOWN | OFF_HOOK | IDLE | RELEASING | DIALING | HELD | RINGING_INCOMING | ...",
"recordState": "PAUSED | RECORDING",
"tags": [ {
"name": "string",
"value": "string",
"visibilities": [ "string" ]
} ],
"capabilities": {
"addDevice": boolean,
"addParticipant": boolean,
"intruded": boolean,
"intrusion": boolean,
"transfer": boolean,
"blindTransfer": boolean,
"merge": boolean,
"redirect": boolean,
"pickedUp": boolean,
"redirectToVoiceMail": boolean,
"redirectToDVA": boolean,
"overflowToVoiceMail": boolean,
"dropMe": boolean,
"terminate": boolean,
"reject": boolean,
"callBack": boolean,
"park": boolean,
"startRecord": boolean,
"stopRecord": boolean,
"pauseRecord": boolean,
"resumeRecord": boolean,
"dropParticipant": boolean,
"muteParticipant": boolean,
"holdParticipant": boolean
},
"associateData": "string",
"hexaBinaryAssociatedData": "string",
"accountInfo": "string",
"acdCallData": {
"callInfo": {
"queueWaitingTime": int,
"globalWaitingTime": int,
"agentGroup": "string",
"local": boolean
},
"queueData": {
"waitingTime": int,
"saturated": boolean
},
"pilotNumber": "string",
"rsiNumber": "string",
"supervisedTransfer": boolean,
"pilotTransferInfo": {
"transferPossible": boolean,
"pilotStatus": "OPEN | BLOCKED | BLOCKED_ON_RULE | BLOCKED_ON_BLOCKED_RULE | GENERAL_FORWARDING | ..."
}
},
"trunkIdentification": {
"networkTimeslot": int,
"trunkNeqt": [ int ]
}
},
"legs": [ {
"deviceId": "string",
"state": "UNKNOWN | OFF_HOOK | IDLE | RELEASING | DIALING | HELD | RINGING_INCOMING | ...",
"ringingRemote": boolean,
"capabilities": {
"answer": boolean,
"drop": boolean,
"hold": boolean,
"retrieve": boolean,
"reconnect": boolean,
"mute": boolean,
"unMute": boolean,
"sendDtmf": boolean,
"switchDevice": boolean
}
} ],
"participants": [ {
"participantId": "string",
"identity": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"anonymous": boolean,
"undroppable": boolean,
"state": "RINGING_INCOMING | ACTIVE"
} ]
} |
Associated method :
CallbackDescribes a callback.
Name | Type | Cardinality | Description |
---|
callbackId | string | [1] | Callback identifier |
partyInfo | PartyInfo | [1] | Participant identity card. |
[+] : JSON Example{
"callbackId": "string",
"partyInfo": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
}
} |
CallbackRequestCallback Sender Message request data.
Name | Type | Cardinality | Description |
---|
callee | string | [1] | Callee phone number of the called party for which a call back is requested. |
Associated method :
CallbacksContainer for the callbacks.
Name | Type | Cardinality | Description |
---|
callbacks | Callback | [0..*] | List of callbacks |
[+] : JSON Example{
"callbacks": [ {
"callbackId": "string",
"partyInfo": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
}
} ]
} |
Associated method :
CallCapabilitiesDescribes the capabilities available on a call : the action that can be
carried out on the call according to its state.
Name | Type | Cardinality | Description |
---|
addDevice | boolean | [0..1] | Capability to add a participant or a user's device to this call. |
addParticipant | boolean | [0..1] | Capability to add a participant. |
intruded | boolean | [0..1] | Capability to intrude this call by another user. |
intrusion | boolean | [0..1] | Capability to make intrusion on the user called through this call. |
transfer | boolean | [0..1] | Capability to transfer this call with another one. |
blindTransfer | boolean | [0..1] | Capability to blind transfer this call to an user, device, ... |
merge | boolean | [0..1] | Capability to merge this call with another one. |
redirect | boolean | [0..1] | Capability to redirect this call to another user, device, ... |
pickedUp | boolean | [0..1] | Capability to pick up this call by another user. |
redirectToVoiceMail | boolean | [0..1] | Capability to redirect this call to the voice mail. |
redirectToDVA | boolean | [0..1] | Capability to redirect this call to the DVA. |
overflowToVoiceMail | boolean | [0..1] | Capability to overflow to the voice mail of the called user. |
dropMe | boolean | [0..1] | Capability to drop me from this call. |
terminate | boolean | [0..1] | Capability to terminate this call: call termiated on all users. |
reject | boolean | [0..1] | Capability to reject this call. |
callBack | boolean | [0..1] | Capability to invoke a call back. |
park | boolean | [0..1] | Specifies whether the call can be parked. |
startRecord | boolean | [0..1] | Capability to start the record of the call. |
stopRecord | boolean | [0..1] | Capability to stop the record of the call. |
pauseRecord | boolean | [0..1] | Capability to pause the record of the call. |
resumeRecord | boolean | [0..1] | Capability to resume the record of the call. |
dropParticipant | boolean | [0..1] | Capability to drop a participant. |
muteParticipant | boolean | [0..1] | Capability to mute/unMute a participant. |
holdParticipant | boolean | [0..1] | Capability to hold/retrieve a participant. |
[+] : JSON Example{
"addDevice": boolean,
"addParticipant": boolean,
"intruded": boolean,
"intrusion": boolean,
"transfer": boolean,
"blindTransfer": boolean,
"merge": boolean,
"redirect": boolean,
"pickedUp": boolean,
"redirectToVoiceMail": boolean,
"redirectToDVA": boolean,
"overflowToVoiceMail": boolean,
"dropMe": boolean,
"terminate": boolean,
"reject": boolean,
"callBack": boolean,
"park": boolean,
"startRecord": boolean,
"stopRecord": boolean,
"pauseRecord": boolean,
"resumeRecord": boolean,
"dropParticipant": boolean,
"muteParticipant": boolean,
"holdParticipant": boolean
} |
CallCauseLists the different call causes.
Value | Description |
---|
ABANDONED | Caller in a two-party call has disconnected before the call was answered. |
ALL_TRUNK_BUSY | The call is receiving the network congestion tone. |
BUSY | The call is receiving the busy tone. |
CLEARED | One party in a two-party call has disconnected after the call was answered. |
PARTICIPANT_LEFT | One party has left the conference call. |
CONFERENCED | This is a multi-party call. |
INVALID_NUMBER | The call is receiving the invalid number tone. |
DESTINATION_NOT_OBTAINABLE | The destination cannot be reached. |
DO_NOT_DISTURB | The device is in DND. |
FORWARDED | The call has been forwarded. |
NOT_ANSWERED | The call has been hanged up before answer. |
PICKED_UP | The call has been picked up. |
PARKED | The call has been parked. |
REDIRECTED | The call has been redirected. |
OVERFLOWN | The call goes on overflow destination. |
TRANSFERRED | This is a transferred call. |
CAMP_ON | The call has been put in wait. |
UNKNOWN | Unknown cause. |
PICKED_UP_TANDEM | Picked up tandem. |
CALL_BACK | The call is a call back. |
RECALL | The call is recall (e.g. on HELD call indicates that device rings back). |
DISTRIBUTED | CCD context: call distribution |
ACD_ENTER_DISTRIBUTION | CCD context: call enters in distribution |
RESOURCES_NOT_AVAILABLE | CCD context: pilot is not open |
SUPERVISOR_LISTENING | CCD context: supervisor is listening the agent conversation |
SUPERVISOR_INTRUSION | CCD context: supervisor is fully intruded in the agent conversation |
SUPERVISOR_RESTRICT_INTRUSION | CCD context: supervisor can speak to the agent |
NO_AVAILABLE_AGENT | CCD context: No available agent |
LOCKOUT | Physical phone set device is off the hook |
CallDataDescribes data associated to a call.
Name | Type | Cardinality | Description |
---|
initialCalled | PartyInfo | [0..1] | Initial user called for this call. |
lastRedirecting | PartyInfo | [0..1] | Since version 2.7.4 Last device which redirects the call, if it is different from the initialCalled. |
deviceCall | boolean | [0..1] | If true it's a device call else if not specified or false it's a user call. |
anonymous | boolean | [0..1] | If true it's a anonymous call. |
callUUID | string | [0..1] | CallUUID associated to this call (used to correlate RTSM events with SIP events for multimedia users only). |
state | MediaState | [0..1] | Call state (computed from media state). |
recordState | RecordState | [0..1] | Record state (only if recording is active). |
tags | Tag | [0..*] | Tags associated to this call. |
capabilities | CallCapabilities | [0..1] | Capabilities available on this call. |
associateData | string | [0..1] | Associated data (or Correlator data). |
hexaBinaryAssociatedData | string | [0..1] | Hexa binary array format for Associated data (or Correlator data). |
accountInfo | string | [0..1] | Account info associated to the call. |
acdCallData | AcdCallData | [0..1] | ACD info associated to the call. |
trunkIdentification | TrunkIdentification | [0..1] | Since version 2.7.1 TrunkIdentification if external call |
[+] : JSON Example{
"initialCalled": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"lastRedirecting": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"deviceCall": boolean,
"anonymous": boolean,
"callUUID": "string",
"state": "UNKNOWN | OFF_HOOK | IDLE | RELEASING | DIALING | HELD | RINGING_INCOMING | ...",
"recordState": "PAUSED | RECORDING",
"tags": [ {
"name": "string",
"value": "string",
"visibilities": [ "string" ]
} ],
"capabilities": {
"addDevice": boolean,
"addParticipant": boolean,
"intruded": boolean,
"intrusion": boolean,
"transfer": boolean,
"blindTransfer": boolean,
"merge": boolean,
"redirect": boolean,
"pickedUp": boolean,
"redirectToVoiceMail": boolean,
"redirectToDVA": boolean,
"overflowToVoiceMail": boolean,
"dropMe": boolean,
"terminate": boolean,
"reject": boolean,
"callBack": boolean,
"park": boolean,
"startRecord": boolean,
"stopRecord": boolean,
"pauseRecord": boolean,
"resumeRecord": boolean,
"dropParticipant": boolean,
"muteParticipant": boolean,
"holdParticipant": boolean
},
"associateData": "string",
"hexaBinaryAssociatedData": "string",
"accountInfo": "string",
"acdCallData": {
"callInfo": {
"queueWaitingTime": int,
"globalWaitingTime": int,
"agentGroup": "string",
"local": boolean
},
"queueData": {
"waitingTime": int,
"saturated": boolean
},
"pilotNumber": "string",
"rsiNumber": "string",
"supervisedTransfer": boolean,
"pilotTransferInfo": {
"transferPossible": boolean,
"pilotStatus": "OPEN | BLOCKED | BLOCKED_ON_RULE | BLOCKED_ON_BLOCKED_RULE | GENERAL_FORWARDING | ..."
}
},
"trunkIdentification": {
"networkTimeslot": int,
"trunkNeqt": [ int ]
}
} |
CallsContainer for the calls.
Name | Type | Cardinality | Description |
---|
calls | Call | [0..*] | List of calls |
[+] : JSON Example{
"calls": [ {
"callRef": "string",
"callData": {
"initialCalled": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"lastRedirecting": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"deviceCall": boolean,
"anonymous": boolean,
"callUUID": "string",
"state": "UNKNOWN | OFF_HOOK | IDLE | RELEASING | DIALING | HELD | RINGING_INCOMING | ...",
"recordState": "PAUSED | RECORDING",
"tags": [ {
"name": "string",
"value": "string",
"visibilities": [ "string" ]
} ],
"capabilities": {
"addDevice": boolean,
"addParticipant": boolean,
"intruded": boolean,
"intrusion": boolean,
"transfer": boolean,
"blindTransfer": boolean,
"merge": boolean,
"redirect": boolean,
"pickedUp": boolean,
"redirectToVoiceMail": boolean,
"redirectToDVA": boolean,
"overflowToVoiceMail": boolean,
"dropMe": boolean,
"terminate": boolean,
"reject": boolean,
"callBack": boolean,
"park": boolean,
"startRecord": boolean,
"stopRecord": boolean,
"pauseRecord": boolean,
"resumeRecord": boolean,
"dropParticipant": boolean,
"muteParticipant": boolean,
"holdParticipant": boolean
},
"associateData": "string",
"hexaBinaryAssociatedData": "string",
"accountInfo": "string",
"acdCallData": {
"callInfo": {
"queueWaitingTime": int,
"globalWaitingTime": int,
"agentGroup": "string",
"local": boolean
},
"queueData": {
"waitingTime": int,
"saturated": boolean
},
"pilotNumber": "string",
"rsiNumber": "string",
"supervisedTransfer": boolean,
"pilotTransferInfo": {
"transferPossible": boolean,
"pilotStatus": "OPEN | BLOCKED | BLOCKED_ON_RULE | BLOCKED_ON_BLOCKED_RULE | GENERAL_FORWARDING | ..."
}
},
"trunkIdentification": {
"networkTimeslot": int,
"trunkNeqt": [ int ]
}
},
"legs": [ {
"deviceId": "string",
"state": "UNKNOWN | OFF_HOOK | IDLE | RELEASING | DIALING | HELD | RINGING_INCOMING | ...",
"ringingRemote": boolean,
"capabilities": {
"answer": boolean,
"drop": boolean,
"hold": boolean,
"retrieve": boolean,
"reconnect": boolean,
"mute": boolean,
"unMute": boolean,
"sendDtmf": boolean,
"switchDevice": boolean
}
} ],
"participants": [ {
"participantId": "string",
"identity": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"anonymous": boolean,
"undroppable": boolean,
"state": "RINGING_INCOMING | ACTIVE"
} ]
} ]
} |
Associated method :
dateTime'dateTime' is an UTC datetime whose format (ISO 8601 compatible) is yyyy-MM-ddTHH:mm:ss.SSSZ (example: 2013-05-16T18:17:15.489Z).
DeviceCapabilitiesDescribes an user's device capabilities.
Name | Type | Cardinality | Description |
---|
deviceId | string | [1] | Device phone number. |
makeCall | boolean | [0..1] | Specifies whether a new call can be initiated. |
makeBusinessCall | boolean | [0..1] | Specifies whether a business call can be initiated. |
makePrivateCall | boolean | [0..1] | Specifies whether a personal call can be initiated. |
unParkCall | boolean | [0..1] | Specifies whether a call can be an unparked call. |
DeviceStateDescribes a user's device state.
Name | Type | Cardinality | Description |
---|
deviceId | string | [1] | Device phone number. |
state | OperationalState | [1] | Device state. |
cause | CallCause | [0..1] | Since version 2.7.2 Cause associated with state change. |
[+] : JSON Example{
"deviceId": "string",
"state": "IN_SERVICE | OUT_OF_SERVICE | UNKNOWN",
"cause": "ABANDONED | ALL_TRUNK_BUSY | BUSY | CLEARED | PARTICIPANT_LEFT | CONFERENCED | ..."
} |
Associated method :
DeviceStatesContainer for device state.
Name | Type | Cardinality | Description |
---|
deviceStates | DeviceState | [0..*] | List of DeviceState |
[+] : JSON Example{
"deviceStates": [ {
"deviceId": "string",
"state": "IN_SERVICE | OUT_OF_SERVICE | UNKNOWN",
"cause": "ABANDONED | ALL_TRUNK_BUSY | BUSY | CLEARED | PARTICIPANT_LEFT | CONFERENCED | ..."
} ]
} |
Associated method :
DSLogOnRequestRequest to logg on an acd agent.
Name | Type | Cardinality | Description |
---|
dssDeviceNumber | string | [1] | DSS phone number on which the operation is invoked. |
[+] : JSON Example{
"dssDeviceNumber": "string"
} |
Associated method :
HoldRequestRequest to put an active call on hold.
Name | Type | Cardinality | Description |
---|
deviceId | string | [1] | Device phone number for which the operation is invoked.
If the session is opened by a User, the device phone number must be one of the user. |
Associated method :
HuntingGroupResultHunting group param used for user management.
Name | Type | Cardinality | Description |
---|
hgList | string | [0..*] | the existing hunting group list in the pbx node of user may be null if none |
currentHg | string | [0..1] | the current hunting group number which the user is a member: may be null if none |
Associated method :
HuntingGroupStatusDescribes the user's hunting group logon status .
Name | Type | Cardinality | Description |
---|
logon | boolean | [1] | Device phone number. |
Associated method :
IdentifierKey information to help retrieving a participant.
Name | Type | Cardinality | Description |
---|
loginName | string | [0..1] | Login name. |
phoneNumber | string | [0..1] | Company phone number. |
multiLine | boolean | [0..1] | Since version 2.7.3 Is this phone number one of the multiline number of the device. |
int'int' is a 32-bit number (-2147483648 to 2147483647).
LegDescribes a leg. A leg represents the user's device involved in a call for a
dedicated media (audio or video).
Name | Type | Cardinality | Description |
---|
deviceId | string | [1] | Device phone number. |
state | MediaState | [0..1] | Media state. |
ringingRemote | boolean | [0..1] | boolean set to true when the leg is in RINGING_OUTGOING state and if the remote party is ringing (ie has been alerted). |
capabilities | LegCapabilities | [0..1] | Capabilities for this leg. |
[+] : JSON Example{
"deviceId": "string",
"state": "UNKNOWN | OFF_HOOK | IDLE | RELEASING | DIALING | HELD | RINGING_INCOMING | ...",
"ringingRemote": boolean,
"capabilities": {
"answer": boolean,
"drop": boolean,
"hold": boolean,
"retrieve": boolean,
"reconnect": boolean,
"mute": boolean,
"unMute": boolean,
"sendDtmf": boolean,
"switchDevice": boolean
}
} |
Associated method :
LegCapabilitiesDescribes the capabilities of a leg :
The action that can be carried out on the leg according to its state.
Name | Type | Cardinality | Description |
---|
answer | boolean | [0..1] | Capability to answer to an incoming call. |
drop | boolean | [0..1] | Capability to drop this media device. |
hold | boolean | [0..1] | Capability to hold this call in order to retrieve it later. |
retrieve | boolean | [0..1] | Capability to retrieve an hold call. |
reconnect | boolean | [0..1] | Capability to retrieve an hold call and releasing the current active call. |
mute | boolean | [0..1] | Capability to enable mute for this leg. |
unMute | boolean | [0..1] | Capability to disable mute for this device. |
sendDtmf | boolean | [0..1] | Capability to send DTMF codes for this leg. |
switchDevice | boolean | [0..1] | Capability to switch this device to another one. |
LegsContainer for Legs.
Name | Type | Cardinality | Description |
---|
legs | Leg | [0..*] | List of Leg. |
[+] : JSON Example{
"legs": [ {
"deviceId": "string",
"state": "UNKNOWN | OFF_HOOK | IDLE | RELEASING | DIALING | HELD | RINGING_INCOMING | ...",
"ringingRemote": boolean,
"capabilities": {
"answer": boolean,
"drop": boolean,
"hold": boolean,
"retrieve": boolean,
"reconnect": boolean,
"mute": boolean,
"unMute": boolean,
"sendDtmf": boolean,
"switchDevice": boolean
}
} ]
} |
Associated method :
MainTypeMain participant type
Value | Description |
---|
USER | The participant is a user of the system. |
DEVICE | The participant is a device of the system. |
SERVICE | The participant is a service of the system. |
EXTERNAL | The participant is not a user of the system. |
UNKNOWN | The main participant type is unknown. |
MakeBasicCallRequestRequest to initiate a new call.
Name | Type | Cardinality | *1 | *2 | Description |
---|
deviceId | string | [1] | X | X | Device phone number for which the operation is invoked.
If the session is opened by a User, the device phone number must be one of the user. |
callee | string | [1] | X | X | Called phone number. |
autoAnswer | boolean | [0..1] | X | | Automatic answer on make call.
If this parameter is set to "false" (or omitted) the deviceId is called before
launching the make call to callee , else callee is called immediately. |
*1 : attributes for a call from an OpenTouch user set:
deviceId and
callee are mandatory,
autoAnswer and
associateData are optional
*2 : attributes for a call from any connected set:
deviceId and
callee are mandatory; Allowed only when logged in an administrator session.
Associated method :
MakeCallRequestRequest to initiate a new call.
Name | Type | Cardinality | *1 | *2 | *3 | *4 | *5 | Description |
---|
deviceId | string | [0..1] | X | X | X | X | X | Device phone number for which the operation is invoked.
If the session is opened by a User, the device phone number must be one of the user.
This parameter is mandatory. |
callee | string | [1] | X | X | X | X | X | Called phone number.
This parameter is always mandatory except in case of agent supervisor call (see acdCallParam) where it is ignored and should be absent. |
autoAnswer | boolean | [0..1] | X | | | | X | Automatic answer on make call.
If this parameter is set to "false" (or omitted) the deviceId is called before
launching the make call to callee , else callee is called immediately. |
inhibitProgressTone | boolean | [0..1] | X | | | | X | Inhibit Progress Tone.
If this parameter is set to "true"
Inhibit the progress tone on the current external call. |
associatedData | string | [0..1] | X | | | | X | This is used by the application to provide application-related information (string limited to 32 bytes).
In general, it is used to give information concerning a previously established call to the party of a second call.
Example: user B has answered to an external call, he makes an enquiry call to userB with associateData: userB is notified
with call of userA with CallCreated event containing CallData with the associateDAta.
Its usage is exclusive from the byte array binaryAssociatedData (if associatedData is present, hexaBinaryAssociatedData is discarded).
Cannot be used in conjonction with pin, secretCode, or businessCode parameter. |
hexaBinaryAssociatedData | string | [0..1] | X | | | | X | To used by the application if the associate data is a non-printing character string but an array of bytes.
In this case, the associate data is passed as a sequence of hexadecimal bytes (ex: "f3f40201").
Caution: byte '00' is not authorized by OXE (will be interpreted as termination character).
Its usage is exclusive from the String associatedData (if associatedData is present, hexaBinaryAssociatedData is discarded).
Cannot be used in conjonction with pin, secretCode, or businessCode parameter. |
pin | string | [0..1] | | X | | | | Private identity number (Mandatory when making a Private Call).
Don't use in conjonction with associatedData or businessCode parameter |
secretCode | string | [0..1] | | X | | | | Secret code (Mandatory when making a Private Call).
Don't use in conjonction with associatedData or businessCode parameter |
businessCode | string | [0..1] | | | X | | | The cost center on which the call will be charged (Mandatory when making a Business Call).
Don't use in conjonction with associatedData, pin, or secretCode parameter |
callingNumber | string | [0..1] | X | | | | X | For an external call only, allows to present another calling number on the public network call in order to hide the real calling extension number,
for example for an ACD outbound call. |
secretIdentity | boolean | [0..1] | X | | | | X | For an external call only, allows to ask the public network to mask the calling identity: this parameter MUST be used in conjonction with
the callingNumber parameter. If the callingNumber is absent, the secretIdentity parameter will be ignored. |
acdCall | AcdCallParam | [0..1] | | | | | X | Parameters to use when making an ACD Call.
Don't use in conjonction with pin, or secretCode parameter |
*1 : attributes for a call from a set:
deviceId and
callee are mandatory,
autoAnswer,
inhibitProgressTone,
bypass,
associatedData and
callingNumber are optional
*2 : attributes for a private call from a set:
deviceId,
callee,
pin and
secretCode are mandatory
*3 : attributes for a business call from a set:
deviceId,
callee and
businessCode are mandatory
*4 : attributes for a call from any connected set:
deviceId and
callee are mandatory; Allowed only when logged in an administrator session.
*5 : attributes for an ACD call from an agent:
deviceId is mandatory,
callee is mandatory except if supervisor call,
autoAnswer,
associateData,
callingNumber and
acdCall params are optional
[+] : JSON Example{
"deviceId": "string",
"callee": "string",
"autoAnswer": boolean,
"inhibitProgressTone": boolean,
"associatedData": "string",
"hexaBinaryAssociatedData": "string",
"pin": "string",
"secretCode": "string",
"businessCode": "string",
"callingNumber": "string",
"secretIdentity": boolean,
"acdCall": {
"supervisedTransfer": boolean,
"skills": {
"skills": [ {
"skillNumber": int,
"acrStatus": boolean,
"expertEvalLevel": int
} ]
},
"callToSupervisor": boolean
}
} |
Associated method :
MediaStateLists the different media states.
Value | Description |
---|
UNKNOWN | Unknown media state. |
OFF_HOOK | the OFF_HOOK state is used when the device is busy for other reasons than a call:
typically during service activation |
IDLE | Call is in idle state. |
RELEASING | Call release is in progress. |
DIALING | An attempt to make a call is in progress. |
HELD | The call has been placed on hold. |
RINGING_INCOMING | The incoming call is ringing. |
RINGING_OUTGOING | The outgoing call is ringing. |
ACTIVE | The call is active (means in conversation). |
MergeRequestRequest to merge two calls, the active one and the held one.
Name | Type | Cardinality | Description |
---|
heldCallRef | string | [1] | Reference of the held call. |
Associated method :
MiniMessageDescribes a mini message.
Name | Type | Cardinality | Description |
---|
sender | string | [0..1] | Sender tel number. |
date | dateTime | [0..1] | Date of the message: the date is in UTC format |
message | string | [0..1] | the mini message text. |
Associated method :
MiniMessageRequestSend a mini Message request data to a recipient.
Name | Type | Cardinality | Description |
---|
recipient | string | [1] | the phone number recipient. |
message | string | [1] | the mini message text. |
Associated method :
OnCallCreatedThis notification indicates that a new call has been created.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnCallCreated' |
loginName | string | [1] | Login name of the user (identifier which can be used for filtering). |
callRef | string | [1] | Reference of the call. |
cause | CallCause | [0..1] | Cause of the event. |
callData | CallData | [0..1] | Call data. |
initiator | string | [0..1] | Initiator of the call : correspond to one participant of the call,
the matching can be done with the participantId value of the participants. |
legs | Leg | [0..*] | Legs associated to this call. |
participants | Participant | [0..*] | Participants associated to this call. |
deviceCapabilities | DeviceCapabilities | [0..*] | Devices capabilities (if not specified, it means there is no modification). |
[+] : JSON Example{
"eventName": "string",
"loginName": "string",
"callRef": "string",
"cause": "ABANDONED | ALL_TRUNK_BUSY | BUSY | CLEARED | PARTICIPANT_LEFT | CONFERENCED | ...",
"callData": {
"initialCalled": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"lastRedirecting": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"deviceCall": boolean,
"anonymous": boolean,
"callUUID": "string",
"state": "UNKNOWN | OFF_HOOK | IDLE | RELEASING | DIALING | HELD | RINGING_INCOMING | ...",
"recordState": "PAUSED | RECORDING",
"tags": [ {
"name": "string",
"value": "string",
"visibilities": [ "string" ]
} ],
"capabilities": {
"addDevice": boolean,
"addParticipant": boolean,
"intruded": boolean,
"intrusion": boolean,
"transfer": boolean,
"blindTransfer": boolean,
"merge": boolean,
"redirect": boolean,
"pickedUp": boolean,
"redirectToVoiceMail": boolean,
"redirectToDVA": boolean,
"overflowToVoiceMail": boolean,
"dropMe": boolean,
"terminate": boolean,
"reject": boolean,
"callBack": boolean,
"park": boolean,
"startRecord": boolean,
"stopRecord": boolean,
"pauseRecord": boolean,
"resumeRecord": boolean,
"dropParticipant": boolean,
"muteParticipant": boolean,
"holdParticipant": boolean
},
"associateData": "string",
"hexaBinaryAssociatedData": "string",
"accountInfo": "string",
"acdCallData": {
"callInfo": {
"queueWaitingTime": int,
"globalWaitingTime": int,
"agentGroup": "string",
"local": boolean
},
"queueData": {
"waitingTime": int,
"saturated": boolean
},
"pilotNumber": "string",
"rsiNumber": "string",
"supervisedTransfer": boolean,
"pilotTransferInfo": {
"transferPossible": boolean,
"pilotStatus": "OPEN | BLOCKED | BLOCKED_ON_RULE | BLOCKED_ON_BLOCKED_RULE | GENERAL_FORWARDING | ..."
}
},
"trunkIdentification": {
"networkTimeslot": int,
"trunkNeqt": [ int ]
}
},
"initiator": "string",
"legs": [ {
"deviceId": "string",
"state": "UNKNOWN | OFF_HOOK | IDLE | RELEASING | DIALING | HELD | RINGING_INCOMING | ...",
"ringingRemote": boolean,
"capabilities": {
"answer": boolean,
"drop": boolean,
"hold": boolean,
"retrieve": boolean,
"reconnect": boolean,
"mute": boolean,
"unMute": boolean,
"sendDtmf": boolean,
"switchDevice": boolean
}
} ],
"participants": [ {
"participantId": "string",
"identity": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"anonymous": boolean,
"undroppable": boolean,
"state": "RINGING_INCOMING | ACTIVE"
} ],
"deviceCapabilities": [ {
"deviceId": "string",
"makeCall": boolean,
"makeBusinessCall": boolean,
"makePrivateCall": boolean,
"unParkCall": boolean
} ]
} |
Associated methods :
OnCallModifiedThis notification indicates that an existing call has been modified.
Modification of a call can be triggered for various reason: changes on legs, on participants, changes on states, ...
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnCallModified' |
loginName | string | [1] | Login name of the user (identifier which can be used for filtering). |
callRef | string | [1] | Reference of the call. |
cause | CallCause | [0..1] | Cause of the event. |
previousCallRef | string | [0..1] | If specified, this call reference indicates that the "callRef " replace "previousCallRef ".
This also indicates that "previousCallRef " has been removed (call removed event is not generated) |
replacedByCallRef | string | [0..1] | This call reference appears when a call is released, the replacedByCallRef
if present indicates that the "callRef " is replaced by this one. |
callData | CallData | [0..1] | Call data modified (if not specified, it means there is no modification). |
modifiedLegs | Leg | [0..*] | Legs modified (if not specified, it means there is no modification). |
addedLegs | Leg | [0..*] | Legs added (if not specified, it means there is no added leg). |
removedLegs | Leg | [0..*] | Legs removed (if not specified, it means there is no removed leg). |
modifiedParticipants | Participant | [0..*] | Participants modified (if not specified, it means there is no modification). |
addedParticipants | Participant | [0..*] | Participants added (if not specified, it means there is no added participant). |
removedParticipantIds | string | [0..*] | Participants removed (if not specified, it means there is no removed participant). |
deviceCapabilities | DeviceCapabilities | [0..*] | Devices capabilities modified (if not specified, it means there is no modification). |
[+] : JSON Example{
"eventName": "string",
"loginName": "string",
"callRef": "string",
"cause": "ABANDONED | ALL_TRUNK_BUSY | BUSY | CLEARED | PARTICIPANT_LEFT | CONFERENCED | ...",
"previousCallRef": "string",
"replacedByCallRef": "string",
"callData": {
"initialCalled": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"lastRedirecting": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"deviceCall": boolean,
"anonymous": boolean,
"callUUID": "string",
"state": "UNKNOWN | OFF_HOOK | IDLE | RELEASING | DIALING | HELD | RINGING_INCOMING | ...",
"recordState": "PAUSED | RECORDING",
"tags": [ {
"name": "string",
"value": "string",
"visibilities": [ "string" ]
} ],
"capabilities": {
"addDevice": boolean,
"addParticipant": boolean,
"intruded": boolean,
"intrusion": boolean,
"transfer": boolean,
"blindTransfer": boolean,
"merge": boolean,
"redirect": boolean,
"pickedUp": boolean,
"redirectToVoiceMail": boolean,
"redirectToDVA": boolean,
"overflowToVoiceMail": boolean,
"dropMe": boolean,
"terminate": boolean,
"reject": boolean,
"callBack": boolean,
"park": boolean,
"startRecord": boolean,
"stopRecord": boolean,
"pauseRecord": boolean,
"resumeRecord": boolean,
"dropParticipant": boolean,
"muteParticipant": boolean,
"holdParticipant": boolean
},
"associateData": "string",
"hexaBinaryAssociatedData": "string",
"accountInfo": "string",
"acdCallData": {
"callInfo": {
"queueWaitingTime": int,
"globalWaitingTime": int,
"agentGroup": "string",
"local": boolean
},
"queueData": {
"waitingTime": int,
"saturated": boolean
},
"pilotNumber": "string",
"rsiNumber": "string",
"supervisedTransfer": boolean,
"pilotTransferInfo": {
"transferPossible": boolean,
"pilotStatus": "OPEN | BLOCKED | BLOCKED_ON_RULE | BLOCKED_ON_BLOCKED_RULE | GENERAL_FORWARDING | ..."
}
},
"trunkIdentification": {
"networkTimeslot": int,
"trunkNeqt": [ int ]
}
},
"modifiedLegs": [ {
"deviceId": "string",
"state": "UNKNOWN | OFF_HOOK | IDLE | RELEASING | DIALING | HELD | RINGING_INCOMING | ...",
"ringingRemote": boolean,
"capabilities": {
"answer": boolean,
"drop": boolean,
"hold": boolean,
"retrieve": boolean,
"reconnect": boolean,
"mute": boolean,
"unMute": boolean,
"sendDtmf": boolean,
"switchDevice": boolean
}
} ],
"addedLegs": [ {
"deviceId": "string",
"state": "UNKNOWN | OFF_HOOK | IDLE | RELEASING | DIALING | HELD | RINGING_INCOMING | ...",
"ringingRemote": boolean,
"capabilities": {
"answer": boolean,
"drop": boolean,
"hold": boolean,
"retrieve": boolean,
"reconnect": boolean,
"mute": boolean,
"unMute": boolean,
"sendDtmf": boolean,
"switchDevice": boolean
}
} ],
"removedLegs": [ {
"deviceId": "string",
"state": "UNKNOWN | OFF_HOOK | IDLE | RELEASING | DIALING | HELD | RINGING_INCOMING | ...",
"ringingRemote": boolean,
"capabilities": {
"answer": boolean,
"drop": boolean,
"hold": boolean,
"retrieve": boolean,
"reconnect": boolean,
"mute": boolean,
"unMute": boolean,
"sendDtmf": boolean,
"switchDevice": boolean
}
} ],
"modifiedParticipants": [ {
"participantId": "string",
"identity": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"anonymous": boolean,
"undroppable": boolean,
"state": "RINGING_INCOMING | ACTIVE"
} ],
"addedParticipants": [ {
"participantId": "string",
"identity": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"anonymous": boolean,
"undroppable": boolean,
"state": "RINGING_INCOMING | ACTIVE"
} ],
"removedParticipantIds": [ "string" ],
"deviceCapabilities": [ {
"deviceId": "string",
"makeCall": boolean,
"makeBusinessCall": boolean,
"makePrivateCall": boolean,
"unParkCall": boolean
} ]
} |
Associated methods :
OnCallRemovedThis notification indicates that a call has been removed (hang up, transfer...).
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnCallRemoved' |
loginName | string | [1] | Login name of the user (identifier which can be used for filtering). |
callRef | string | [1] | Reference of the call. |
cause | CallCause | [0..1] | Cause of the event. |
newDestination | string | [0..1] | If the call is forwarded or redirected, this field indicate the new destination number.
This number is a user phone number if the destination is a device associated to an user,
else the number is the number provided by the system. |
deviceCapabilities | DeviceCapabilities | [0..*] | Devices capabilities (if not specified, it means there is no modification). |
[+] : JSON Example{
"eventName": "string",
"loginName": "string",
"callRef": "string",
"cause": "ABANDONED | ALL_TRUNK_BUSY | BUSY | CLEARED | PARTICIPANT_LEFT | CONFERENCED | ...",
"newDestination": "string",
"deviceCapabilities": [ {
"deviceId": "string",
"makeCall": boolean,
"makeBusinessCall": boolean,
"makePrivateCall": boolean,
"unParkCall": boolean
} ]
} |
Associated methods :
OnDeviceStateModifiedThis notification indicates that device's state has been modified.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnDeviceStateModified' |
loginName | string | [1] | Login name of the user (identifier which can be used for filtering). |
deviceStates | DeviceState | [1..*] | Device state modified. |
[+] : JSON Example{
"eventName": "string",
"loginName": "string",
"deviceStates": [ {
"deviceId": "string",
"state": "IN_SERVICE | OUT_OF_SERVICE | UNKNOWN",
"cause": "ABANDONED | ALL_TRUNK_BUSY | BUSY | CLEARED | PARTICIPANT_LEFT | CONFERENCED | ..."
} ]
} |
OnDynamicStateChangedThis notification indicates the user's dynamic state change. (hunting group logon state)
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnDynamicStateChanged' |
loginName | string | [1] | Login name of the user (identifier which can be used for filtering). |
huntingGroupState | HuntingGroupStatus | [0..1] | User hg state. |
Associated methods :
OnTelephonyStateThis notification indicates the telephonic state (calls[] and deviceCapabilities[]) of a user
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnTelephonyState' |
loginName | string | [1] | Login name of the user (identifier which can be used for filtering). |
state | TelephonicState | [0..1] | telephonic state of the user. |
[+] : JSON Example{
"eventName": "string",
"loginName": "string",
"state": {
"calls": [ {
"callRef": "string",
"callData": {
"initialCalled": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"lastRedirecting": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"deviceCall": boolean,
"anonymous": boolean,
"callUUID": "string",
"state": "UNKNOWN | OFF_HOOK | IDLE | RELEASING | DIALING | HELD | RINGING_INCOMING | ...",
"recordState": "PAUSED | RECORDING",
"tags": [ {
"name": "string",
"value": "string",
"visibilities": [ "string" ]
} ],
"capabilities": {
"addDevice": boolean,
"addParticipant": boolean,
"intruded": boolean,
"intrusion": boolean,
"transfer": boolean,
"blindTransfer": boolean,
"merge": boolean,
"redirect": boolean,
"pickedUp": boolean,
"redirectToVoiceMail": boolean,
"redirectToDVA": boolean,
"overflowToVoiceMail": boolean,
"dropMe": boolean,
"terminate": boolean,
"reject": boolean,
"callBack": boolean,
"park": boolean,
"startRecord": boolean,
"stopRecord": boolean,
"pauseRecord": boolean,
"resumeRecord": boolean,
"dropParticipant": boolean,
"muteParticipant": boolean,
"holdParticipant": boolean
},
"associateData": "string",
"hexaBinaryAssociatedData": "string",
"accountInfo": "string",
"acdCallData": {
"callInfo": {
"queueWaitingTime": int,
"globalWaitingTime": int,
"agentGroup": "string",
"local": boolean
},
"queueData": {
"waitingTime": int,
"saturated": boolean
},
"pilotNumber": "string",
"rsiNumber": "string",
"supervisedTransfer": boolean,
"pilotTransferInfo": {
"transferPossible": boolean,
"pilotStatus": "OPEN | BLOCKED | BLOCKED_ON_RULE | BLOCKED_ON_BLOCKED_RULE | GENERAL_FORWARDING | ..."
}
},
"trunkIdentification": {
"networkTimeslot": int,
"trunkNeqt": [ int ]
}
},
"legs": [ {
"deviceId": "string",
"state": "UNKNOWN | OFF_HOOK | IDLE | RELEASING | DIALING | HELD | RINGING_INCOMING | ...",
"ringingRemote": boolean,
"capabilities": {
"answer": boolean,
"drop": boolean,
"hold": boolean,
"retrieve": boolean,
"reconnect": boolean,
"mute": boolean,
"unMute": boolean,
"sendDtmf": boolean,
"switchDevice": boolean
}
} ],
"participants": [ {
"participantId": "string",
"identity": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"anonymous": boolean,
"undroppable": boolean,
"state": "RINGING_INCOMING | ACTIVE"
} ]
} ],
"deviceCapabilities": [ {
"deviceId": "string",
"makeCall": boolean,
"makeBusinessCall": boolean,
"makePrivateCall": boolean,
"unParkCall": boolean
} ],
"userState": "FREE | BUSY | UNKNOWN"
}
} |
Associated method :
OnUserStateModifiedThis notification indicates that user's state has been modified (FREE, BUSY ...).
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnUserStateModified' |
loginName | string | [1] | Login name of the user (identifier which can be used for filtering). |
state | UserState | [1] | User state. |
[+] : JSON Example{
"eventName": "string",
"loginName": "string",
"state": "FREE | BUSY | UNKNOWN"
} |
Associated methods :
OperationalStateList the different operational states.
Value | Description |
---|
IN_SERVICE | Operational state is in service. |
OUT_OF_SERVICE | Operational state is out of service. |
UNKNOWN | Operational state is unknown. |
ParkRequestRequest to park an active call on a target device.
If the call shall be parked on the current device, just omit the target device
Name | Type | Cardinality | Description |
---|
parkTo | string | [0..1] | Phone number device where to park the call . |
Associated method :
ParticipantDetail about a kind of participant.
Name | Type | Cardinality | Description |
---|
participantId | string | [1] | Participant identifier (Should not be displayed). |
identity | PartyInfo | [0..1] | Participant identity card. |
anonymous | boolean | [0..1] | Participant identity is secret |
undroppable | boolean | [0..1] | If true this participant can not be dropped. |
state | MediaState | [0..1] | Participant state. This field is only filled in multi-party call (>=3 participants) and only when the Participant mediaState is
changed to RINGING_INCOMING or from RINGING_INCOMING to ACTIVE. |
[+] : JSON Example{
"participantId": "string",
"identity": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"anonymous": boolean,
"undroppable": boolean,
"state": "RINGING_INCOMING | ACTIVE"
} |
Associated method :
ParticipantsContainer for Participants.
Name | Type | Cardinality | Description |
---|
participants | Participant | [0..*] | Container for Participants. |
[+] : JSON Example{
"participants": [ {
"participantId": "string",
"identity": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"anonymous": boolean,
"undroppable": boolean,
"state": "RINGING_INCOMING | ACTIVE"
} ]
} |
Associated method :
ParticipantTypeParticipant type description
Name | Type | Cardinality | Description |
---|
main | MainType | [1] | Gives the main type of the participant: "user", "device", ... |
subType | string | [0..1] | The subType string gives a supplementary information and can contain "pbx", "public", "pre-off-hook", telephony-services", "voicemail", "voice-homepage", "voice-it", "sip"... |
[+] : JSON Example{
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
} |
PartyInfoFull description of a party involved in a call log record.
Name | Type | Cardinality | Description |
---|
id | Identifier | [1] | Identifier of the party. |
firstName | string | [0..1] | First name. |
lastName | string | [0..1] | Last name. |
displayName | string | [0..1] | Display name (display names are used in SIP URIs).
Notice: if previous fields lastname/firstname are filled then displayName field will be empty |
type | ParticipantType | [0..1] | Type of participant. |
[+] : JSON Example{
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
} |
PickupRequestRequest to pickup a call.
Name | Type | Cardinality | Description |
---|
otherCallRef | string | [0..1] | Reference of the call to pickup (on the remote user): Not used(can be omitted). |
otherPhoneNumber | string | [0..1] | Phone number on which the call is to pickup (direct pickup).
If not provided, a group (hunting or processing group, in case of an agent) call pickup will be attempted |
autoAnswer | boolean | [0..1] | Not used. |
Associated method :
PilotQueryParamDescribes parameters related to a pilot information request.
it allows the retrieval of CCD distribution information according to the call profile.
Name | Type | Cardinality | Description |
---|
agentNumber | string | [0..1] | agent number call profile. Optional |
skills | ACRSkills | [0..1] | Skills associated to the call profile. Optional |
priorityTransfer | boolean | [0..1] | In case the transfer will a be priority one. Optional |
supervisedTransfer | boolean | [0..1] | In case the transfer will be supervised. Optional |
[+] : JSON Example{
"agentNumber": "string",
"skills": {
"skills": [ {
"skillNumber": int,
"acrStatus": boolean,
"expertEvalLevel": int
} ]
},
"priorityTransfer": boolean,
"supervisedTransfer": boolean
} |
Associated methods :
PilotStatusLists the different ACD pilot status.
Value | Description |
---|
OPEN | |
BLOCKED | |
BLOCKED_ON_RULE | |
BLOCKED_ON_BLOCKED_RULE | |
GENERAL_FORWARDING | |
GENERAL_FORWARDING_ON_RULE | |
BLOCKED_ON_GENERAL_FORWARDING_RULE | |
OTHER | |
PilotTransferCapaPilot transfer capability information in response of a query transfer request
Name | Type | Cardinality | Description |
---|
number | string | [0..1] | the number of the pilot |
waitingTime | int | [0..1] | the estimated waiting time for the pilot |
saturation | boolean | [0..1] | the queue state of the pilot |
supervisedTransfer | boolean | [0..1] | the transfer will be supervised |
transferInfo | PilotTransferInfo | [0..1] | the transfer is possible |
[+] : JSON Example{
"number": "string",
"waitingTime": int,
"saturation": boolean,
"supervisedTransfer": boolean,
"transferInfo": {
"transferPossible": boolean,
"pilotStatus": "OPEN | BLOCKED | BLOCKED_ON_RULE | BLOCKED_ON_BLOCKED_RULE | GENERAL_FORWARDING | ..."
}
} |
Associated method :
PilotTransferInfoDescribes data relative to an ACD Queue Pilot.
Name | Type | Cardinality | Description |
---|
transferPossible | boolean | [0..1] | true means the transfer to pilot or RSI is possible. |
pilotStatus | PilotStatus | [0..1] | Status of the pilot. |
[+] : JSON Example{
"transferPossible": boolean,
"pilotStatus": "OPEN | BLOCKED | BLOCKED_ON_RULE | BLOCKED_ON_BLOCKED_RULE | GENERAL_FORWARDING | ..."
} |
QueueDataDescribes data relative to an ACD Queue Pilot.
Name | Type | Cardinality | Description |
---|
waitingTime | int | [0..1] | estimated waiting time in the queue(in seconds). |
saturated | boolean | [0..1] | true means the queue is saturated. |
ReconnectRequestRequest to reconnect a calls after cancelling an enquiry call(in active or ringing state).
Name | Type | Cardinality | Description |
---|
deviceId | string | [1] | Device phone number for which the operation is invoked.
If the session is opened by a User, the device phone number must be one of the user. |
enquiryCallRef | string | [1] | Reference of the enquiryCallRef call to cancel. |
Associated method :
RecordStateLists the different state when recording.
Value | Description |
---|
PAUSED | Recording is paused. |
RECORDING | Recording is in progress. |
RedirectRequestRequest to redirect a call.
Name | Type | Cardinality | Description |
---|
redirectTo | string | [1] | Phone number of the target of the redirection |
anonymous | boolean | [0..1] | Anonymous call (secret identity).
This parameter is optional. If it is omitted, anonymous is not set for this call. |
Associated method :
RetrieveRequest
[Tel]: Request to retrieve a call.
Name | Type | Cardinality | Description |
---|
deviceId | string | [1] | Device phone number for which the operation is invoked.
If the session is opened by a User, the device phone number must be one of the user. |
Associated method :
SendAccountInfoRequestRequest to send the account info.
For a CCD agent, this is the mean to send the transaction code at the end of a call.
Name | Type | Cardinality | Description |
---|
deviceId | string | [0..1] | Device phone number for which the operation is invoked.
If the session is opened by a User, the device phone number must be one of the user. |
accountInfo | string | [1] | This is used by the application to provide the transaction code. |
Associated method :
SendAssociatedDataRequestRequest to send associated data.
Name | Type | Cardinality | Description |
---|
deviceId | string | [0..1] | Device phone number for which the operation is invoked.
If the session is opened by a User, the device phone number must be one of the user. |
associatedData | string | [0..1] | This is used by the application to provide application-related information (limited to 32 bytes).
In general, it is used to give information concerning a previously established call to the party of a second call.
Example: user B has receives an external call. Before he makes an enquiry call to userB, he associates Data to this incoming call. If user A transfers the call to userB, userB is notified
with the transfer of the call with an event containing CallData with the associateDAta.
Its usage is exclusive from the byte array binaryAssociatedData (if associatedData is present, hexaBinaryAssociatedData is discarded). |
hexaBinaryAssociatedData | string | [0..1] | To used by the application if the associate data is a non-printing character string but an array of bytes.
In this case, the associate data is passed as a sequence of hexadecimal bytes (ex: "f3f40201").
Caution: byte '00' is not authorized by OXE (will be interpreted as termination character).
Its usage is exclusive from the String associatedData (if associatedData is present, hexaBinaryAssociatedData is discarded). |
[+] : JSON Example{
"deviceId": "string",
"associatedData": "string",
"hexaBinaryAssociatedData": "string"
} |
Associated method :
SendDtmfRequestRequest to send DTMF
Name | Type | Cardinality | Description |
---|
deviceId | string | [1] | Device phone number for which the operation is invoked.
If the session is opened by a User, the device phone number must be one of the user. |
number | string | [1] | DTMF codes. |
Associated method :
string'string' represents character strings.
SwitchDeviceRequestRequest to switch between two devices.
Name | Type | Cardinality | Description |
---|
otherDeviceId | string | [1] | Device phone number on which to switch. |
Associated method :
TagDescribes a Tag (a defined name and a value).
Name | Type | Cardinality | Description |
---|
name | string | [1] | Tag name. |
value | string | [0..1] | Tag value. |
visibilities | string | [0..*] | Visibility of this tag : list of login name. |
TelephonicStateSnapshot of the user's telephonic state.
Name | Type | Cardinality | Description |
---|
calls | Call | [0..*] | List of current calls. |
deviceCapabilities | DeviceCapabilities | [0..*] | Gives the list of device's capabilities. |
userState | UserState | [0..1] | state of the user: is only used in case the user is busy unknown at monitoring |
[+] : JSON Example{
"calls": [ {
"callRef": "string",
"callData": {
"initialCalled": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"lastRedirecting": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"deviceCall": boolean,
"anonymous": boolean,
"callUUID": "string",
"state": "UNKNOWN | OFF_HOOK | IDLE | RELEASING | DIALING | HELD | RINGING_INCOMING | ...",
"recordState": "PAUSED | RECORDING",
"tags": [ {
"name": "string",
"value": "string",
"visibilities": [ "string" ]
} ],
"capabilities": {
"addDevice": boolean,
"addParticipant": boolean,
"intruded": boolean,
"intrusion": boolean,
"transfer": boolean,
"blindTransfer": boolean,
"merge": boolean,
"redirect": boolean,
"pickedUp": boolean,
"redirectToVoiceMail": boolean,
"redirectToDVA": boolean,
"overflowToVoiceMail": boolean,
"dropMe": boolean,
"terminate": boolean,
"reject": boolean,
"callBack": boolean,
"park": boolean,
"startRecord": boolean,
"stopRecord": boolean,
"pauseRecord": boolean,
"resumeRecord": boolean,
"dropParticipant": boolean,
"muteParticipant": boolean,
"holdParticipant": boolean
},
"associateData": "string",
"hexaBinaryAssociatedData": "string",
"accountInfo": "string",
"acdCallData": {
"callInfo": {
"queueWaitingTime": int,
"globalWaitingTime": int,
"agentGroup": "string",
"local": boolean
},
"queueData": {
"waitingTime": int,
"saturated": boolean
},
"pilotNumber": "string",
"rsiNumber": "string",
"supervisedTransfer": boolean,
"pilotTransferInfo": {
"transferPossible": boolean,
"pilotStatus": "OPEN | BLOCKED | BLOCKED_ON_RULE | BLOCKED_ON_BLOCKED_RULE | GENERAL_FORWARDING | ..."
}
},
"trunkIdentification": {
"networkTimeslot": int,
"trunkNeqt": [ int ]
}
},
"legs": [ {
"deviceId": "string",
"state": "UNKNOWN | OFF_HOOK | IDLE | RELEASING | DIALING | HELD | RINGING_INCOMING | ...",
"ringingRemote": boolean,
"capabilities": {
"answer": boolean,
"drop": boolean,
"hold": boolean,
"retrieve": boolean,
"reconnect": boolean,
"mute": boolean,
"unMute": boolean,
"sendDtmf": boolean,
"switchDevice": boolean
}
} ],
"participants": [ {
"participantId": "string",
"identity": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"multiLine": boolean
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"anonymous": boolean,
"undroppable": boolean,
"state": "RINGING_INCOMING | ACTIVE"
} ]
} ],
"deviceCapabilities": [ {
"deviceId": "string",
"makeCall": boolean,
"makeBusinessCall": boolean,
"makePrivateCall": boolean,
"unParkCall": boolean
} ],
"userState": "FREE | BUSY | UNKNOWN"
} |
Associated method :
TransferRequestRequest to transfer the held call to a new destination.
Name | Type | Cardinality | Description |
---|
heldCallRef | string | [1] | Reference of the held call. |
Associated method :
TrunkIdentificationFor external call, provide information on network timeslot and trunk eqt number
Name | Type | Cardinality | Description |
---|
networkTimeslot | int | [0..1] | the network time slot. |
trunkNeqt | int | [0..*] | trunk equipment number (Could be 2 nbrs in case of conference with 2 different external trunks. |
[+] : JSON Example{
"networkTimeslot": int,
"trunkNeqt": [ int ]
} |
UnParkRequestRequest to unpark a call from a target device where the call has been parked.
If the call has been parked on the current device, the target device is not required.
Name | Type | Cardinality | Description |
---|
unParkFrom | string | [0..1] | Phone number of the device where the call has been parked. |
Associated method :
UserStateLists the different types of user state.
Value | Description |
---|
FREE | User is free. |
BUSY | User is busy. |
UNKNOWN | The user state is unknown. |
Directory search
Presentation
The OXE call server phone book is used to search for a contact.
Operations can be invoked using:
- A user session having the TELEPHONY_ADVANCED license.
- An administrator supervising a user having the TELEPHONY_ADVANCED license.
- An administrator without any delegation or account supervision.
A directory search is a set of 2 or more sequential operations:
- the first (POST) operation is the initiation of the search with a set of criteria
- the second one (GET) is to retrieve the first results of the search
- if there are more results, the GET operation may be repeated
Resources summary
Resources
/directory/search
Methods
Initiates a search
Note: For the whole solution only 100 concurrent searches are authorized.
For each session (user or administrator), only 5 concurrent searches are authorized.
An unused search context is freed after 1 minute.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
201 | string | application/json
| CREATED |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Initiates a search
request :POST https://server/api/rest/1.0/directory/search
Content-Type: application/json
{
"filter" : {
"field": "lastName",
"operation": "BEGIN_WITH",
"operand": "L"
}
}
response : Gets the next available results for the current search.
The principle for executing a search is as follows:
Start a search using the previous operations
Call the getSearch
operation in a loop and for each iteration :
- if the
status
is NOK
, the search is in progress but no result is available : it is recommended to wait before the next iteration (500ms for example)
- if the
status
result code is OK
, you can process the results
- if the
status
result code is FINISH
or TIMEOUT
, exit the loop
At each iteration you can stop the search using the stopSearch
operation and exit the loop.
Note: For the whole solution only 100 concurrent searches are authorized.
For each session (user or administrator), only 5 concurrent searches are authorized.
An unused search context is freed after 1 minute.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | SearchResult | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Gets the next available results
request :GET https://server/api/rest/1.0/directory/search
Accept: application/json
response :200 OK
Content-Type: application/json
{"resultCode":"OK",
"resultElements":[
{
"contacts":[
{"id": {"loginName":"oxe10000",
"phoneNumber":"10000"
},
"firstName":"F10000",
"lastName":"L10000"
}
]
},
]
}
Deletes (stops) search query
Note: For the whole solution only 100 concurrent searches are authorized.
For each session (user or administrator), only 5 concurrent searches are authorized.
An unused search context is freed after 1 minute.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Deletes search query
request :DELETE https://server/api/rest/1.0/directory/search
Accept: application/json
response :204 No Content
/directory/searchbydtmf
Methods
Initiates a search by dtmf, giving the phoneset keyboard corresponding digits
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
201 | string | application/json
| CREATED |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Initiates a search by dtmf for user whose lastname begins with "L"
request :POST https://server/api/rest/1.0/directory/searchbydtmf
Content-Type: application/json
{
"keyboardType": "ITU",
"lastName": "5"
}
response :201 Created
Location: http://<server>/api/rest/1.0/directory/search/
Representations
AttributeLists the different types of attributes.
Value | Description |
---|
lastName | Last name. |
firstName | First name. |
id.phoneNumber | The format of the value of an attribute of type PHONENUMBER can be "displaynumber"<dialable number> .
displaynumber is the phone number which will be displayed on the device or on the application.
displaynumber is written between two double quote characters.
dialable number is the phone number which will be used to dial by the device or by the application.
dialable number is written between less than sign and greater than sign character.
The usual format is always possible when no difference is made between the display number and the dialable number. |
id.loginName | Login name. |
CriterionCriterion descriptor.
[+] : JSON Example 1 {
"field": "lastName | firstName | id.phoneNumber | id.loginName",
"operation": "OR | AND | EQUAL_IGNORE_CASE | BEGIN_WITH | CONTAIN | END_WITH",
"operand": "string" or [ { Criterion } ]
} [+] : JSON Example 2 {
"field": "lastName",
"operation": "BEGIN_WITH",
"operand": "last"
} [+] : JSON Example 3 {
"operation": "AND",
"operand": [
{
"field": "firstName",
"operation": "BEGIN_WITH",
"operand": "first"
},
{
"field": "lastName",
"operation": "BEGIN_WITH",
"operand": "last"
}
]
} |
IdentifierDescription of Identifier
Name | Type | Cardinality | Description |
---|
loginName | string | [0..1] | Login name |
phoneNumber | string | [0..1] | Phone number |
int'int' is a 32-bit number (-2147483648 to 2147483647).
KeyboardTypeOperationThe types of operation
Value | Description |
---|
OR | OR operation. |
AND | AND operation. |
EQUAL_IGNORE_CASE | EQUAL_IGNORE operation. |
BEGIN_WITH | BEGIN_WITH operation. |
CONTAIN | CONTAIN operation. |
END_WITH | END_WITH operation. |
PartyInfoDescription of PartyInfo
Name | Type | Cardinality | Description |
---|
id | Identifier | [0..1] | PartyInfo identifier object |
firstName | string | [0..1] | First name |
lastName | string | [0..1] | Last name |
ResultCodeThis code is returned each time you try to retrieve responses after a search
has been started (
getNextResults
operation).
Value | Description |
---|
OK | Responses are provided this time. You will have to continue to invoke getNextResults periodically to get the next response. |
NOK | No responses this time. You will have to continue to invoke getNextResults periodically to get the next response. |
FINISH | Search is finished. You no longer need to invoke getNextResults , there are no more responses. |
TIMEOUT | Search is ended for timeout reason. You no longer need to invoke getNextResults , there are no more responses. |
ResultElementGives a result which matches the criterion given in search operation.
The records are obtained by periodically invoking the
getNextResults
operation.
Name | Type | Cardinality | Description |
---|
contacts | PartyInfo | [0..*] | Array of ContactDTO objects |
[+] : JSON Example{
"contacts": [ {
"id": {
"loginName": "string",
"phoneNumber": "string"
},
"firstName": "string",
"lastName": "string"
} ]
} |
SearchByDtmfRequestThis element is used to start an advanced search.
Name | Type | Cardinality | Description |
---|
lastName | string | [1] | The value of lastname to search in DTMF format |
firstName | string | [0..1] | The value of firstname to search in DTMF format |
keyboardType | KeyboardType | [1] | The keyboard type |
limit | int | [0..1] | Maximum number of results. Default value is 100.
The range of supported values is [1 .. 100]. |
[+] : JSON Example{
"lastName": "string",
"firstName": "string",
"keyboardType": "CCITT | ITU",
"limit": int
} |
Associated method :
SearchRequestThis element is used to start an advanced search.
Name | Type | Cardinality | Description |
---|
limit | int | [0..1] | Maximum number of results. Default value is 100.
The range of supported values is [1 .. 100]. |
filter | Criterion | [1] | searching criterion. |
[+] : JSON Example{
"limit": int,
"filter": {
"field": "lastName | firstName | id.phoneNumber | id.loginName",
"operation": "OR | AND | EQUAL_IGNORE_CASE | BEGIN_WITH | CONTAIN | END_WITH",
"operand": "string" or [ { Criterion } ]
}
} |
Associated method :
SearchResultThe result of a search
Name | Type | Cardinality | Description |
---|
resultCode | ResultCode | [0..1] | Search result status code. |
resultElements | ResultElement | [0..*] | Search result elements. |
[+] : JSON Example{
"resultCode": "OK | NOK | FINISH | TIMEOUT",
"resultElements": [ {
"contacts": [ {
"id": {
"loginName": "string",
"phoneNumber": "string"
},
"firstName": "string",
"lastName": "string"
} ]
} ]
} |
Associated method :
string'string' represents character strings.
Routing management
Presentation
The Routing service allows a user to activate forward or overflow of incoming calls on other destinations like other users or voicemail.
If the user has a mobile phone, he can also choose to select or not the mobile as a presentation route for incoming calls.
The overflow service is used to redirect the incoming calls on the associate, while the forward service is used to redirect the incoming calls on other number or on voice mail.
Forward may be activated on IMMEDIATE mode or, like overflow, on modes: BUSY/NO_ANSWER/BOTH.
Overflow destinations is only used when the forward destination is not active.
Resources summary
Resource | Method | Description |
---|
/routing | GET | Allows an application to know what the user is allowed to do. |
POST | Sets the specified routes
This method is mainly used to activate/deactivate the Remote Extension by passing a presentationRoute which contains a route with destinationType is MOBILE and selected value "true/false"
(Only this route can be used)
For compatibility, it can be also used to set the forward. |
/routing/dnd | GET | Retrieves the current dnd state. |
POST | Set the dnd state. |
DELETE | Cancel the dnd. |
/routing/forwardroute | GET | Retrieves the forward route. |
DELETE | Cancels the forward route. |
POST | Set the forward route. |
/routing/overflowroute | GET | Retrieves the overflow route. |
POST | Sets the specified overflow routes. |
DELETE | Cancels the overflow routes. |
/routing/state | GET | Retrieves the routing context state. |
/routing/state/snapshot | POST | Ask a snapshot event on user dynamic state. |
Notification summary
Resources
/routing
Methods
Allows an application to know what the user is allowed to do.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | Capabilities | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the routing capabilities of a user.
request :GET https://server/api/rest/1.0/routing
response :if the user has a remote Extension(presentationRoute is true)
Content-Type: application/json
{
"presentationRoute": true,
"forwardRoute": true,
"overflowRoute": true,
"dnd":true
}
Sets the specified routes
This method is mainly used to activate/deactivate the Remote Extension by passing a presentationRoute which contains a route with destinationType is MOBILE and selected value "true/false"
(Only this route can be used)
For compatibility, it can be also used to set the forward.
.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
sipNomadic | boolean | |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Make an immediate forward to my voicemail.
All routing profiles are automatically disabled.
(The forwardType is an optional condition to forward route. If this parameter is not provided, forward is unconditional: i.e immediate.)
request :POST https://server/api/rest/1.0/routing
Content-Type: application/json
{
"forwardRoutes": [
{
"destinations": [
{
"type": "VOICEMAIL"
}
]
}
]
}
response :204 No Content
[+] : Make a conditional forward (BUSY) to my voicemail.
All routing profiles are automatically disabled.
request :POST https://server/api/rest/1.0/routing
Content-Type: application/json
{
"forwardRoutes": [
{
"forwardType": "BUSY",
"destinations": [
{
"type": "VOICEMAIL"
}
]
}
]
}
response :204 No Content
[+] : Activate the remote extension.
request :POST https://server/api/rest/1.0/routing
Content-Type: application/json
{
"presentationRoutes": [
{
"destinations": [ {
"type": "MOBILE",
"selected": "true"
}
]
}
]
}
response :204 No Content
[+] : DeActivate the remote extension.
request :POST https://server/api/rest/1.0/routing
Content-Type: application/json
{
"presentationRoutes": [
{
"destinations": [ {
"type": "MOBILE",
"selected": "false"
}
]
}
]
}
response :204 No Content
Associated notifications
/routing/dnd
Methods
Retrieves the current dnd state.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | DNDState | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Retrieves the current dnd state.
request :GET https://server/api/rest/1.0/routing/dnd
response :for a user which dnd is activate
200 OK
Content-Type: application/json
{
"activate": "true"
}
Set the dnd state.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Activate DND
request :POST https://server/api/rest/1.0/routing/dnd
response :204 No Content
Associated notifications
Cancel the dnd.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Deactivate DND
request :DELETE https://server/api/rest/1.0/routing/dnd
response :204 No Content
Associated notifications
/routing/forwardroute
Methods
Retrieves the forward route.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | ForwardRoute | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : A forward on BUSY is activated to the user voicemail.
request :GET https://server/api/rest/1.0/routing/forwardroute
response :200 OK
Content-Type: application/json
{
"forwardType": "BUSY",
"destinations": [
{
"type": "VOICEMAIL"
}
]
}
Cancels the forward route.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Cancels the forward routes.
request :DELETE https://server/api/rest/1.0/routing/forwardroute
response :204 No Content
Associated notifications
Set the forward route.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Make an immediate forward to my voicemail.
(The forwardType is an optional condition to forward route. If forwardType is not provided, forward is unconditional: i.e immediate.)
request :POST https://server/api/rest/1.0/routing/forwardroute
Content-Type: application/json
{
"forwardRoute":
{
"destinations": [
{
"type": "VOICEMAIL"
}
]
}
}
response :204 No Content
[+] : Make a conditional forward (BUSY) to my voicemail.
All routing profiles are automatically disabled.
request :POST https://server/api/rest/1.0/routing/forwardroute
Content-Type: application/json
{
"forwardRoute":
{
"forwardType": "BUSY",
"destinations": [
{
"type": "VOICEMAIL"
}
]
}
}
response :204 No Content
[+] : Make an immediate forward to a number.
request :POST https://server/api/rest/1.0/routing/forwardroute
Content-Type: application/json
{
"forwardRoute":
{
"destinations": [
{
"type": "NUMBER",
"number":"32539"
}
]
}
}
response :204 No Content
[+] : Make a conditional forward (BUSY) on a number
("forwardType" parameter is necessary)
request :POST https://server/api/rest/1.0/routing/forwardroute
Content-Type: application/json
{
"forwardRoute":
{
"forwardType": "BUSY",
"destinations": [
{
"type": "NUMBER",
"number":"32539"
}
]
}
}
response : Associated notifications
/routing/overflowroute
Methods
Retrieves the overflow route.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | OverflowRoute | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : An overflow on BUSY is activated to the user voicemail.
request :GET https://server/api/rest/1.0/routing/overflowroute
response :200 OK
Content-Type: application/json
{
"overflowType": "BUSY",
"destinations": [
{
"type": "VOICEMAIL"
}
]
}
Sets the specified overflow routes.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : If the user is busy, route the new calls to the voicemail.
request :POST https://server/api/rest/1.0/routing/overflowroute
Content-Type: application/json
{
"overflowRoutes": [ {
"overflowType":"BUSY",
"destinations": [ {
"type": "VOICEMAIL"
} ]
} ]
}
response :204 No Content
Associated notifications
Cancels the overflow routes.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Cancels the overflow routes.
request :DELETE https://server/api/rest/1.0/routing/overflowroute
response :204 No Content
Associated notifications
/routing/state
Methods
Retrieves the routing context state.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | RoutingState | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the state of my routing, in term of presentation route, forward route and overflow route.
Here, it is the custom routing which is activated and not a routing profile (no appliedProfile information).
The calls will be presented on the device types OFFICE and MOBILE.
A forward on BUSY is activated to the user voicemail and an overflow on NO_ANSWER to a number.
request :GET https://server/api/rest/1.0/routing/state
response :200 OK
Content-Type: application/json
{
"presentationRoutes": [
{
"destinations": [
{
"type": "OFFICE",
"selected": true
},
{
"type": "MOBILE",
"selected": true
}
]
}
],
"forwardRoutes": [
{
"forwardType": "BUSY",
"destinations": [
{
"type": "VOICEMAIL"
}
]
}
],
"overflowRoutes": [
{
"overflowType": "NO_ANSWER",
"destinations": [
{
"type": "NUMBER",
"number": "123456789"
}
]
}
],
"currentDeviceId": "32776"
}
/routing/state/snapshot
Methods
Ask a snapshot event on user dynamic state.
The event OnRoutingStateChanged will contain the DynamicState (forward/overflow/dnd state)
If this request is made by an administrator and no loginName is provided, the snapshot is asked for all the users
If a second request is asked since the previous one is still in progress, it has no effect.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session identifier matches a user account.
For an administrator session, the loginName must either correspond to an existing user
or be null: in this last case, the snapshot event request is done for all the users.
CAUTION!: this request is immediately acknowledged but the processing may take a long time if the number of users is huge. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
Representations
boolean'boolean' is a data type, having two values (true and false).
CapabilitiesDescribes the routing management capabilities.
Name | Type | Cardinality | Description |
---|
presentationRoute | boolean | [0..1] | If true, the user is allowed to manage presentation routes. |
forwardRoute | boolean | [0..1] | If true, the user is allowed to manage forward routes. |
overflowRoute | boolean | [0..1] | If true, the user is allowed to manage overflow routes. |
dnd | boolean | [0..1] | If true, the user is allowed to manage the doNotDisturb. |
Associated method :
DestinationDescribes a destination.
Name | Type | Cardinality | Description |
---|
type | DestinationType | [1] | Key used to identify the device or other destinations. |
deviceId | string | [0..1] | Filled by the system in routing state. |
number | string | [0..1] | Defines the phone number of an external device.
NOTE: the number must be filled if the destination type is different than VOICEMAIL.
|
selected | boolean | [0..1] | To select or not the destination, only for presentation route .
|
[+] : JSON Example{
"type": "OFFICE | MOBILE | VOICEMAIL | NUMBER | UNKNOWN",
"deviceId": "string",
"number": "string",
"selected": boolean
} |
DestinationTypeLists the different types of a destination.
Value | Description |
---|
OFFICE | Destination is office device(deprecated). |
MOBILE | Destination is mobile device(deprecated). |
VOICEMAIL | Destination is the voice mail of the user. |
NUMBER | Destination is a number.
Used in forward routes. |
UNKNOWN | Unknown destination type. |
DNDStateDescribes a DoNotDisturb state.
The possible state for the DoNotDisturb is activate or not.
Name | Type | Cardinality | Description |
---|
activate | boolean | [0..1] | DnD is activate or not |
Associated method :
ForwardRouteDescribes a forward route.
The possible destination type for a forward route are:
Name | Type | Cardinality | Description |
---|
forwardType | ForwardType | [0..1] | Optional condition to forward route.
If this parameter is not provided forward is unconditional: i.e immediate. |
destinations | Destination | [0..*] | List of destinations where calls can be forwarded:
Only one destination is acceptable. |
[+] : JSON Example{
"forwardType": "BUSY | NO_ANSWER | BUSY_NO_ANSWER",
"destinations": [ {
"type": "OFFICE | MOBILE | VOICEMAIL | NUMBER | UNKNOWN",
"deviceId": "string",
"number": "string",
"selected": boolean
} ]
} |
Associated method :
ForwardTypeLists the different types of forward.
The forwardType is an optional condition to forward route.
If this parameter is not provided, forward is unconditional: i.e IMMEDIATE.
Value | Description |
---|
BUSY | Incoming calls are diverted to the destination when the phone is busy. |
NO_ANSWER | Incoming calls are diverted to the destination after a ringing duration. |
BUSY_NO_ANSWER | Incoming calls are diverted to the destination when the phone is busy or after a ringing duration. |
OnRoutingStateChangedThis notification indicate that routing state is changed.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnRoutingStateChanged' |
loginName | string | [1] | Login name of the user (identifier which can be used for filtering). |
routingState | RoutingState | [1] | Current routing state. |
[+] : JSON Example{
"eventName": "string",
"loginName": "string",
"routingState": {
"presentationRoutes": [ {
"destinations": [ {
"type": "OFFICE | MOBILE | VOICEMAIL | NUMBER | UNKNOWN",
"deviceId": "string",
"number": "string",
"selected": boolean
} ]
} ],
"forwardRoutes": [ {
"forwardType": "BUSY | NO_ANSWER | BUSY_NO_ANSWER",
"destinations": [ {
"type": "OFFICE | MOBILE | VOICEMAIL | NUMBER | UNKNOWN",
"deviceId": "string",
"number": "string",
"selected": boolean
} ]
} ],
"overflowRoutes": [ {
"overflowType": "BUSY | NO_ANSWER | BUSY_NO_ANSWER",
"destinations": [ {
"type": "OFFICE | MOBILE | VOICEMAIL | NUMBER | UNKNOWN",
"deviceId": "string",
"number": "string",
"selected": boolean
} ]
} ],
"dndState": {
"activate": boolean
}
}
} |
Associated methods :
OverflowRouteDescribes an overflow route.
The possible destination types for an overflow route are:
Name | Type | Cardinality | Description |
---|
overflowType | OverflowType | [1] | The overflow type. |
destinations | Destination | [1..*] | List (for compatibility) of destinations where calls can be forwarded.
Only one destination can be used.
|
[+] : JSON Example{
"overflowType": "BUSY | NO_ANSWER | BUSY_NO_ANSWER",
"destinations": [ {
"type": "OFFICE | MOBILE | VOICEMAIL | NUMBER | UNKNOWN",
"deviceId": "string",
"number": "string",
"selected": boolean
} ]
} |
Associated method :
OverflowTypeLists the different types of overflow
Value | Description |
---|
BUSY | Incoming calls are diverted to the destination when the phone is busy. |
NO_ANSWER | Incoming calls are diverted to the destination after a ringing duration. |
BUSY_NO_ANSWER | Incoming calls are diverted to the destination when the phone is busy or after a ringing duration. |
PresentationRouteDescribes a presentation route.
The only possibility is to set or unset the MOBILE as a presentation route:
It will activate or not the Remote Extension if the user as one.
If the MOBILE destination is not present, it means the user has no remote extension.
The OFFICE destination is always activated and it cannot be changed.
Name | Type | Cardinality | Description |
---|
destinations | Destination | [1..*] | List of destinations where calls can be presented simultaneously:
Calls can be forked to OFFICE or OFFICE + MOBILE destinations. |
[+] : JSON Example{
"destinations": [ {
"type": "OFFICE | MOBILE | VOICEMAIL | NUMBER | UNKNOWN",
"deviceId": "string",
"number": "string",
"selected": boolean
} ]
} |
RoutingStateDescribes the routing state.
Name | Type | Cardinality | Description |
---|
presentationRoutes | PresentationRoute | [1..*] | List of presentation routes. |
forwardRoutes | ForwardRoute | [0..*] | List of forward routes. |
overflowRoutes | OverflowRoute | [0..*] | List of overflow routes. |
dndState | DNDState | [0..1] | Do not disturb state |
[+] : JSON Example{
"presentationRoutes": [ {
"destinations": [ {
"type": "OFFICE | MOBILE | VOICEMAIL | NUMBER | UNKNOWN",
"deviceId": "string",
"number": "string",
"selected": boolean
} ]
} ],
"forwardRoutes": [ {
"forwardType": "BUSY | NO_ANSWER | BUSY_NO_ANSWER",
"destinations": [ {
"type": "OFFICE | MOBILE | VOICEMAIL | NUMBER | UNKNOWN",
"deviceId": "string",
"number": "string",
"selected": boolean
} ]
} ],
"overflowRoutes": [ {
"overflowType": "BUSY | NO_ANSWER | BUSY_NO_ANSWER",
"destinations": [ {
"type": "OFFICE | MOBILE | VOICEMAIL | NUMBER | UNKNOWN",
"deviceId": "string",
"number": "string",
"selected": boolean
} ]
} ],
"dndState": {
"activate": boolean
}
} |
Associated method :
SetForwardRouteRequestRequest to activate or cancel the forward of the incoming calls.
Name | Type | Cardinality | Description |
---|
forwardRoute | ForwardRoute | [0..1] | New forward route. |
[+] : JSON Example{
"forwardRoute": {
"forwardType": "BUSY | NO_ANSWER | BUSY_NO_ANSWER",
"destinations": [ {
"type": "OFFICE | MOBILE | VOICEMAIL | NUMBER | UNKNOWN",
"deviceId": "string",
"number": "string",
"selected": boolean
} ]
}
} |
Associated method :
SetOverflowRoutesRequestRequest to set the overflow routes.
Name | Type | Cardinality | Description |
---|
overflowRoutes | OverflowRoute | [1..*] | New overflow routes (only one overflow route can be set). |
[+] : JSON Example{
"overflowRoutes": [ {
"overflowType": "BUSY | NO_ANSWER | BUSY_NO_ANSWER",
"destinations": [ {
"type": "OFFICE | MOBILE | VOICEMAIL | NUMBER | UNKNOWN",
"deviceId": "string",
"number": "string",
"selected": boolean
} ]
} ]
} |
Associated method :
SetRoutesRequestRequest to select current routes for the user.
Name | Type | Cardinality | Description |
---|
presentationRoutes | PresentationRoute | [0..*] |
List of presentation routes (only one presentation route can be set).
|
forwardRoutes | ForwardRoute | [0..*] |
Calls are prior forwarded to the selected destinations (only one forward route can be set).
|
[+] : JSON Example{
"presentationRoutes": [ {
"destinations": [ {
"type": "OFFICE | MOBILE | VOICEMAIL | NUMBER | UNKNOWN",
"deviceId": "string",
"number": "string",
"selected": boolean
} ]
} ],
"forwardRoutes": [ {
"forwardType": "BUSY | NO_ANSWER | BUSY_NO_ANSWER",
"destinations": [ {
"type": "OFFICE | MOBILE | VOICEMAIL | NUMBER | UNKNOWN",
"deviceId": "string",
"number": "string",
"selected": boolean
} ]
} ]
} |
Associated method :
string'string' represents character strings.
Communication log
Presentation
The Communication log service allows
- a user to retrieve its last communication history records.
- a user may also acknowledge or delete any record.
Caution: The call history records are built at O2G server level, thanks to its telephony call monitoring and therefore, the comlog database is built independently of the pbx internal comlog.
The Acknowledge/Unacknowledge of an incoming missed call done by REST API is not consider at OXE level and inversely also.
No synchronization with the call server is done.
Note: 100 tickets max per user.
Note concerning the dates in the records:
- beginDate: is the date of creation for an outgoing call or the date of presentation for an incoming call.
- convDate: is the date of beginning of conversation of the user in the call.
- endDate: is the date when the call diseappears on the user.
Specific case of merged call (enquiry call + conference)
- the comlog ticket of the enquiried user takes the conference call reference but keeps the beginDate and the convDate of the enquiry call.
- when one of the participant first leaves, a comlog ticket is initialized on all the participants (notified by an OnComRecordCreated event)
and then updated (notified by an OnComRecordModified event) on the last participants when the call is completely released.
- If a user is inserted several times in the same conference, as many comlog tickets are generated for this user (one for each call segment) but all with the same call reference.
For the same call, the beginDate and the endDate may be low different(few seconds) between the participants, as the convDate is the same.
Resources summary
Notifications summary
Notification | Description |
---|
OnComRecordCreated | Notification sent when a new comlog entry has been created. |
OnComRecordModified | Notification sent when one or more records have been modified. |
OnComRecordsAck | Notification sent when one or more unanswered comlog records have been acknowledged. |
OnComRecordsDeleted | Notification sent when one or more call log records have been destroyed. |
OnComRecordsUnAck | Notification sent when one or more unanswered comlog records have been unacknowledged. |
Resources
/comlog/records
Methods
Either Acknowledge/Unacknowledge the incoming missed communication records specified by their IDs.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
acknowledge | string | true to acknowledge the list of communication records, false to unacknowledge. |
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
Get all the communication log records.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
recordIdList | string | This parameter is optional. If provided none of the other parameters (except loginName) are taken into account.
This is a comma separated string of IDs of the communication log records to retrieve.
The returned data will contain the requested records and the totalCount information. |
unanswered | boolean | This parameter is optional.
This is a search criterion, when set to true the operation returns only the records for missed calls.
When omitted this operation returns all the records (answered or not) which match the other criteria. |
unacknowledged | boolean | This is a search criterion, when set to true the operation returns only the records unacknowledged.
If false this operation returns all the records (acknowledged or not) which match the other criteria. |
afterDate | string | This parameter is optional.
The string is an UTC datetime whose format is yyyy-MM-ddTHH:mm:ss.SSSZ (example: 2013-05-16T18:17:14.489Z).
This is a search criterion, when used the operation returns the records not older than this date.
When omitted the operation searches for matching records starting from the oldest. |
beforeDate | string | This parameter is optional.
The string is an UTC datetime whose format is yyyy-MM-ddTHH:mm:ss.SSSZ (example: 2013-05-16T18:17:15.489Z).
This is a search criterion, when used the operation returns the records older than this date.
When omitted the operation searches for matching records until the newest. |
role | Role | This parameter is optional.
This is a search criterion, the enum value can be "CALLER", "CALLEE". It defines the role of the user in the communication.
When omitted this operation returns all the records which match the other criteria. |
comRef | string | This parameter is optional.
The comref of the com we want to retrieve. |
remotePartyId | string | This parameter is optional.
Ask to apply the operation on the records in which the user is engaged with this remote party. |
offset | int | This parameter is optional.
The offset of the first record to return.
This parameter, together with "limit" allows to get the communication log "page by page" for application needs.
Default value is 0. |
limit | int | This parameter is optional.
Defines the maximum number of records this operation returns.
Default value is 0 (in this case, we assume that the application wants to load the full communication log). |
optimized | boolean | This parameter is optional.
When set to true the operation returns the full identity of a participant only the first time it occurs, when the same participant appears in several records
When omitted this operation returns the records with no optimization. |
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | ComHistoryRecords | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get all unanswered communication log records.
request :GET https://server/api/rest/1.0/comlog/records?unanswered=false&offset=0&limit=100
response :200 OK
Content-Type: application/json
{
"comHistoryRecords": [
{
"recordId": 10000,
"comref": "009JP4J3J4987CLKVAC1JB5AES000001",
"acknowledge": false,
"archived": false,
"participants": [
{
"role": "CALLER",
"answered": true,
"identity": {
"id": {
"loginName": "oxe32535",
"phoneNumber": "32535",
},
"firstName": "F32535",
"lastName": "L32535_250",
"type": {
"main": "USER",
"subType": ""
}
},
"anonymous": false,
"initialCalled": {
"id": {
"loginName": "oxe32536",
"phoneNumber": "32536",
},
"firstName": "Assistant",
"lastName": "L32536_250",
"type": {
"main": "USER",
"subType": ""
}
},
"reason": "UNKNOWN"
},
{
"identity": {
"id": {
"loginName": "oxe32536",
"phoneNumber": "32536",
},
"firstName": "Assistant",
"lastName": "L32536_250",
"type": {
"main": "USER",
"subType": ""
}
},
"anonymous": false,
"reason": "UNKNOWN"
}
],
"beginDate": "2013-11-13T11:33:45.000Z",
"endDate": "2013-11-13T11:34:38.000Z",
"medias": [
"AUDIO"
],
"attachments": [],
"extensions": []
},
{
"recordId": 9988,
"comref": "006BVDH0TK97L5CNVAC1JB5AES00001K",
"acknowledge": false,
"archived": false,
"participants": [
{
"role": "CALLEE",
"answered": true,
"identity": {
"id": {
"loginName": "oxe32535",
"phoneNumber": "32535",
},
"firstName": "F32535",
"lastName": "L32535_250",
"type": {
"main": "USER",
"subType": ""
}
},
"anonymous": false,
"reason": "UNKNOWN"
},
{
"identity": {
"id": {
"loginName": "oxe32545",
"phoneNumber": "32545",
},
"firstName": "F32545",
"lastName": "L32545",
"type": {
"main": "USER",
"subType": ""
}
},
"anonymous": false,
"reason": "UNKNOWN"
}
],
"beginDate": "2013-11-07T17:15:09.000Z",
"endDate": "2013-11-07T17:15:41.000Z",
"medias": [
"AUDIO"
],
"attachments": [],
"extensions": []
}
],
"offset": 0,
"limit": 100,
"totalCount": 2
}
Delete all (or only the specified) communication log records.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
recordIdList | string | This parameter is optional. If provided none of the other parameters (except loginName) are taken into account.
This is a comma separated string of IDs of the communication log records to delete.
If the IDs are unknown, no error message will be raised. In such case, of course, the OnComRecordDeleted event won't be generated. |
unanswered | string | This parameter is optional.
This is a search criterion, when set to true the operation deletes only the records for missed calls.
When omitted this operation deletes all the records (answered or not) which match the other criteria. |
unacknowledged | string | This is a search criterion, when set to true the operation returns only the records unacknowledged.
If false this operation returns all the records (unacknowledged or not) which match the other criteria. |
afterDate | string | This parameter is optional.
The string is an UTC datetime whose format is yyyy-MM-ddTHH:mm:ss.SSSZ (example: 2013-05-16T18:17:15.489Z).
This is a search criterion, when used the operation deletes the records not older than this date.
When omitted the operation deletes matching records starting from the oldest. |
beforeDate | string | This parameter is optional.
The string is an UTC datetime whose format is yyyy-MM-ddTHH:mm:ss.SSSZ (example: 2013-05-16T18:17:15.489Z).
This is a search criterion, when used the operation deletes the records older than this date.
When omitted the operation deletes matching records until the newest. |
role | string | This parameter is optional.
This is a search criterion, the enum value can be "CALLER", "CALLEE". It defines the role of the user in the communication.
When omitted this operation deletes all the records which match the other criteria. |
comRef | string | This parameter is optional.
The comref of the com we want to delete. |
remotePartyId | string | This parameter is optional.
Ask to apply the operation on the records in which the user is engaged with this remote party. |
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
/comlog/records/recordIds
Methods
Get the whole list of communication log record Ids.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | ComHistoryRecordIds | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
/comlog/records/{recordId}
Methods
Get a communication log record.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
recordId | string | Identifier of the record
|
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | ComHistoryRecord | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Delete a record.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
recordId | string | Identifier of the record
|
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
Representations
boolean'boolean' is a data type, having two values (true and false).
ComHistoryRecordCommunication history ticket (ComLog).
Name | Type | Cardinality | Description |
---|
recordId | long | [0..1] | unique identifier of the record. |
comRef | string | [1] | Communication reference identifier. |
acknowledged | boolean | [0..1] | False indicates that the ticket corresponds to a non answered incoming call that has not been later acknowledged. |
participants | Participant | [0..*] | List of participants involved in the communication.
The list may be null for a scheduled conference that has not yet started. |
beginDate | dateTime | [0..1] | Begin date of the communication (when the call is launched). |
endDate | dateTime | [0..1] | End date of the conversation (when the call is terminated or canceled). |
convDate | dateTime | [0..1] | Conversation date (when the call has been answered). |
holdDuration | long | [0..1] | Since version 2.7.4 Total duration of hold. |
transferredBy | string | [0..1] | Since version 2.7.4 if present, defines who transferred the call |
associatedData | string | [0..1] | Since version 2.7.4 if present, correlator data associated to this call |
medias | MediaType | [1..*] | The list of medias involved in the communication. |
extensions | TagValuePair | [0..*] | For evolution of this element, can contain supplementary information (tag/value pair). |
[+] : JSON Example{
"recordId": long,
"comRef": "string",
"acknowledged": boolean,
"participants": [ {
"role": "CALLER | CALLEE | UNKNOWN",
"answered": boolean,
"identity": {
"id": {
"loginName": "string",
"phoneNumber": "string"
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"anonymous": boolean,
"initialCalled": {
"id": {
"loginName": "string",
"phoneNumber": "string"
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"reason": "ALL_TRUNK_BUSY | INVALID_NUMBER | ABANDONED | BUSY | CONFERENCED | PICKUP | ...",
"leg": "string"
} ],
"beginDate": "dateTime",
"endDate": "dateTime",
"convDate": "dateTime",
"holdDuration": long,
"transferredBy": "string",
"associatedData": "string",
"medias": [ "AUDIO | UNKNOWN" ],
"extensions": [ {
"name": "string",
"value": "string"
} ]
} |
Associated method :
ComHistoryRecordIdsContainer for the list of history record ids (ComLog).
Name | Type | Cardinality | Description |
---|
recordIds | long | [0..*] | The list the IDs of the com log records. |
[+] : JSON Example{
"recordIds": [ long ]
} |
Associated method :
ComHistoryRecordsList of ComHistoryRecord (ComLog).
Name | Type | Cardinality | Description |
---|
comHistoryRecords | ComHistoryRecord | [0..*] | List of ComHistoryRecord. |
offset | int | [0..1] | The offset of the first record which is returned. |
limit | int | [0..1] | Defines the maximum number of records returned. |
totalCount | int | [0..1] | Defines the total number of records without pagination. |
[+] : JSON Example{
"comHistoryRecords": [ {
"recordId": long,
"comRef": "string",
"acknowledged": boolean,
"participants": [ {
"role": "CALLER | CALLEE | UNKNOWN",
"answered": boolean,
"identity": {
"id": {
"loginName": "string",
"phoneNumber": "string"
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"anonymous": boolean,
"initialCalled": {
"id": {
"loginName": "string",
"phoneNumber": "string"
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"reason": "ALL_TRUNK_BUSY | INVALID_NUMBER | ABANDONED | BUSY | CONFERENCED | PICKUP | ...",
"leg": "string"
} ],
"beginDate": "dateTime",
"endDate": "dateTime",
"convDate": "dateTime",
"holdDuration": long,
"transferredBy": "string",
"associatedData": "string",
"medias": [ "AUDIO | UNKNOWN" ],
"extensions": [ {
"name": "string",
"value": "string"
} ]
} ],
"offset": int,
"limit": int,
"totalCount": int
} |
Associated method :
dateTime'dateTime' is an UTC datetime whose format (ISO 8601 compatible) is yyyy-MM-ddTHH:mm:ss.SSSZ (example: 2013-05-16T18:17:15.489Z).
IdentifierKey information to help retrieving a participant (ComLog).
Name | Type | Cardinality | Description |
---|
loginName | string | [0..1] | Login name. |
phoneNumber | string | [0..1] | Company phone number. |
int'int' is a 32-bit number (-2147483648 to 2147483647).
long'long' is a 64-bit number (-9223372036854775808 to 9223372036854775807).
MainTypeMain participant type.
Value | Description |
---|
USER | The participant is a user of the system. |
DEVICE | The participant is a device of the system. |
SERVICE | The participant is a service of the system. |
EXTERNAL | The participant is not a user of the system. |
UNKNOWN | The main participant type is unknown. |
MediaTypeA media can be:
Value | Description |
---|
AUDIO | The media is an audio. |
UNKNOWN | The media is unknown. |
OnComRecordCreatedNotification sent when a new comlog entry has been created.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnComRecordCreated' |
loginName | string | [1] | Login name of the user (identifier which can be used for filtering). |
record | ComHistoryRecord | [1] | Contains all the fields of a call log record. |
[+] : JSON Example{
"eventName": "string",
"loginName": "string",
"record": {
"recordId": long,
"comRef": "string",
"acknowledged": boolean,
"participants": [ {
"role": "CALLER | CALLEE | UNKNOWN",
"answered": boolean,
"identity": {
"id": {
"loginName": "string",
"phoneNumber": "string"
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"anonymous": boolean,
"initialCalled": {
"id": {
"loginName": "string",
"phoneNumber": "string"
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"reason": "ALL_TRUNK_BUSY | INVALID_NUMBER | ABANDONED | BUSY | CONFERENCED | PICKUP | ...",
"leg": "string"
} ],
"beginDate": "dateTime",
"endDate": "dateTime",
"convDate": "dateTime",
"holdDuration": long,
"transferredBy": "string",
"associatedData": "string",
"medias": [ "AUDIO | UNKNOWN" ],
"extensions": [ {
"name": "string",
"value": "string"
} ]
}
} |
OnComRecordModifiedNotification sent when one or more records have been modified.
Modification, could be trigerred by:
- a change of state (e.g. from unanswered to answered)
- a change of media list (e.g. IM and call in a conference).
- a change of end date (e.g. when participants are dropped from a conference)
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnComRecordModified' |
loginName | string | [1] | Login name of the user (identifier which can be used for filtering). |
record | ComHistoryRecord | [1] | Contains all or part of the modified fields of a modified com log record.(example: acknowledged). |
[+] : JSON Example{
"eventName": "string",
"loginName": "string",
"record": {
"recordId": long,
"comRef": "string",
"acknowledged": boolean,
"participants": [ {
"role": "CALLER | CALLEE | UNKNOWN",
"answered": boolean,
"identity": {
"id": {
"loginName": "string",
"phoneNumber": "string"
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"anonymous": boolean,
"initialCalled": {
"id": {
"loginName": "string",
"phoneNumber": "string"
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"reason": "ALL_TRUNK_BUSY | INVALID_NUMBER | ABANDONED | BUSY | CONFERENCED | PICKUP | ...",
"leg": "string"
} ],
"beginDate": "dateTime",
"endDate": "dateTime",
"convDate": "dateTime",
"holdDuration": long,
"transferredBy": "string",
"associatedData": "string",
"medias": [ "AUDIO | UNKNOWN" ],
"extensions": [ {
"name": "string",
"value": "string"
} ]
}
} |
OnComRecordsAckNotification sent when one or more unanswered comlog records have been acknowledged.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnComRecordsAck' |
loginName | string | [1] | Login name of the user (identifier which can be used for filtering). |
recordIds | long | [0..*] | A list of IDs of records which have been acknowledged. |
Associated method :
OnComRecordsDeletedNotification sent when one or more call log records have been destroyed.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnComRecordsDeleted' |
loginName | string | [1] | Login name of the user (identifier which can be used for filtering). |
recordIds | long | [0..*] | A list of IDs of records which have been destroyed
Remark : if element is not present it means that all user's records have been destroyed. |
Associated methods :
OnComRecordsUnAckNotification sent when one or more unanswered comlog records have been unacknowledged.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnComRecordsUnAck' |
loginName | string | [1] | Login name of the user (identifier which can be used for filtering). |
recordIds | long | [0..*] | A list of IDs of records which have been acknowledged. |
Associated method :
ParticipantDescribes a participant referenced in the history record (ComLog).
Record content:
-
For a simple call (user A calls user B), the call record on each party will contain both the participant A and the participant B:
(no guaranty on the order of the participants on 2 successive responses)
- On A side, the record will contain :
- participant A (the owner of the record) with role=CALLER and the answered status (whether the call has been answered or not)
- participant B : neither the role nor the state is provided
- On B side, the record will contain :
- participant A : neither the role nor the state is provided
- participant B (the owner of the record) with role=CALLEE and the answered status (whether the call has been answered or not)
-
For a re-routed call (user A calls user B, the call is re-routed on user C, caused by overflow, redirection or pickup), the record
generated on each side including the user B side (the "victim" of the re-routing) will not contain as participant the user B itself
because he was not the last destination of the call:
- On A side, the record will contain :
- participant A : with role=CALLER, the answered status, initialCalled=B
- participant C
- On B side, the record will be similar to the C one and contain :
- participant A : neither the role nor the state is provided
- participant C with role=CALLEE, the answered status (whether the call has been answered or not) and initialCalled=B
which tells B that he was called by A but the call has been rerouted to C (with a reason) which answered or not to the call
- On C side, the record will contain :
- participant A : neither the role nor the state is provided
- participant C with role=CALLEE, the answered status (whether the call has been answered or not) and initialCalled=B
-
Furthermore, for a multi-parties call using addParticipant, the already connected users in the call will also received a call record which will contain
the answered status of the added participant: this information is provided to distinguish the added participants which have really answered and the other
which decline the call.
Identification of the participant:
- in the comlog notification events, the participant owner is identified only by its loginName (in order to reduce the event call flow),
the other participants are identified with their full identity (loginName, phoneNumber, email, instantMessagingId)
- in the getComlog response:
- if no optimization is asked, all the participants are identified with their full identity.
- if the "optimized:true" is present in the request parameter, only the first occurence of a participant (owner or other) are identified with their full identity.
the following occurences are identified only with the phonenumber if the participant has one, or by it IM id if not.
Name | Type | Cardinality | Description |
---|
role | Role | [0..1] | Defines whether the participant was the/a caller party, a called party or a masterconf.
NB:in a conference, a participant can be both a called party and a caller
(consultation call plus conference following an incoming call). |
answered | boolean | [0..1] | defines whether the participant has really entered in the conversation.
Can be omitted if the value is not known. |
identity | PartyInfo | [1] | Full description of a party involved in an history record. |
anonymous | boolean | [0..1] | Indicate if the participant identity is anonymous or not. |
initialCalled | PartyInfo | [0..1] | The number that has been initially called when this participant has been entered in the call. |
reason | Reason | [0..1] | The reason why the call has been established, rerouted, terminated ... |
leg | string | [0..1] | Since version 2.7.4 device leg implicated in the call if the main device is not present |
[+] : JSON Example{
"role": "CALLER | CALLEE | UNKNOWN",
"answered": boolean,
"identity": {
"id": {
"loginName": "string",
"phoneNumber": "string"
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"anonymous": boolean,
"initialCalled": {
"id": {
"loginName": "string",
"phoneNumber": "string"
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
},
"reason": "ALL_TRUNK_BUSY | INVALID_NUMBER | ABANDONED | BUSY | CONFERENCED | PICKUP | ...",
"leg": "string"
} |
ParticipantTypeDetail about a kind of participant (ComLog).
Name | Type | Cardinality | Description |
---|
main | MainType | [1] | Gives the main type of the participant: "user", "device", ... |
subType | string | [0..1] | The subType string gives a supplementary information and can contain "voicemail",... |
[+] : JSON Example{
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
} |
PartyInfoFull description of a party involved in an history record (ComLog).
Name | Type | Cardinality | Description |
---|
id | Identifier | [1] | Key information to help retrieving a participant. |
firstName | string | [0..1] | First name. |
lastName | string | [0..1] | Last name. |
displayName | string | [0..1] | Display name (display names are used in SIP URIs).
Notice: if previous fields lastname/firstname are filled then displayName field will be empty. |
type | ParticipantType | [0..1] | Participant's type. |
[+] : JSON Example{
"id": {
"loginName": "string",
"phoneNumber": "string"
},
"firstName": "string",
"lastName": "string",
"displayName": "string",
"type": {
"main": "USER | DEVICE | SERVICE | EXTERNAL | UNKNOWN",
"subType": "string"
}
} |
Reasonindicates for what reason the communication has been released, established or rerouted.
The cause may be:
- ABANDONED The call was abandoned.
- ALL_TRUNK_BUSY The call was released because all trunk are busy.
- BUSY The call was released because the remote party is busy.
- FORWARDED The call has been forwarded PICKED_UP the call has been picked up.
- REDIRECTED The call has been redirected.
- TRANSFERRED The call has been transfered.
- VOICEMAILDEPOSIT the call has been forwarded on vmail.
- CONFERENCED The call was set to be a conference.
- ... other ...
Value | Description |
---|
ALL_TRUNK_BUSY | The call was released because all trunk are busy. |
INVALID_NUMBER | The call was refused because the dialed number is not valid. |
ABANDONED | The call was canceled by the caller. |
BUSY | The call failed because the called party is busy. |
CONFERENCED | The call was set to be a conference. |
PICKUP | The call was picked up. |
FORWARDED | The call was forwarded to another destination. |
REDIRECTED | The call was redirected to another destination. |
RELEASED_ON_REDIRECT | The call was released since redirection to another destination fails. |
TRANSFERRED | The call was transferred. |
RELEASED_ON_TRANSFER | The call was released since transfer to another destination fails. |
VOICEMAIL | The call ended on voicemail. |
NORMAL | The call normally ended. |
UNKNOWN | The reason is unknown. |
Rolerole of a participant in the communication.
Value | Description |
---|
CALLER | The participant is a caller party. |
CALLEE | The participant is a called party. |
UNKNOWN | The role is unknown. |
string'string' represents character strings.
TagValuePairKey / value structure.
Name | Type | Cardinality | Description |
---|
name | string | [1] | Key |
value | string | [1] | Value |
UpdateComRecordsRequestRequest sent for updating communication history records (ComLog).
Name | Type | Cardinality | Description |
---|
recordIds | long | [0..*] | The list the IDs of the com log records to update. |
[+] : JSON Example{
"recordIds": [ long ]
} |
Associated method :
Event summary
Presentation
The Event summary service allows a user to get its new message indicators(missed call, voice mails, callback request, fax).
Resource summary
Resource | Method | Description |
---|
/eventSummary | GET | Retrieves main counters of the user's event log. |
Notification summary
Notification | Description |
---|
OnEventSummaryUpdated | Notification sent each time the user's counters have changed. |
Resource
/eventSummary
Methods
Retrieves main counters of the user's event log.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_TEL_ADVANCED - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | EventSummary | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Retrieves main counters of the user's event log.
request :GET https://server/api/rest/1.0/eventSummary
response :200 OK
Content-Type: application/json
{
"missedCallsNb":0,
"voiceMessagesNb":1,
"callBackRequestsNb":0,
"faxNb":0,
"eventWaiting":true
}
Representations
boolean'boolean' is a data type, having two values (true and false).
EventSummaryDescribes an event summary.
Name | Type | Cardinality | Description |
---|
missedCallsNb | nonNegativeInteger | [0..1] | Number of missed calls (non acknowledged unanswered incoming calls).
If this attribute is not specified, it means that the server is not able to provide that information :
do not consider it means that the user has 0 missed call but prefer not to display this information.
CAUTION: This attribute doesn't reflect the missed call number managed by the call server itself but is related to the unanswered and non acknowledged incoming calls
in the history call. Therefore, either only the explicit acknowledgment of these history call records through the communication log API service, or a new answered call with the same user
will decrease this counter.
Moreover, the counter is incremented for each non answered incoming call, including successive attempts from the same caller. |
voiceMessagesNb | nonNegativeInteger | [0..1] | Number of unread voice messages.
If this attribute is not specified, it means that the server is not able to provide that information :
do not consider it means that the user has 0 missed call but prefer not to display this information. |
callBackRequestsNb | nonNegativeInteger | [0..1] | Number of call back requests.
If this attribute is not specified, it means that the server is not able to provide that information :
do not consider it means that the user has 0 missed call but prefer not to display this information. |
faxNb | nonNegativeInteger | [0..1] | Number of fax.
If this attribute is not specified, it means that the server is not able to provide that information :
do not consider it means that the user has 0 missed call but prefer not to display this information. |
newTextNb | nonNegativeInteger | [0..1] | Number of new text messages.
If this attribute is not specified, it means that the server is not able to provide that information :
do not consider it means that the user has 0 new text but prefer not to display this information. |
oldTextNb | nonNegativeInteger | [0..1] | Number of old text messages.
If this attribute is not specified, it means that the server is not able to provide that information :
do not consider it means that the user has 0 old text call but prefer not to display this information. |
eventWaiting | boolean | [0..1] | Specifies whether an event is waiting.
This flag can be used by an application to light a "LED" or to warn the user as it want that an event is waiting.
It is interesting to consider that the user could define rules on his profile defining when he wants his "LED"
to be lighted. Considering that, the application does not have to decide when to light the "LED" but only has to
follow this information.
If an application indicates to the user he has waiting events with additional events not provided here
(number of unread emails or IM for instance) :
- it would first have to take into account this flag (if true the "LED" has to be lighted)
- and then, if the flag is false, the application would be able to take into account those
additional events to know whether it wants to warn the user about waiting events.
|
Associated method :
nonNegativeInteger'nonNegativeInteger' is all positive integer numbers and zero. Negative integers are excluded.
OnEventSummaryUpdatedNotification sent each time the user's counters have changed.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnEventSummaryUpdated' |
loginName | string | [1] | Login name of the user (identifier which can be used for filtering). |
eventSummary | EventSummary | [1] | The new event summary. |
Associated methods :
string'string' represents character strings.
Maintenance
Presentation
Only for administrator.
The system information resource is used to
retrieve information about the system state, in particular
information on the pbx nodes and their connection state.
Informations about license are also provided per item: total
allocated licenses, numbers of current used and expiration
date.
Concerning expiration of
license file, a daily notification OnLicenseExpiration
alarm may be received since 30 days before the expiration date
up to 20 days after.
Resources summary
Notifications summary
Notification | Description |
---|
OnCtiLinkDown | Notification sent when CTI link is down. |
OnCtiLinkUp | Notification sent when CTI link is up |
OnLicenseExpiration | Notification sent when the license file will soon expire or has recently expired |
OnPbxLoaded | Notification sent when datas are fully loaded from an OXE |
OnServerStart | Notification sent when O2G is ready (all oxe nodes are connected and loaded). |
Resources
/system/licenses
Methods
Get license availability.
This operation tests for the presence of a specific type of license in the
FLEX license file.
This operation is available out of a session.
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
query parametersparameter | type | description |
---|
lic | string | the type of license to check |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code
code | media types | description |
---|
204 | application/json
| No content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Get ROXE_API_PHONESETPROG license availability
request :GET
https://server/api/rest/1.0/system/licenses?lic=ROXE_API_PHONESETPROG
response :(license is available) 204 no content
[+] : Get ROXE_HA license availability
request :GET
https://server/api/rest/1.0/system/licenses?lic=ROXE_HA
response :(license is not available) 403 Forbidden
/system/status
Methods
Get information about system status.
This operation provides information about the system state , and the total
number of each license type available for the system. <\b>This operation is
restricted to an admin session only.
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code and, if the code is SUCCESS, system
information corresponding to the concerned user
SystemStatuscode | type | media types | description |
---|
200 | SystemStatus | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get information about the system status
request :GET https://server/api/rest/1.0/system/status
response :200 OK Content-Type: application/json { "logicalAddress":
{ "fqdn": "vm-roxel2.bstlabrd.fr.alcatel-lucent.com",
"ip": "172.25.152.181" }, "pbxs": [ { "name": "bsbice35",
"mainAddress": { "fqdn":
"bsbice35.bstlabrd.fr.alcatel-lucent.com", "ip":
"172.25.152.35" }, "secondaryAddress": {
}, "version": "j1.410", "connected": true,
"monitoredUserNumber": 4999 }, { "name": "bsbice29",
"mainAddress": { "fqdn":
"bsbice29.bstlabrd.fr.alcatel-lucent.com", "ip":
"172.25.152.29" }, "secondaryAddress": {
}, "version": "m1.403.15.a", "connected": true,
"monitoredUserNumber": 3885 }, { "name": "bsbice34",
"mainAddress": { "fqdn":
"bsbice34.bstlabrd.fr.alcatel-lucent.com", "ip":
"172.25.152.34" }, "secondaryAddress": {
}, "version": "m1.403.15.a", "connected": true,
"monitoredUserNumber": 4997 } ], "license":{"lics":[
{"name":"ROXE_API_TEL_BASIC","total":100000,"currentUsed":0},
{"name":"ROXE_API_TEL_ADVANCED","total":100,"currentUsed":0},
{"name":"ROXE_API_MESSAGING","total":100,"currentUsed":0},
{"name":"ROXE_API_MANAGEMENT","total":15000,"currentUsed":0},
{"name":"ROXE_API_PHONESETPROG","total":100,"currentUsed":0},
{"name":"ROXE_API_ANALYTICS","total":2,"currentUsed":0},
{"name":"ROXE_API_CONTACTCENTER","total":100,"currentUsed":0}
]} }
Representations
boolean'boolean' is a data type, having two values (true and false).
ConfigurationTypeDTOType of O2G configuration
Value | Description |
---|
PBX_MANAGEMENT | Pbx management only |
RECORDING | RECORDING only |
FULL_SERVICES | Pbx management + all services |
CTILinkStateLists the different OXE CTI link state
Value | Description |
---|
CONNECTED_MAIN | connected to main Call server |
CONNECTED_SECONDARY | connected to secondary Call server |
DISCONNECTED | not connected |
dateTime'dateTime' is an UTC datetime whose format (ISO 8601 compatible) is yyyy-MM-ddTHH:mm:ss.SSSZ (example: 2013-05-16T18:17:15.489Z).
DRLinkCSTA DR link.
Name | Type | Cardinality | Description |
---|
identifier | string | [1] | DR link Registration identifier |
initiator | string | [1] | Since version 2.7.3 DR link initiator identifier (application name) |
nbRecordedDevices | int | [0..1] | number of recorded devices |
recordedDevices | RecordedDevice | [0..*] | list of recorded devices |
[+] : JSON Example{
"identifier": "string",
"initiator": "string",
"nbRecordedDevices": int,
"recordedDevices": [ {
"number": "string",
"user": "string",
"crid": "string",
"recorded": boolean,
"recordingResource": "string",
"ip": boolean,
"sentFlowPort": int,
"receivedFlowPort": int,
"encrypted": boolean
} ]
} |
int'int' is a 32-bit number (-2147483648 to 2147483647).
LicenseLicense
Name | Type | Cardinality | Description |
---|
name | string | [0..1] | Name |
total | int | [0..1] | Total number |
currentUsed | int | [0..1] | Current used number.
For the ROXE_API_MANAGEMENT particular case, it corresponds to the total network OXE Subscriber number |
expiration | string | [0..1] | Expiration date |
application | boolean | [0..1] | Not used (Already true) |
LicenseStatusLicense status
Name | Type | Cardinality | Description |
---|
type | string | [0..1] | FLEXLM (mode CAPEX) or LMS (mode OPEX) |
context | string | [0..1] | Only for LMS : infrastructure used (PROD, QA or INT) |
currentServer | string | [0..1] | Server address |
status | string | [0..1] | Only for LMS : RTR status (NORMAL, GRACE PERIOD, PANIC MODE) |
statusMessage | string | [0..1] | Only for LMS : Debug message, associated to the status |
lics | License | [0..*] | Licenses information |
long'long' is a 64-bit number (-9223372036854775808 to 9223372036854775807).
OnCtiLinkDownNotification sent when CTI link is down. This event is sent with a 30 s minimum and 60 s maximum delay
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnCtiLinkDown' |
nodeId | string | [1] | the nodeId which CTI link is down |
OnCtiLinkUpNotification sent when CTI link is up
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnCtiLinkUp' |
nodeId | string | [1] | the nodeId which CTI link is back to normal |
OnLicenseExpirationNotification sent when the license file will soon expire or has recently expired
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnLicenseExpiration' |
message | string | [1] | alarm message |
nbDays | long | [1] | nb days since or to expiration date:
nbDays>0 means the license will expire in nb days
and nbDays<0 means the license has already expired since nb days |
OnPbxLoadedNotification sent when datas are fully loaded from an OXE
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnPbxLoaded' |
nodeId | string | [1] | node identifier |
OnServerStartNotification sent when O2G is ready (all oxe nodes are connected and loaded).
To be received, this event needs a webhook url to be configured.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnServerStart' |
serverId | string | [1] | the IP of the server which starts |
OXRConfigOmniPCX Record description
Name | Type | Cardinality | Description |
---|
hostName | string | [0..1] | OXR host name |
ipAddress | string | [0..1] | OXR ip address |
siteId | string | [0..1] | OXR site identifier |
secured | boolean | [0..1] | is secured access |
connected | boolean | [0..1] | is connected |
devices | string | [0..*] | list of devices number which may be recorded by this recorder |
OXRRecordedDeviceDescription of a recorded device (by one or more OXR recorder)
Name | Type | Cardinality | Description |
---|
number | string | [0..1] | Device Number |
recordable | boolean | [0..1] | Is device recordable on demand. |
startCapabilities | StartType | [0..*] | Start mode capability of the device. Not present if device is not recordable on demand. |
recorders | string | [0..*] | list of recorder identifiers which manage the device |
[+] : JSON Example{
"number": "string",
"recordable": boolean,
"startCapabilities": [ "RECORD_FROM_NOW | RECORD_ENTIRE_CALL" ],
"recorders": [ "string" ]
} |
OXRRecordingStatusOXR recording service status
[+] : JSON Example{
"oxrs": [ {
"hostName": "string",
"ipAddress": "string",
"siteId": "string",
"secured": boolean,
"connected": boolean,
"devices": [ "string" ]
} ],
"devices": [ {
"number": "string",
"recordable": boolean,
"startCapabilities": [ "RECORD_FROM_NOW | RECORD_ENTIRE_CALL" ],
"recorders": [ "string" ]
} ]
} |
PbxStatusPbx description
Name | Type | Cardinality | Description |
---|
name | string | [0..1] | PBX name |
nodeId | int | [0..1] | PBX nodeId |
mainAddress | ServerAddress | [0..1] | PBX address |
secondaryAddress | ServerAddress | [0..1] | PBX address |
version | string | [0..1] | PBX version |
connected | boolean | [0..1] | PBX CMIS connection state |
loaded | boolean | [0..1] | Is PBX's users load completed |
ctiLinkState | CTILinkState | [0..1] | PBX CSTA connection state |
secured | boolean | [0..1] | is PBX secured connection |
monitoredUserNumber | int | [0..1] | Number of monitored PBX Users |
lmsConnectionStatus | boolean | [0..1] | Lms connection status |
drLinks | DRLink | [0..*] | In case of IP recording, list of drLinks |
[+] : JSON Example{
"name": "string",
"nodeId": int,
"mainAddress": {
"fqdn": "string",
"ip": "string"
},
"secondaryAddress": {
"fqdn": "string",
"ip": "string"
},
"version": "string",
"connected": boolean,
"loaded": boolean,
"ctiLinkState": "CONNECTED_MAIN | CONNECTED_SECONDARY | DISCONNECTED",
"secured": boolean,
"monitoredUserNumber": int,
"lmsConnectionStatus": boolean,
"drLinks": [ {
"identifier": "string",
"initiator": "string",
"nbRecordedDevices": int,
"recordedDevices": [ {
"number": "string",
"user": "string",
"crid": "string",
"recorded": boolean,
"recordingResource": "string",
"ip": boolean,
"sentFlowPort": int,
"receivedFlowPort": int,
"encrypted": boolean
} ]
} ]
} |
RecordedDeviceRecorded device identification with it recording resource
Name | Type | Cardinality | Description |
---|
number | string | [0..1] | device number |
user | string | [0..1] | device user |
crid | string | [0..1] | device csta crid |
recorded | boolean | [0..1] | has the recording been asked |
recordingResource | string | [0..1] | recorder IP address or TDM time slot |
ip | boolean | [0..1] | Is an IP recording |
sentFlowPort | int | [0..1] | In case of IP recording, the recorder port where is sent the sent RTP flow(from the local recorded device to the remote) |
receivedFlowPort | int | [0..1] | In case of IP recording, the recorder port where is sent the received RTP flow(from the remote to the local recorded device) |
encrypted | boolean | [0..1] | In case of IP recording, if it is encrypted) |
ServerAddressAddress of a server
Name | Type | Cardinality | Description |
---|
fqdn | string | [0..1] | FQDN |
ip | string | [0..1] | IP |
ServicesStatusAddress of a server
Name | Type | Cardinality | Description |
---|
name | string | [0..1] | Name |
status | string | [0..1] | Status Started/Stopped |
mode | string | [0..1] | Mode Active/Standby |
StartTypeHow the record start can be activated: entire call or from now
Value | Description |
---|
RECORD_FROM_NOW | Record from now.
|
RECORD_ENTIRE_CALL | Record from Beginning.
|
string'string' represents character strings.
SubscriberFilterDTOHow does O2G automatically create user from OXE subscriber
Value | Description |
---|
A4980 | Oxe subscriber are automatically loaded according to A4980 attribute |
ALL | Oxe subscribers are all automatically loaded |
NONE | None Oxe subscriber automatically loaded |
SystemServicesStatusDTOSystem description
Management package
Name | Type | Cardinality | Description |
---|
services | ServicesStatus | [0..*] | Services information |
globalIPAdress | string | [0..1] | if System is in HA mode, status og global IP address |
drbd | string | [0..1] | if System is in HA mode, status of drbd |
SystemStatusSystem description Management package
Name | Type | Cardinality | Description |
---|
logicalAddress | ServerAddress | [0..1] | System logical address |
startDate | dateTime | [0..1] | Start date (UTC). |
ha | boolean | [0..1] | is System in HA mode |
primary | string | [0..1] | if System is in HA mode, fqdn of the current active system |
primaryVersion | string | [0..1] | version of the current active system |
primaryServicesStatus | SystemServicesStatusDTO | [0..1] | Primary server services status |
secondary | string | [0..1] | if System is in HA mode, fqdn of the backup system |
secondaryVersion | string | [0..1] | version of the backup system |
secondaryServicesStatus | SystemServicesStatusDTO | [0..1] | Secondary server services status |
pbxs | PbxStatus | [0..*] | PBXs information |
recordingStatus | OXRRecordingStatus | [0..1] | Since version 2.7.3 OXRecorders information |
license | LicenseStatus | [0..1] | The total number of each license type available for the system |
configurationType | ConfigurationTypeDTO | [0..1] | Type of configuration |
applicationId | string | [0..1] | O2G server identifier |
subscriberFilter | SubscriberFilterDTO | [0..1] | Oxe subscriber load filter type |
[+] : JSON Example{
"logicalAddress": {
"fqdn": "string",
"ip": "string"
},
"startDate": "dateTime",
"ha": boolean,
"primary": "string",
"primaryVersion": "string",
"primaryServicesStatus": {
"services": [ {
"name": "string",
"status": "string",
"mode": "string"
} ],
"globalIPAdress": "string",
"drbd": "string"
},
"secondary": "string",
"secondaryVersion": "string",
"secondaryServicesStatus": {
"services": [ {
"name": "string",
"status": "string",
"mode": "string"
} ],
"globalIPAdress": "string",
"drbd": "string"
},
"pbxs": [ {
"name": "string",
"nodeId": int,
"mainAddress": {
"fqdn": "string",
"ip": "string"
},
"secondaryAddress": {
"fqdn": "string",
"ip": "string"
},
"version": "string",
"connected": boolean,
"loaded": boolean,
"ctiLinkState": "CONNECTED_MAIN | CONNECTED_SECONDARY | DISCONNECTED",
"secured": boolean,
"monitoredUserNumber": int,
"lmsConnectionStatus": boolean,
"drLinks": [ {
"identifier": "string",
"initiator": "string",
"nbRecordedDevices": int,
"recordedDevices": [ {
"number": "string",
"user": "string",
"crid": "string",
"recorded": boolean,
"recordingResource": "string",
"ip": boolean,
"sentFlowPort": int,
"receivedFlowPort": int,
"encrypted": boolean
} ]
} ]
} ],
"recordingStatus": {
"oxrs": [ {
"hostName": "string",
"ipAddress": "string",
"siteId": "string",
"secured": boolean,
"connected": boolean,
"devices": [ "string" ]
} ],
"devices": [ {
"number": "string",
"recordable": boolean,
"startCapabilities": [ "RECORD_FROM_NOW | RECORD_ENTIRE_CALL" ],
"recorders": [ "string" ]
} ]
},
"license": {
"type": "string",
"context": "string",
"currentServer": "string",
"status": "string",
"statusMessage": "string",
"lics": [ {
"name": "string",
"total": int,
"currentUsed": int,
"expiration": "string",
"application": boolean
} ]
},
"configurationType": "PBX_MANAGEMENT | RECORDING | FULL_SERVICES",
"applicationId": "string",
"subscriberFilter": "A4980 | ALL | NONE"
} |
Associated method :
Voicemail
Presentation
The voicemail service allows a user to connect to its voice mail box and manage its voice mails (retrieve and delete).
The voice mail can only be retrieved by downloading wave format file.
Restrictions: The voicemail box of each user MUST exist on its local PBX node.
Only the voicemail 4645 (IMAP/VMMC2) is consider (no 4635 or external voicemail).
Note: Don't forget to allow IMAP access in the concerned 4645 VM Classes of Service in the OXE.
Resources summary
Notification summary
Notification | Description |
---|
OnEventSummaryUpdated | Notification sent each time the user's counters have changed. |
Resources
/messaging/mailboxes
Methods
Get all the user's mailboxes.
This is the logical first step to access further operation on voice mail feature.
The id of the retrieved mailboxes is used as a key to go down resources hierarchy.
Depending on the mailbox type, some operations or notifications are not allowed or supported.
These capabilities information are provided for each mailbox.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_MESSAGING - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | MailBoxes | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the user's mailbox
request :GET https://server/api/rest/1.0/messaging/mailboxes
response :200 OK
Content-Type: application/json
{"mailboxes":
[{"id":"70120-7-MAILBOX","name":"Embedded","capabilities":
{"listMessages":true,"getMessages":true,"getRecord":true,"play":false,"pause":false,"hangup":false,"record":false,"resume":true,"cancel":false,"forward":false,"callback":false,"send":true,"events":true
}
}
]}
/messaging/mailboxes/{mailboxId}
Methods
Connect to a mailbox and retrieve the information.
This is the mandatory step to access all voice mail feature: To connect, the user password must be provided in the body
A mailbox information contains counters about the concerned mailbox:
- Number of total voicemails.
- Number of new (unread) voicemails.
- Storage usage of the mailbox, if supported, as a percentage (100 = 100% full).
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_MESSAGING - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
mailboxId | string | Identifier of the mailbox.
|
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
withUserPwd | string | This parameter is optional. If it is present(don't use ="true"/="false"), the password used to connect to voicemail box is the user password and in this case no body is required.
(It is the responsability of the OXE administrator to make the voice mailbox password match the subscriber one).
If absent, a body with the voice mail box password value is mandatory. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | MailBoxInfo | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Connect to the mailbox
request :POST https://server/api/rest/1.0/messaging/mailboxes/70120-7-MAILBOX
{"password":"1234"}
response :200 OK
Content-Type: application/json
{
"totalVoiceMsg":0,
"newVoiceMsg":0,
"storageUsage":-1
}
[+] : Connect to the mailbox with the user password
request :POST https://server/api/rest/1.0/messaging/mailboxes/70120-7-MAILBOX?withUserPwd
response : /messaging/mailboxes/{mailboxId}/voicemails
Methods
Retrieve all user's voicemails, or only those specified by the filter parameters
offset /
limit /
newOnly.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_MESSAGING - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
mailboxId | string | Identifier of the mailbox.
|
query parametersparameter | type | description |
---|
offset | int | the offset from which to start retrieving the voicemail list (Default value is 0). |
limit | int | the maximum number of items to return (Default value is -1: no limit). |
newOnly | boolean | filter only unread voicemail if set to 'true' (Default value is 'false'). |
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | Voicemails | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get all the voicemails id in the mailbox
request :GET https://server/api/rest/1.0/messaging/mailboxes/70120-7-MAILBOX/voicemails
response :200 OK
Content-Type: application/json
{"voicemails":[]}
Delete several or all voicemails .
NOTE To be able to do this operation, a previous call to the following resources must be done:
POST /messaging/mailboxes/{mailboxId}
NOTE: If successfull, OnEventSummaryUpdated OnEventSummaryUpdated event will be generated to refresh the counters.
NOTE: The command does not return any particular value. It is assumed that invalid message Ids are by nature non-existent, which fits the purpose of deletion.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_MESSAGING - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
mailboxId | string | Identifier of the mailbox.
|
query parametersparameter | type | description |
---|
msgIds | string | list of voice message Ids to delete (comma separated list of voicemailIds).
or null if all messages must be deleted. |
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : delete all the voicemails
request :DELETE https://server/api/rest/1.0/messaging/mailboxes/70120-7-MAILBOX/voicemails
response :204 No Content
[+] : delete 2 voicemails
request :DELETE https://server/api/rest/1.0/messaging/mailboxes/70120-7-MAILBOX/voicemails?msgIds=19458,18946
response :204 No Content
Associated notifications
/messaging/mailboxes/{mailboxId}/voicemails/{voicemailId}
Methods
Delete the specified voicemail.
NOTE To be able to do this operation, a previous call to the following resources must be done:
POST /messaging/mailboxes/{mailboxId}
NOTE: If successfull, OnEventSummaryUpdated OnEventSummaryUpdated event will be generated to refresh the counters.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_MESSAGING - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
mailboxId | string | Identifier of the mailbox.
|
voicemailId | string | Identifier of the message.
|
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : delete the voicemail
request :DELETE https://server/api/rest/1.0/messaging/mailboxes/70120-7-MAILBOX/voicemails/19458
response :204 No Content
Associated notifications
Retrieve a given user's voicemail wav file.
NOTE To be able to do this operation, a previous call to the following resources must be done:
POST /messaging/mailboxes/{mailboxId}
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_MESSAGING - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
mailboxId | string | Identifier of the mailbox.
|
voicemailId | string | Identifier of the message.
|
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
200 | application/octet-stream
| OK |
400 | | Bad Request |
403 | | Forbidden |
500 | | Internal Server Error |
503 | | Service Unavailable |
Examples
[+] : get the voicemail
request :GET https://server/api/rest/1.0/messaging/mailboxes/70120-7-MAILBOX/voicemails/19458
response :200 OK The type of the response body is defined as binary
Content-Disposition: attachment; filename=voicefile0_132234.wav
Content-Type: application/octet-stream
Representations
boolean'boolean' is a data type, having two values (true and false).
ConnectRequestVoice mail connection request data.
Name | Type | Cardinality | Description |
---|
password | string | [0..1] | voice mail account password. |
Associated method :
dateTime'dateTime' is an UTC datetime whose format (ISO 8601 compatible) is yyyy-MM-ddTHH:mm:ss.SSSZ (example: 2013-05-16T18:17:15.489Z).
EventSummaryDescribes an event summary.
Name | Type | Cardinality | Description |
---|
missedCallsNb | nonNegativeInteger | [0..1] | Number of missed calls (non acknowledged unanswered incoming calls).
If this attribute is not specified, it means that the server is not able to provide that information :
do not consider it means that the user has 0 missed call but prefer not to display this information.
CAUTION: This attribute doesn't reflect the missed call number managed by the call server itself but is related to the unanswered and non acknowledged incoming calls
in the history call. Therefore, either only the explicit acknowledgment of these history call records through the communication log API service, or a new answered call with the same user
will decrease this counter.
Moreover, the counter is incremented for each non answered incoming call, including successive attempts from the same caller. |
voiceMessagesNb | nonNegativeInteger | [0..1] | Number of unread voice messages.
If this attribute is not specified, it means that the server is not able to provide that information :
do not consider it means that the user has 0 missed call but prefer not to display this information. |
callBackRequestsNb | nonNegativeInteger | [0..1] | Number of call back requests.
If this attribute is not specified, it means that the server is not able to provide that information :
do not consider it means that the user has 0 missed call but prefer not to display this information. |
faxNb | nonNegativeInteger | [0..1] | Number of fax.
If this attribute is not specified, it means that the server is not able to provide that information :
do not consider it means that the user has 0 missed call but prefer not to display this information. |
newTextNb | nonNegativeInteger | [0..1] | Number of new text messages.
If this attribute is not specified, it means that the server is not able to provide that information :
do not consider it means that the user has 0 new text but prefer not to display this information. |
oldTextNb | nonNegativeInteger | [0..1] | Number of old text messages.
If this attribute is not specified, it means that the server is not able to provide that information :
do not consider it means that the user has 0 old text call but prefer not to display this information. |
eventWaiting | boolean | [0..1] | Specifies whether an event is waiting.
This flag can be used by an application to light a "LED" or to warn the user as it want that an event is waiting.
It is interesting to consider that the user could define rules on his profile defining when he wants his "LED"
to be lighted. Considering that, the application does not have to decide when to light the "LED" but only has to
follow this information.
If an application indicates to the user he has waiting events with additional events not provided here
(number of unread emails or IM for instance) :
- it would first have to take into account this flag (if true the "LED" has to be lighted)
- and then, if the flag is false, the application would be able to take into account those
additional events to know whether it wants to warn the user about waiting events.
|
Associated method :
IdentifierKey information to help retrieving a participant.
Name | Type | Cardinality | Description |
---|
loginName | string | [0..1] | Login name. |
phoneNumber | string | [0..1] | Company phone number. |
instantMessagingId | string | [0..1] | Instant messaging identity. |
companyEmail | string | [0..1] | Company email. |
int'int' is a 32-bit number (-2147483648 to 2147483647).
MailBoxDescriptor of a mailbox.
Name | Type | Cardinality | Description |
---|
id | string | [0..1] | Identifier of the mailbox. |
name | string | [0..1] | Name of the mailbox. |
capabilities | MailBoxCapabilities | [0..1] | Capabilities supported by the mailbox. |
[+] : JSON Example{
"id": "string",
"name": "string",
"capabilities": {
"listMessages": boolean,
"getMessages": boolean,
"getRecord": boolean,
"play": boolean,
"pause": boolean,
"hangup": boolean,
"record": boolean,
"resume": boolean,
"cancel": boolean,
"forward": boolean,
"callback": boolean,
"send": boolean,
"events": boolean
}
} |
MailBoxCapabilitiesList the capabilities supported by a mailbox.
Name | Type | Cardinality | Description |
---|
listMessages | boolean | [0..1] | Voicemail server can return the list of messages. |
getMessages | boolean | [0..1] | Voice messages can be downloaded. |
getRecord | boolean | [0..1] | Recorded message can be downloaded. |
play | boolean | [0..1] | Voicemail server is capable of playing voice messages. |
pause | boolean | [0..1] | Playing voice message can be paused and resumes from the position it has been paused. |
hangup | boolean | [0..1] | Media session can be terminate. |
record | boolean | [0..1] | The voicemail server is capable of recording voice messages. |
resume | boolean | [0..1] | Voice message recording can be resumed after being stopped. |
cancel | boolean | [0..1] | The current recording can be cancelled. |
forward | boolean | [0..1] | The voicemail server is capable of forwarding voice messages. |
callback | boolean | [0..1] | The voicemail server can call back the originator of the voice message. |
send | boolean | [0..1] | Voice message or record can be sent to recipients. |
events | boolean | [0..1] | Voicemail server is capable to send events in case of message deposit / removal. |
[+] : JSON Example{
"listMessages": boolean,
"getMessages": boolean,
"getRecord": boolean,
"play": boolean,
"pause": boolean,
"hangup": boolean,
"record": boolean,
"resume": boolean,
"cancel": boolean,
"forward": boolean,
"callback": boolean,
"send": boolean,
"events": boolean
} |
MailBoxesContainer for a list of Mailbox
Name | Type | Cardinality | Description |
---|
mailboxes | MailBox | [0..*] | List of user mailboxes. |
[+] : JSON Example{
"mailboxes": [ {
"id": "string",
"name": "string",
"capabilities": {
"listMessages": boolean,
"getMessages": boolean,
"getRecord": boolean,
"play": boolean,
"pause": boolean,
"hangup": boolean,
"record": boolean,
"resume": boolean,
"cancel": boolean,
"forward": boolean,
"callback": boolean,
"send": boolean,
"events": boolean
}
} ]
} |
Associated method :
MailBoxInfoDescriptor of a MailboxInfo.
Name | Type | Cardinality | Description |
---|
totalVoiceMsg | int | [0..1] | Number of voice messages. |
newVoiceMsg | int | [0..1] | Number of new (unread) voice messages. |
storageUsage | int | [0..1] | Threshold indicating mailbox usage ratio.
100 mean 100% full. No more message deposit is allowed.
-1 means information not available. |
[+] : JSON Example{
"totalVoiceMsg": int,
"newVoiceMsg": int,
"storageUsage": int
} |
Associated method :
nonNegativeInteger'nonNegativeInteger' is all positive integer numbers and zero. Negative integers are excluded.
OnEventSummaryUpdatedNotification sent each time the user's counters have changed.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnEventSummaryUpdated' |
loginName | string | [1] | Login name of the user (identifier which can be used for filtering). |
eventSummary | EventSummary | [1] | The new event summary. |
Associated methods :
PartyInfoFull description of a party (i.e. participant's description).
Name | Type | Cardinality | Description |
---|
id | Identifier | [1] | Key information to help retrieving a participant. |
firstName | string | [0..1] | First name of the participant. |
lastName | string | [0..1] | Last name of the participant. |
displayName | string | [0..1] | Display name of the participant. |
string'string' represents character strings.
VoicemailDescriptor of a voice message.
Name | Type | Cardinality | Description |
---|
voicemailId | string | [1] | Identifier of the voicemail. |
from | PartyInfo | [0..1] | Originator of the voicemail. |
duration | int | [1] | Duration, in seconds, of the voicemail. |
date | dateTime | [1] | Date and time (ISO-8601) of the message. |
unread | boolean | [1] | Indicates if this message has been read or not. |
highPriority | boolean | [1] | Indicate if the message has been tagged as urgent or not. |
[+] : JSON Example{
"voicemailId": "string",
"from": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"instantMessagingId": "string",
"companyEmail": "string"
},
"firstName": "string",
"lastName": "string",
"displayName": "string"
},
"duration": int,
"date": "dateTime",
"unread": boolean,
"highPriority": boolean
} |
VoicemailsList of voicemails.
Name | Type | Cardinality | Description |
---|
voicemails | Voicemail | [0..*] | List of voicemails. |
[+] : JSON Example{
"voicemails": [ {
"voicemailId": "string",
"from": {
"id": {
"loginName": "string",
"phoneNumber": "string",
"instantMessagingId": "string",
"companyEmail": "string"
},
"firstName": "string",
"lastName": "string",
"displayName": "string"
},
"duration": int,
"date": "dateTime",
"unread": boolean,
"highPriority": boolean
} ]
} |
Associated method :
Phone Set Programming
Presentation
The Phone Set Programming service allows a user to manage its device states: lock/campon/programmable keys.
Resources summary
Resources
/users/{loginName}/devices
Methods
Get all the devices of a user
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_PHONESETPROG - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user to retrieve the devices. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code and, if the code is SUCCESS, the list of devices
Devicescode | type | media types | description |
---|
200 | Devices | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the devices of the user1
request :GET http://ot-server/api/rest/1.0/users/user1/devices
response :200 OK
Content-Type: application/json
{
"devices":
[
{"type":"DESKPHONE","id":"1234","label":"Test1","subType":"NOE_C_Color_IP"}
]
}
/users/{loginName}/devices/{deviceId}
Methods
Get one device of a user
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_PHONESETPROG - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user to retrieve the device. |
deviceId | string | identifier of the device to retrieve. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code and, if the code is SUCCESS, the list of devices
Devicecode | type | media types | description |
---|
200 | Device | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the device 1234 of the user1
request :GET http://ot-server/api/rest/1.0/users/user1/devices/1234
response :200 OK
Content-Type: application/json
{"type":"DESKPHONE","id":"1234","label":"Test1","subType":"NOE_C_Color_IP"}
/users/{loginName}/devices/{deviceId}/REActive
Methods
Activate or deactivate the remote extension device of a user
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_PHONESETPROG - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user. |
deviceId | string | identifier of the RE device to activate/deactivate. |
query parametersparameter | type | description |
---|
activate | boolean | activation or deactivationboolean. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : activate the RE device 1234 of the user1
request :PUT http://ot-server/api/rest/1.0/users/user1/devices/1234/REActive?activate=true
response :204 No Content
/users/{loginName}/devices/{deviceId}/REActiveState
Methods
Get the remote extension activation state of a user
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_PHONESETPROG - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user. |
deviceId | string | identifier of the RE to get the activation state. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the activation state
code | type | media types | description |
---|
200 | REActivationState | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the activation state of the RE 1234 of the user1
request :GET http://ot-server/api/rest/1.0/users/user1/devices/1234/REActiveState
response :200 OK
Content-Type: application/json
{"activate":false}
/users/{loginName}/devices/{deviceId}/addons
Methods
Get the addons module types associated to a device of a user
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_PHONESETPROG - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user. |
deviceId | string | identifier of the device to retrieve the soft keys. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code and, if the code is SUCCESS, the list of soft keys
Addonscode | type | media types | description |
---|
200 | Addons | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
/users/{loginName}/devices/{deviceId}/associate
Methods
Set the associate of a device of a user
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_PHONESETPROG - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user. |
deviceId | string | identifier of the device to set the associate. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
body parametertype | media types | description |
---|
Associate | application/json
| associate number Associate. |
Response
Returns the result code
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : update the associate for the device 1234 of the user1
request :PUT http://ot-server/api/rest/1.0/users/user1/devices/1234/associate
Content-Type: application/json
{
"number":"4321"
}
response :204 No Content
/users/{loginName}/devices/{deviceId}/campon
Methods
Set or reset the campon state of a device of a user
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_PHONESETPROG - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user. |
deviceId | string | identifier of the device to set or reset the campon. |
query parametersparameter | type | description |
---|
activate | boolean | activation or deactivationboolean. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : activate the lock for the device 1234 of the user1
request :PUT http://ot-server/api/rest/1.0/users/user1/devices/1234/campon?activate=true
response :204 No Content
/users/{loginName}/devices/{deviceId}/dynamicState
Methods
Get the dynamic state (lock/campon/associate) of a device of a user
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_PHONESETPROG - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user. |
deviceId | string | identifier of the device to get the dynamic state. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the dynamic state
code | type | media types | description |
---|
200 | DynamicState | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the dynamic state of the device 1234 of the user1
request :GET http://ot-server/api/rest/1.0/users/user1/devices/1234/dynamicstate
response :200 OK
Content-Type: application/json
{"lock":false,"campon":true,"associate":"4321"}
/users/{loginName}/devices/{deviceId}/lock
Methods
Set or reset the lock state of a device of a user
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_PHONESETPROG - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user. |
deviceId | string | identifier of the device to lock or unlock. |
query parametersparameter | type | description |
---|
activate | boolean | activation or deactivationboolean. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : activate the lock for the device 1234 of the user1
request :PUT http://ot-server/api/rest/1.0/users/user1/devices/1234/lock?activate=true
response :204 No Content
/users/{loginName}/devices/{deviceId}/pin
Methods
Get the PIN configuration associated to a device of a user
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_PHONESETPROG - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user. |
deviceId | string | identifier of the device. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code and, if the code is SUCCESS, the PIN information
Pincode | type | media types | description |
---|
200 | Pin | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the PIN information of the device 1234 of the user1
request :GET http://ot-server/api/rest/1.0/users/user1/devices/1234/pin
response :200 OK
Content-Type: application/json
{
"Pin_Number":"4321",
"With_Secret_Code":"TRUE",
"Pin_Type_Of_Control":"PIN_Category",
"Pin_Group":"1"
}
Set the PIN configuration associated to a device of a user
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_PHONESETPROG - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user. |
deviceId | string | identifier of the device to set. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
body parametertype | media types | description |
---|
Pin | application/json
| PIN information Pin. |
Response
Returns the result code
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : update PIN information for the device 1234 of the user1
request :PUT http://ot-server/api/rest/1.0/users/user1/devices/1234/pin
Content-Type: application/json
{
"Pin_Number":"4321",
"With_Secret_Code":"TRUE",
"Pin_Type_Of_Control":"PIN_Category",
"Pin_Group":"1"
}
response :204 No Content
/users/{loginName}/devices/{deviceId}/programmeableKeys
Methods
Get the programmeable keys (already programmed and not affected) associated to a device of a user
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_PHONESETPROG - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user to retrieve the pKeys. |
deviceId | string | identifier of the device to retrieve the programmeable keys. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code and, if the code is SUCCESS, the list of programmeable keys (programmed and not affected)
ProgrammeableKeyscode | type | media types | description |
---|
200 | ProgrammeableKeys | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the pkeys of the device 1234 of the user1
request :GET http://ot-server/api/rest/1.0/users/user1/devices/1234/programmeableKeys
response :200 OK
Content-Type: application/json
{"pkeys":
[
{"position":3,"number":"4567","mnemonic":"","locked":false},
{"position":4,"number":"7890","mnemonic":"","locked":false}
{"position":5,"number":"","mnemonic":"","locked":false}
{"position":6,"number":"","mnemonic":"","locked":false}
...
{"position":74,"number":"","mnemonic":"","locked":false}
]
}
/users/{loginName}/devices/{deviceId}/programmeableKeys/{position}
Methods
Set a programmeable key associated to a device of a user
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_PHONESETPROG - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user. |
deviceId | string | identifier of the device where to modify the programmeable key. |
position | int | the position of the pKey to set(MUST be the same value that the key object attribute one). |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Set the pkey nbr 3 of the device 1234 of the user1
request :PUT http://ot-server/api/rest/1.0/users/user1/devices/1234/programmeableKeys/3
Content-Type: application/json
{"position":3,"number":"4567","mnemonic":"user2","locked": false}
response :204 No Content
Erase a programmeable key associated to a device of a user
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_PHONESETPROG - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user. |
deviceId | string | identifier of the device where to delete the programmeable key. |
position | int | the position of the pKey to delete. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Delete the pkey nbr 3 of the device 1234 of the user1
request :DELETE http://ot-server/api/rest/1.0/users/user1/devices/1234/programmeableKeys/3
response :204 No Content
/users/{loginName}/devices/{deviceId}/programmedKeys
Methods
Get the already programmed keys associated to a device of a user
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_PHONESETPROG - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user to retrieve the pKeys. |
deviceId | string | identifier of the device to retrieve the programmeable keys. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code and, if the code is SUCCESS, the list of programmed keys
ProgrammeableKeyscode | type | media types | description |
---|
200 | ProgrammeableKeys | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the pkeys of the device 1234 of the user1
request :GET http://ot-server/api/rest/1.0/users/user1/devices/1234/programmedKeys
response :200 OK
Content-Type: application/json
{"pkeys":
[
{"position":3,"number":"4567","mnemonic":"","locked":false},
{"position":4,"number":"7890","mnemonic":"","locked":false}
]
}
/users/{loginName}/devices/{deviceId}/softKeys
Methods
Get the soft keys associated to a device of a user
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_PHONESETPROG - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user. |
deviceId | string | identifier of the device to retrieve the soft keys. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code and, if the code is SUCCESS, the list of soft keys
SoftKeyscode | type | media types | description |
---|
200 | SoftKeys | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the softkeys of the device 1234 of the user1
request :GET http://ot-server/api/rest/1.0/users/user1/devices/1234/softKeys
response :200 OK
Content-Type: application/json
{"softkeys":
[
{"position":1,"number":"4567","mnemonic":"user2"},
{"position":2,"number":"7890","mnemonic":"user3"}
]
}
/users/{loginName}/devices/{deviceId}/softKeys/{position}
Methods
Set a soft key associated to a device of a user
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_PHONESETPROG - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user. |
deviceId | string | identifier of the device where to modify the soft key. |
position | int | the position of the softKey to set(MUST be the same value that the key object attribute one). |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
body parametertype | media types | description |
---|
SoftKey | application/json
| the pKey to create or setSoftKey. |
Response
Returns the result code
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Set the softkey nbr 3 of the device 1234 of the user1
request :PUT http://ot-server/api/rest/1.0/users/user1/devices/1234/softKeys/3
Content-Type: application/json
{"position":3,"number":"4567","mnemonic":"user2"}
response :204 No Content
Erase a soft key associated to a device of a user
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_PHONESETPROG - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user. |
deviceId | string | identifier of the device where to erase the soft key. |
position | int | the position of the pKey to delete. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Delete the softkey nbr 3 of the device 1234 of the user1
request :DELETE http://ot-server/api/rest/1.0/users/user1/devices/1234/softKeys/3
response :204 No Content
/users/{loginName}/prefixes
Methods
Get a pbx prefix related to a user.
A prefix may be used to activate a service directly through a telephony make call.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_PHONESETPROG - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
path parametersparameter | type | description |
---|
loginName | string | Login name of the user to retrieve the pbx prefix. |
query parametersparameter | type | description |
---|
type | string | Mandatory prefix type (See example below) . |
value | string | Mandatory prefix value (See example below) .
Caution!: type and value are case sensitive strings.
The table below contains a subset of accepted prefix types and values.
The full value set may be obtained by consulting the OXE model
Prefix meaning |
Type |
Value |
do not disturb |
Station_Facility_Type |
Do_not_disturb |
padlock |
Station_Facility_Type |
Lock |
overflow busy(on associate) |
Station_Facility_Type |
Overflow_on_busy_on_associated |
overflow busy or no answer(on associate) |
Station_Facility_Type |
Overflow_busy_noreply_on_associated |
overflow no answer(on associate) |
Station_Facility_Type |
Overflow_no_reply_on_associated |
cancel overflow |
Station_Facility_Type |
Cancel_Overflow_on_associated |
immediate forward |
Station_Facility_Type |
Immediate_forwarding |
forward on busy |
Station_Facility_Type |
Immediate_forwarding_on_busy |
forward on no answer |
Station_Facility_Type |
Forwarding_on_no_reply |
forward on busy or no answer |
Station_Facility_Type |
Forwarding_on_busy_or_no_reply |
cancel forward |
Station_Facility_Type |
Forwarding_cancellation |
cancel auto callback |
Station_Facility_Type |
Cancel_automatic_call_back_on_busy_station |
direct call pickup |
General_Facility_Type |
Direct_call_pick_up |
group call pickup |
General_Facility_Type |
Group_call_pick_up |
speed dial associate |
Local_Facility_Type |
Speed_call_to_associated_station |
voice mail deposit |
Local_Facility_Type |
Voice_Mail_Deposit |
wakeUp |
Local_Facility_Type |
Wake_up |
cancel wakeUp |
Local_Facility_Type |
Wake_up_cancellation |
...p |
... |
... |
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
Returns the result code and, if the code is SUCCESS, the prefix number
Prefixcode | type | media types | description |
---|
200 | Prefix | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : For the user1, get the pbx prefix "Overflow on busy on associated"
request :GET http://ot-server/api/rest/1.0/users/user1/prefixes?type=Station_Facility_Type&value=Overflow_on_busy_on_associated
response :200 OK
Content-Type: application/json
{"value":"Overflow_on_busy_on_associated","number":"485"}
Representations
AddonsList of addons of a device.
Name | Type | Cardinality | Description |
---|
addonTypes | AddonType | [0..*] | List of the soft Keys. |
[+] : JSON Example{
"addonTypes": [ "NO_EXTENSIONS | ADDON_10_KEYS | ADDON_20_KEYS | ADDON_40_KEYS | ..." ]
} |
Associated method :
AddonTypePhone Set addon type values.
Value | Description |
---|
NO_EXTENSIONS | no extension module |
ADDON_10_KEYS | Ten keys extension module |
ADDON_20_KEYS | Twenty keys extension module |
ADDON_40_KEYS | Forty keys extension module |
ADDON_EL_14_KEYS | Fourteen electronic keys extension module |
AssociateAssociate number
Name | Type | Cardinality | Description |
---|
number | string | [0..1] | associate number. |
Associated method :
boolean'boolean' is a data type, having two values (true and false).
DeviceDescribe a device.
Name | Type | Cardinality | Description |
---|
type | DeviceType | [0..1] | Device's type. |
id | string | [0..1] | Device identifier which is used to identify the device in telephony requests and events. |
subType | string | [0..1] | Device's subtype :
For a DESKPHONE type, we could have : ANALOG, NOE_C_Color_IP, ... |
[+] : JSON Example{
"type": "DECT | DESKPHONE | MOBILE | SOFTPHONE",
"id": "string",
"subType": "string"
} |
Associated method :
DevicesList of the devices for a given user.
Name | Type | Cardinality | Description |
---|
devices | Device | [0..*] | List of the devices for a given user. |
[+] : JSON Example{
"devices": [ {
"type": "DECT | DESKPHONE | MOBILE | SOFTPHONE",
"id": "string",
"subType": "string"
} ]
} |
Associated method :
DeviceTypeThe device type values.
Value | Description |
---|
DECT | A wireless phone set used within the enterprise. |
DESKPHONE | A phone set on an office's desk. |
MOBILE | A mobile phone. |
SOFTPHONE | A phone started from a computer with VOIP. |
DynamicStateDescribe the dynamic state of the device.
Name | Type | Cardinality | Description |
---|
lock | boolean | [0..1] | Device's lockState. |
campon | boolean | [0..1] | Device's camponState. |
associate | string | [0..1] | Device's associate |
Associated method :
int'int' is a 32-bit number (-2147483648 to 2147483647).
PinThe description of PIN information
PIN (PERSONAL IDENT.NO.)
This table is used to manage PIN numbers.
PIN stands for Personal Identification Number. This service allows the user to announce that the call he is making is a personal (external)
call and not a business call.
Using pulse metering tickets, the company is then able to invoice this call again as a personal call.
This service can be applied to local users (employees) or visitors (in this case, the created user set is a virtual set without a physical address).
To use this service, users must dial the personal prefix followed by the PIN No. and then the secret code followed by the external number.
The Personal Identification Number is private and secret; only the administrator and, in certain cases, the pulse metering administrator may know it.
PIN data is also accessible through the USER SETS tables.
Name | Type | Cardinality | Description |
---|
Pin_Number | string | [0..1] | PIN number. The number of digits must agree with the PBX configuration |
With_Secret_Code | boolean | [0..1] | Select TRUE to force the device to dial the set's secret code before accessing private calls |
Pin_Type_Of_Control | string | [0..1] | Check type :
PIN_Category (to allow this PIN to be used from any set in the system),
PIN_Restricted_To_Owner_Set (to limit the use of this PIN to its associated user set),
PIN_Universal_Access (to allow the PIN to be used on all sets in the system),
PIN_Group_Control (to limit the use of this PIN to a specific PIN group) |
Pin_Group | int | [0..1] | PIN group number |
Associated methods :
PrefixPbx Prefix value and number
Name | Type | Cardinality | Description |
---|
value | string | [0..1] | String prefix value, example "Group_call_pick_up". |
number | string | [0..1] | String prefix number, example "56". |
Associated method :
ProgrammeableKeyThe description of a programmeable Key
Name | Type | Cardinality | Description |
---|
position | int | [0..1] | key position. |
number | string | [0..1] | phone number associated to the key |
mnemonic | string | [0..1] | mnemonic associated to the key |
locked | boolean | [0..1] | Is the key locked |
Associated method :
ProgrammeableKeysList of the programmeable Keys of a device.
Name | Type | Cardinality | Description |
---|
pkeys | ProgrammeableKey | [0..*] | List of the programmeable keys. |
Associated methods :
REActivationStateDescribe the dynamic state of the device.
Name | Type | Cardinality | Description |
---|
active | boolean | [0..1] | is Remote Extension active. |
Associated method :
SoftKeyThe description of a soft Key
Name | Type | Cardinality | Description |
---|
position | int | [0..1] | key position. |
number | string | [0..1] | phone number associated to the key |
mnemonic | string | [0..1] | mnemonic associated to the key |
Associated method :
SoftKeysList of the soft Keys of a device.
Name | Type | Cardinality | Description |
---|
skeys | SoftKey | [0..*] | List of the soft Keys. |
[+] : JSON Example{
"skeys": [ {
"position": int,
"number": "string",
"mnemonic": "string"
} ]
} |
Associated method :
string'string' represents character strings.
PBX management
Presentation
The Pbx service mainly allows an administrator to manage a pbx, that is to create/modify/delete any object or sub-object in the pbx model.
This feature uses 2 kinds of resource: the object model resource and the object instance resource
- The object model resources are used to retrieve (GET) the object model of the whole pbx or of an object in particular.
It gives the detail of all object attribute: if the attribute is mandatory/optional in the object creation, which value range is authorized, the eumeration possible values,
if the attribute is an enumerated
- The object instance resources are used to create (POST), modify(PUT) , retrieve (GET) or remove (DELETE) any instances of any object, giving the reference of this object.
For the creation or the modification of an object, the body must be compliant with the object model.
- the list of sub-objects which are returned by a get instance of an object corresponds to the relative path of the first instanciable objects
in the hierarchy in order to be able by recursion to build the path to access to any object and sub-object.
- When access to an object which is a sub-object, the full path must be given : {object1Name}/{object1Id}/{object2Name}/{object2Id}/..../{objectxName}/{objectxId}.
ex: .../api/rest/1.0/pbxs/1/instances/System_Parameters/1/System_Parameters_2/1/Network_Parameters
Few methods are provided but, thanks to these model description, any kind of object can be created/modified/removed.
Note: After a PBX version upgrade, a restart of the system will be necessary to update the object model.
Resources summary
Notifications summary
Notification | Description |
---|
OnPbxObjectInstanceCreated | Notification sent when a PBX object instance is created
Only Object Subscriber is concerned by this event |
OnPbxObjectInstanceDeleted | Notification sent when a PBX object instance is deleted
Only Object Subscriber is concerned by this event |
OnPbxObjectInstanceModified | Notification sent when a PBX object instance is modified
Only the instances of objects having a notification mechanism implemented in the PBX are concerned. |
Resources
/pbxs
Methods
Get the lists of all PBX instances.
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | Pbxs | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : get the list of the PBX managed by this O2G.
request :GET https://server/api/rest/1.0/pbxs
response :200 OK Content-Type: application/json {
"nodeIds": [
"1",
"10"
]
}
/pbxs/{nodeId}
Methods
Get PBX information.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_MANAGEMENT - number of licenses greater than or equal to total number of OXE users on all OXE nodes.
Required in OPEX mode (LMS server) : api-management-f - one license per user � number of licenses must be equal to total OXE users.
Request
path parametersparameter | type | description |
---|
nodeId | string | the PBX node number |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | Pbx | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : get the information about the PBX with the nodeId equals 101.
request :GET https://server/api/rest/1.0/pbxs/101
response :200 OK Content-Type: application/json {
"nodeId": "101",
"fqdn": "bstpiil1119.al-enterprise.com"
}
/pbxs/{nodeId}/instances
Methods
Get node object (root object): return the list of attributes and the list of sub-object paths of the node: the sub-objects which are returned
correspond to the relative path of the first instanciable objects in the hierarchy. Example: "System_Parameter", "SIP/1/SIP_Gateway", ...
In that manner, all the pbx object and sub-object can be recursively retrieved from a previous response by adding the relative path of the subobect
to the path of the hierarchical previous object
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_MANAGEMENT - number of licenses greater than or equal to total number of OXE users on all OXE nodes.
Required in OPEX mode (LMS server) : api-management-f - one license per user � number of licenses must be equal to total OXE users.
Request
path parametersparameter | type | description |
---|
nodeId | string | the PBX node number |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | PbxObject | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Retrieves the node 101 object contain (attribute list and sub-object name list).
request :GET https://server/api/rest/1.0/pbxs/101/instances
response :200 OK Content-Type: application/json {
objectName: "Node",
attributes:[
{
name: "Network_Node_Number",
value: "101"
},
{ name: "@Software_Version",
value: "R11_2_1"
},
...],
objectNames:[
"Rack",
"SNMP_Configuration/1/SNMP_Supervisor",
...
"Entity_Parameters",
...
"Group/1/Pickup_Group",
...
"Subscriber",
"Dect_System",
"System_Parameters",
...],
create: false,
delete: false,
set": true,
get": true,
actions:["Resynchro"]
}
/pbxs/{nodeId}/instances/{objectNameobjectId}
Methods
Get a PBX object by using its ID: Return the list of attributes and the list of sub-object paths of the current object: the sub-objects which are returned
correspond to the relative path of the first instanciable sub-objects in the hierarchy..
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_MANAGEMENT - number of licenses greater than or equal to total number of OXE users on all OXE nodes.
Required in OPEX mode (LMS server) : api-management-f - one license per user � number of licenses must be equal to total OXE users.
Request
path parametersparameter | type | description |
---|
nodeId | string | the PBX node number |
objectNameobjectId | string | Full description of object Id with the following syntax: {object1Name}/{object1Id}/{object2Name}/{object2Id}/..../{objectxName}/{objectxId}. |
query parametersparameter | type | description |
---|
attributes | string |
Optional comma separated attribute list (See example below) If present, the result will return for each instance the selected attribute values.
See example [2]
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | PbxObject | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
405 | | application/json
| Method Not Allowed |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the 4722 Subscriber.
request :GET https://server/api/rest/1.0/pbxs/101/instances/Subscriber/4722
response :200 OK Content-Type: application/json {
"objectName": "Subscriber",
"attributes":[
{
"name": "Directory_Number",
"value": "4722"
},
{
"name": "Equipment_Address_Rack",
"value": "255"
},
{
"name": "Equipment_Address_Board",
"value": "255"
},
{
"name": "Equipment_Address_Terminal",
"value": "255"
},
.....
{
"name": "Display_Compatibility_Type_of_CLIP_Set",
"value": "ASCII"
},
{
"name": "CPCTimer",
"value": "0"
}
],
"objectNames":[
"IP_Extension_SIP",
"Subscriber_Repertory",
"Subscriber_Alias",
"Seplos_Parameters",
"Subscriber_Associated_Sets",
"Noe_Parameters",
"Network_Supervisor_Mevo",
"Dect_Station",
"Dynamic_State_Subscriber",
"Subscriber_Keyboard",
"Tsc_IP_subscriber",
"Remote_Extension",
"Subscriber_Extension",
"Network_Supervisor",
"Subscriber_Profile"
],
"create": true,
"delete": true,
"set": true,
"get": true,
"actions":[
"ReinitMemory",
"FORCED_DELETE"
]
}
[+] : Get a pilot with one given attribute.}
request :GET http://172.25.152.157/api/rest/1.0/pbxs/5/instances/Application_Configuration/1/ACD2/1/ACD2_Pilot/60141?attributes=Pilot_Name
response :200 OK Content-Type: application/json {
{
"objectName": "ACD2_Pilot",
"objectId": "60141",
"attributes": [
{
"name": "Pilot_Name",
"value": [
"Pilot1"
]
}
],
"objectNames": [
"ACD2_Primary_Rule_Guide",
"ACD2_Primary_Rule_Dir",
"ACD2_TrunkGroup_Limitation"
]
}
[+] : Get One instance of the System/Dynamic Voice Guide/Assignement. NB: the instance identifiers
are a combination of the Submsg-Coupler sub-attributes: "Sub-message number, ACT-Coupler"
request :GET https://server/api/rest/1.0/pbxs/101/instances/System_Parameters/1/SubMessage/1/SmLayout/0,6-0
response :200 OK Content-Type: application/json
{
"objectName": "SmLayout",
"objectId": "0,6-0",
"attributes":[
{
"name": "Submsg_Coupler.Crystal_Coupler",
"value":["6-0"]
},
{
"name": "Submsg_Coupler.Submsg_id",
"value":["0"]
}],
"objectNames":[]
}
Change one or more attribute values of a PBX object or execute an allowed actions (ReinitMemory,...) on the PBX object
If an update on the same object has been performed by other administrator since last operation a conflict error occurs
and a GET operation must be done to allow the update, it avoids change done by other to be cancelled by other
Moreover to add or remove items in a list and to avoid to have to reload object in case of modification by other
use action (add, remove) : single operation
See examples [6,7,8,9]
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_MANAGEMENT - number of licenses greater than or equal to total number of OXE users on all OXE nodes.
Required in OPEX mode (LMS server) : api-management-f - one license per user � number of licenses must be equal to total OXE users.
Request
path parametersparameter | type | description |
---|
nodeId | string | PBX node number |
objectNameobjectId | string | The full identifier of the PBX object ({object1Name}/{object1Id}/{object2Name}/{object2Id}/..../{objectxName}/{objectxId}). |
query parametersparameter | type | description |
---|
action | string | Special Action to run on the PBX object such (ReinitMemory, Resynchro,..).These allowed actions depends of object. The allowed actions on one object are available in the object model. This parameter is optional. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
405 | application/json
| Method Not Allowed |
409 | application/json
| Conflict |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Change the attributes values of the Subscriber_Alias, instance 5 for the Subscriber 70300.
request :PUT https://server/api/rest/1.0/pbxs/1/instances/Subscriber/70300/Subscriber_Alias/5
Content-Type: application/json
{
"attributes": [
{
"name": "Annu_First_Name",
"value": ["Joe"]
},
{
"name": "Annu_Name",
"value": ["Durand"]
}
]
}
response :204 OK No Content
[+] : Execute 'ReinitMemory' action on the 4722 Subscriber instance.
request :PUT https://server/api/rest/1.0/pbxs/1/instances/Subscriber/4722?action=ReinitMemory
Content-Type: application/json
{
}
response :204 OK No Content
[+] : Set a list attribute value: erase the associated multidevices of the 70123.
request :PUT https://server/api/rest/1.0/pbxs/1/instances/Subscriber/70123
{
"attributes": [
{"name":"Attached_MultiTandem","value":[]}
]
}
response :204 OK No Content
[+] : Set a list attribute value: set the 2 associated multidevices of the 70123.
request :PUT https://server/api/rest/1.0/pbxs/1/instances/Subscriber/70123
{
"attributes": [
{"name":"Attached_MultiTandem","value":["70125","70126"]}
]
}
response :204 OK No Content
[+] : Set a complex attribute value: set 2 skills(1 and 2) in the skill sets of an ccd operator 70025.
request :PUT https://server/api/rest/1.0/pbxs/1/instances/Application_Configuration/1/ACD2/1/ACD2_Operator/1/ACD2_Operator_data/70025
{
"attributes": [
{
"name": "SkillSet",
"complexValue": [
{
"name": "SkillSet",
"attributes": [
{
"name": "Skill_Activate",
"value": [
"true"
]
},
{
"name": "Skill_Level",
"value": [
"1"
]
},
{
"name": "Skill_nb",
"value": [
"1"
]
}
]
},
{
"name": "SkillSet",
"attributes": [
{
"name": "Skill_Activate",
"value": [
"true"
]
},
{
"name": "Skill_Level",
"value": [
"8"
]
},
{
"name": "Skill_nb",
"value": [
"2"
]
}
]
}
]
}
]
}
response :204 OK No Content
[+] : Add 2 skills(3 and 4) in the skill sets of an ccd operator 70025.
request :PUT https://server/api/rest/1.0/pbxs/1/instances/Application_Configuration/1/ACD2/1/ACD2_Operator/1/ACD2_Operator_data/70025?action=add
{
"attributes": [
{
"name": "SkillSet",
"complexValue": [
{
"name": "SkillSet",
"attributes": [
{
"name": "Skill_Activate",
"value": [
"true"
]
},
{
"name": "Skill_Level",
"value": [
"1"
]
},
{
"name": "Skill_nb",
"value": [
"8"
]
}
]
},
{
"name": "SkillSet",
"attributes": [
{
"name": "Skill_Activate",
"value": [
"true"
]
},
{
"name": "Skill_Level",
"value": [
"8"
]
},
{
"name": "Skill_nb",
"value": [
"9"
]
}
]
}
]
}
]
}
response :204 OK No Content
[+] : Remove 1 skill from the skill sets of an ccd operator 70025.
request :PUT https://server/api/rest/1.0/pbxs/1/instances/Application_Configuration/1/ACD2/1/ACD2_Operator/1/ACD2_Operator_data/70025?action=delete
{
"attributes": [
{
"name": "SkillSet",
"complexValue": [
{
"name": "SkillSet",
"attributes": [
{
"name": "Skill_nb",
"value": [
"9"
]
}
]
}
]
}
]
}
response :204 OK No Content
[+] : Add 2 devices(1 and 2) in the attached devices of a Subscriber 60002.
request :PUT https://server/api/rest/1.0/pbxs/1/instances/Subscriber/60002?action=add
{
"attributes": [
{
"name": "Attached_MultiTandem",
"value": [
"60004",
"60005"
]
}
]
}
response :204 OK No Content
[+] : Remove a simple attribute value: remove 1 device from the attached devices of a Subscriber 60002.
request :PUT https://server/api/rest/1.0/pbxs/1/instances/Subscriber/60002?action=delete
{
"attributes": [
{
"name": "Attached_MultiTandem",
"value": [
"60004"
]
}
]
}
response :204 OK No Content
Delete a PBX Object.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_MANAGEMENT - number of licenses greater than or equal to total number of OXE users on all OXE nodes.
Required in OPEX mode (LMS server) : api-management-f - one license per user � number of licenses must be equal to total OXE users.
Request
path parametersparameter | type | description |
---|
nodeId | string | PBX node number |
objectNameobjectId | string | The full identifier of the PBX object ({object1Name}/{object1Id}/{object2Name}/{object2Id}/..../{objectxName}/{objectxId}). |
query parametersparameter | type | description |
---|
force | string | Use the "FORCED_DELETE" action to delete object if set. This action is only allowed on some object, this information (allowed or not ) is available in the object model. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
405 | application/json
| Method Not Allowed |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Delete the Subscriber_Alias, instance 5 for the 4722 Subscriber
request :DELETE https://server/api/rest/1.0/pbxs/1/instances/Subscriber/4722/Subscriber_Alias/5
response :204 OK No Content
[+] : Delete the 4722 Subscriber by using the FORCED_DELETE.
request :DELETE https://server/api/rest/1.0/pbxs/1/instances/Subscriber/4722?force
response :204 OK No Content
/pbxs/{nodeId}/instances/{objectName}
Methods
Get the list of PBX object instances, the instances are shown by its attribute Id.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_MANAGEMENT - number of licenses greater than or equal to total number of OXE users on all OXE nodes.
Required in OPEX mode (LMS server) : api-management-f - one license per user � number of licenses must be equal to total OXE users.
Request
path parametersparameter | type | description |
---|
nodeId | string | PBX node number |
objectName | string | Full description of the object name with the following syntax: {objectName}/{objectId}/{object1Name}/{object1Id}/..../{objectxName} |
query parametersparameter | type | description |
---|
filter | string | The supported operators are:
- EQUAL : == <value>
- STARWITH : == <value>*
- ENDWITH : == *<value>
- NOT_EQUAL : !=<value>
- GREATER_THAN_OR_EQUAL : =ge=<value>
- LESS_THAN_OR_EQUAL : =le=<value>
The supported logical operators are:
Example of query parameter filter syntax : ?filter=<attributeName>==<value> or <attributeName1>==<value1> and <attributeName2>!=<value2>
But be careful: the coherence of the filters is not tested at O2G level. |
attributes | string |
Optional comma separated attribute list (See example below) If present, the result will return for each instance the selected attribute values.
For performance, this attribute list should be reduced and not contained all the attributes of an object!
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | PbxObjectIds | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
405 | | application/json
| Method Not Allowed |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get all instances of the "Subscriber_Alias" objects for the 4722 Subscriber.
request :GET https://server/api/rest/1.0/pbxs/101/instances/Subscriber/4722/Subscriber_Alias
response :200 OK Content-Type: application/json {
"objectName": "Subscriber_Alias",
"instances": [
"0",
"1"
]
}
[+] : Get with simple filter: Get all instances of the Subscriber objects which Annu_Name begin with "Jz".
request :GET https://server/api/rest/1.0/pbxs/101/instances/Subscriber?filter=Annu_Name==Jz*
response :200 OK Content-Type: application/json
{
"objectName":"Subscriber","objectIds":["70200"]
}
[+] : Get with simple filter: Get all instances of the Subscriber objects with Analog Station_Type.
request :GET https://server/api/rest/1.0/pbxs/101/instances/Subscriber?filter=Station_Type==ANALOG
response :200 OK Content-Type: application/json
{
"objectName":"Subscriber","objectIds":["75900","76000","76011","76100"]
}
[+] : Get with composed "OR" filter: Get all instances of the Subscriber objects with Station_Type is Analog or Remote_Extension.
request :GET https://server/api/rest/1.0/pbxs/101/instances/Subscriber?filter=Station_Type==ANALOG or Station_Type==Remote_Extension
response :200 OK Content-Type: application/json
{
"objectName":"Subscriber","objectIds":["70033","70134","75900","76000","76011","76100"]
}
[+] : Get the Free_Range_List (under System_Parameters)
request :GET https://server/api/rest/1.0/pbxs/101/instances/System_Parameters/1/Free_Range_List
response :200 OK Content-Type: application/json
{
"objectName":"Free_Range_List","objectIds":["range1","range2"]
}
[+] : Get with simple filter and short attribute list: Get all instances of the Subscriber objects which Directory_Number begin with 7012 and return also for each instances the attributes Annu_Name and Annu_First_Name.
request :GET https://server/api/rest/1.0/pbxs/101/instances/Subscriber?filter=Directory_Number==7012*&attributes=Annu_Name,Annu_First_Name
response :200 OK Content-Type: application/json
{"objectName":"Subscriber",
"objectIds":["70120","70121","70122","70123"],
"objects":[
{"objectId":"70120","attributes":[{"name":"Annu_First_Name","value":["F70120"]},{"name":"Annu_Name","value":["L70120"]}]},
{"objectId":"70121","attributes":[{"name":"Annu_First_Name","value":["N70121"]},{"name":"Annu_Name","value":["L70121"]}]},
{"objectId":"70122","attributes":[{"name":"Annu_First_Name","value":["N70122"]},{"name":"Annu_Name","value":["L70122"]}]},
{"objectId":"70123","attributes":[{"name":"Annu_First_Name","value":["DN70123"]},{"name":"Annu_Name","value":["L70123"]}]}
]
}
[+] : Get the instances of the System/Dynamic Voice Guide/Assignement. NB: the instance identifiers
are a combination of the Submsg-Coupler sub-attributes: "Sub-message number, ACT-Coupler"
request :GET https://server/api/rest/1.0/pbxs/101/instances/System_Parameters/1/SubMessage/1/SmLayout
response :200 OK Content-Type: application/json
{
"objectName": "SmLayout",
"objectIds":["0,6-0","1,6-0","2,6-0"]
}
Create a PBX Object.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_MANAGEMENT - number of licenses greater than or equal to total number of OXE users on all OXE nodes.
Required in OPEX mode (LMS server) : api-management-f - one license per user � number of licenses must be equal to total OXE users.
Request
path parametersparameter | type | description |
---|
nodeId | string | PBX node number |
objectName | string | The full identifier of the PBX object ({object1Name}/{object1Id}/{object2Name}/{object2Name}/..../{objectxName}). |
query parametersparameter | type | description |
---|
action | string | |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
body parametertype | media types | description |
---|
PbxAttributes | application/json
| Attributes of the object to create PbxAttributes. Some attributes are mandatory, this information are available in the model object. For attributes not specified, the default value are used. |
Response
code | media types | description |
---|
201 | application/json
| Created |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
405 | application/json
| Method Not Allowed |
409 | application/json
| Conflict |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Create a Subscriber with phone number 70300,with attributes Annu_First_Name , Annu_Name , Station_Type (all other attributes are set to default values).
request :POST https://server/api/rest/1.0/pbxs/1/instances/Subscriber
Content-Type: application/json
{
"attributes": [
{
"name": "Directory_Number",
"value": ["70300"]
},
{
"name": "Annu_Name",
"value": ["Durand"]
},
{
"name": "Annu_First_Name",
"value": ["Gerard"]
},
{
"name": "Station_Type",
"value": ["NOE_C_IP"]
}
]
}
response :201 Created
[+] : Create a Subscriber_Alias, instance 5 for the Subscriber 70300,with attributes Annu_First_Name, Annu_Name (all other attributes are set to default values).
request :POST https://server/api/rest/1.0/pbxs/1/instances/Subscriber/70300/Subscriber_Alias
Content-Type: application/json
{
"attributes": [
{
"name": "Alias_Number",
"value": ["5"]
},
{
"name": "Annu_First_Name",
"value": ["Albert"]
},
{
"name": "Annu_Name",
"value": ["Durand"]
}
]
}
response :201 Created
[+] : Create a free range of number with name "range1", begin range=2000 and end range=3000
request :POST https://server/api/rest/1.0/pbxs/1/instances/System_Parameters/1/Free_Range_List
Content-Type: application/json
{ "attributes": [
{"name":"Name", "value":["range1"]},
{"name":"Begin_Range", "value":["2000"]},
{"name":"End_Range", "value":["3000"]}
]
}
response :201 Created
[+] : Create one instance of the System/Dynamic Voice Guide/Assignement. NB: Like for all the sequence attribute,
the full attribute names syntax must be respected: Submsg-Coupler.Submsg_id and Submsg_Coupler.Crystal_Coupler
(refer to the GET response for this object)
request :POST https://server/api/rest/1.0/pbxs/101/instances/System_Parameters/1/SubMessage/1/SmLayout
{"attributes": [
{"name":"Submsg_Coupler.Submsg_id", "value": ["2"]},
{"name":"Submsg_Coupler.Crystal_Coupler", "value":["6-0"]}
]}
response :201
/pbxs/{nodeId}/model
Methods
Get the description of the data model of one PBX.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_MANAGEMENT - number of licenses greater than or equal to total number of OXE users on all OXE nodes.
Required in OPEX mode (LMS server) : api-management-f - one license per user � number of licenses must be equal to total OXE users.
Request
path parametersparameter | type | description |
---|
nodeId | string | the PBX node number |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | ObjectModel | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the model's tree of one PBX.
request :GET https://server/api/rest/1.0/pbxs/101/model
response :200 OK Content-Type: application/json {
objectName: "Node",
attributes: [
{
name: "Num_patch",
.....
},
......
],
objects: [
{
objectName": "Subscriber",
attributes: [
"name": "Right_Profile_Name",
"allowedValues": {
"type": "OctetString",
"lenght": "15",
"values": [
"{'0'..'9','A'..'Z','*','#','-','@','_',' '}"
]
},
....
],
objects: [
.....
]
}
hidden: true,
create: false,
delete: false,
set: true,
get: true,
actions: [
"Resynchro"
]
}
/pbxs/{nodeId}/model/{objectName}
Methods
Get the PBX Model by name.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_MANAGEMENT - number of licenses greater than or equal to total number of OXE users on all OXE nodes.
Required in OPEX mode (LMS server) : api-management-f - one license per user � number of licenses must be equal to total OXE users.
Request
path parametersparameter | type | description |
---|
nodeId | string | the PBX node number |
objectName | string | the pbx object name (ex: Subscriber) |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | ObjectModel | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Retrieve Subscriber model.
request :GET https://server/api/rest/1.0/pbxs/1/model/Subscriber
response :200 OK Content-Type: application/json {
objectName: "Subscriber",
attributes: [
{
name: "Right_Profile_Name",
allowedValues:{
"type": "OctetString",
"length" : 15",
"values":["{'0'..'9','A'..'Z','*','#','-','@','_',' '}"
},
defautValue: "",
optional: false,
filtering: true
},
...
],
objects: [
name: "Voice_Mail_Type",
...
],
hidden: false,
create: true,
delete: true,
set: true,
get: true,
actions:[
"ReinitMemory",
"FORCED_DELETE"
]
}
Representations
AttributeModelInformation about PBX object attributes
Name | Type | Cardinality | Description |
---|
name | string | [0..1] | name of the attribute |
mandatory | boolean | [0..1] | Attribute is mandatory, Attribute is the identifier (ID) of the object |
typeValue | string | [0..1] | Type of the attribute, (octetString,integer,boolean,..) |
multiValue | boolean | [0..1] | Multi value, value is a list or not a list |
allowedValues | string | [0..*] | Allowed values for the attribute |
lengthValue | string | [0..1] | Max length for the attribute value. Only used for the octetString type |
defautValue | string | [0..1] | Default value of the attribute |
filtering | boolean | [0..1] | Attribute can be filtering |
usedWhen | string | [0..1] | UsedWhen expression of the attribute |
boolean'boolean' is a data type, having two values (true and false).
int'int' is a 32-bit number (-2147483648 to 2147483647).
ObjectModelInformation about PBX object
Name | Type | Cardinality | Description |
---|
objectName | string | [0..1] | Name of the object. |
attributes | AttributeModel | [0..*] | List of attribute for this object. |
objects | ObjectModel | [0..*] | List of sub-objects |
hidden | boolean | [0..1] | Object is hidden |
create | boolean | [0..1] | Object can be created |
delete | boolean | [0..1] | Object can be deleted |
set | boolean | [0..1] | Object can be updated |
get | boolean | [0..1] | Object can be read |
otherActions | string | [0..*] | Allowed actions |
[+] : JSON Example{
"objectName": "string",
"attributes": [ {
"name": "string",
"mandatory": boolean,
"typeValue": "string",
"multiValue": boolean,
"allowedValues": [ "string" ],
"lengthValue": "string",
"defautValue": "string",
"filtering": boolean,
"usedWhen": "string"
} ],
"objects": [ {
"objectName": "string",
"attributes": [ {
"name": "string",
"mandatory": boolean,
"typeValue": "string",
"multiValue": boolean,
"allowedValues": [ "string" ],
"lengthValue": "string",
"defautValue": "string",
"filtering": boolean,
"usedWhen": "string"
} ],
"objects": [ { ObjectModel } ],
"hidden": boolean,
"create": boolean,
"delete": boolean,
"set": boolean,
"get": boolean,
"otherActions": [ "string" ]
} ],
"hidden": boolean,
"create": boolean,
"delete": boolean,
"set": boolean,
"get": boolean,
"otherActions": [ "string" ]
} |
Associated methods :
OnPbxObjectInstanceCreatedNotification sent when a PBX object instance is created
Only Object Subscriber is concerned by this event
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnPbxObjectInstanceCreated' |
objectName | string | [1] | Object name |
objectId | string | [1] | Object instance Id |
nodeId | string | [1] | Node Id which houses object instance |
father | PbxObjectFather | [0..1] | Object father if instance is a subObject |
OnPbxObjectInstanceDeletedNotification sent when a PBX object instance is deleted
Only Object Subscriber is concerned by this event
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnPbxObjectInstanceDeleted' |
objectName | string | [1] | Object name |
objectId | string | [1] | Object instance Id |
nodeId | string | [1] | Node Id which houses object instance |
father | PbxObjectFather | [0..1] | Object father if instance is a subObject |
OnPbxObjectInstanceModifiedNotification sent when a PBX object instance is modified
Only the instances of objects having a notification mechanism implemented in the PBX are concerned.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnPbxObjectInstanceModified' |
objectName | string | [1] | Object name |
objectId | string | [1] | Object instance Id |
nodeId | string | [1] | Node Id which houses object instance |
father | PbxObjectFather | [0..1] | Object father if instance is a subObject |
PbxPBX data.
Name | Type | Cardinality | Description |
---|
nodeId | int | [0..1] | Node of the PBX. |
fqdn | string | [0..1] | FQDN of the PBX. |
Associated method :
PbxAttributePBX attribute data
Name | Type | Cardinality | Description |
---|
name | string | [0..1] | Name of property |
value | string | [0..*] | Value of property for simple strings |
complexValue | PbxComplexAttribute | [0..*] | Value of property for complex objects |
PbxAttributesName | Type | Cardinality | Description |
---|
attributes | PbxAttribute | [0..*] | Attribute data list for PBX object |
Associated methods :
PbxComplexAttributePBX attribute data
Name | Type | Cardinality | Description |
---|
name | string | [0..1] | Name of object |
attributes | PbxAttribute | [0..*] | Value = set of attributes |
PbxObjectPBX object data.
Name | Type | Cardinality | Description |
---|
objectName | string | [0..1] | Name of the object. |
objectId | string | [0..1] | Attribute value of the object used as Identifier. |
attributes | PbxAttribute | [0..*] | attributes list of the object. |
objectNames | string | [0..*] | List of the sub-object names |
create | boolean | [0..1] | Object can be created |
delete | boolean | [0..1] | Object can be deleted |
set | boolean | [0..1] | Object can be updated |
get | boolean | [0..1] | Object can be read |
otherActions | string | [0..*] | Allowed actions |
[+] : JSON Example{
"objectName": "string",
"objectId": "string",
"attributes": [ {
"name": "string",
"value": [ "string" ],
"complexValue": [ {
"name": "string",
"attributes": [ { PbxAttribute } ]
} ]
} ],
"objectNames": [ "string" ],
"create": boolean,
"delete": boolean,
"set": boolean,
"get": boolean,
"otherActions": [ "string" ]
} |
Associated methods :
PbxObjectFatherRepresent father if instance is a sub object (ex: ACD2_Attaching_List)
CRO2G-106: Extend eventing for PBX management
Name | Type | Cardinality | Description |
---|
objectName | string | [1] | Father object instance Id |
objectId | string | [1] | Father object instance Id |
PbxObjectIdsPBX object identifier list (with optional attributes)
Name | Type | Cardinality | Description |
---|
objectName | string | [0..1] | Object Name |
objectIds | string | [0..*] | List of object Id |
objects | PbxShortObject | [0..*] | Optional list of selected attributes for each object |
Associated method :
Pbxslist of PBX identifier
Name | Type | Cardinality | Description |
---|
nodeIds | string | [0..*] | List of nodeId. |
Associated method :
PbxShortObjectPBX short object description.
Name | Type | Cardinality | Description |
---|
objectId | string | [0..1] | Attribute value of the object used as Identifier. |
attributes | PbxAttribute | [0..*] | attributes list of the object. |
string'string' represents character strings.
Analytics
Presentation
The aim of this feature is retrieve the analytics of the API usages, only for an administrator.
The analytics concern 2 parts:
the collect of the api services and license usages:
- the services usages: each method usage is collected day per day
- the licenses usage: the count of each different license type is measured periodically, each sample represents, per day, the total number a license type has been taken and released,
the maximum licenses taken at a time (peak), the number of error and reject at take attempt
The analytics are refreshed with a frequency which could be changed (through web.xml parameter) and which default value is 15 minutes.
The analytics are collected day per day and gathered in a file per month, with a maximum of 12 collected months.
The analytics results can be asked in csv formatted file(default), in format xls file, or in json object.
the collect of the pbx incidents and charging information:
- the service allows to retrieve the incidents messages of a specified pbx (since the last shutdown)
- the service allows to retrieve the total charging information for each user for a specified pbx, from a begin date to a end date, sorted by cost, for the n max top charged users.
It also allows to get the whole charging tickets, even those with zero cost.
Resources summary
Resources
/usages/charging
Methods
Get charging information of a specific PBX.
If "all" option is requested, all the tickets are returned, including the zero cost ticket, and with the called party.
If "all" option is not requested, the total of charging info is returned for each user, the call number giving the number of calls with non null charging cost.
!! This service requires the OXE connection to be in secure mode.
In order to avoid a too long processing, 2 types of filter may be used:
- either a filter by dates: from date and/or toDate. Example: fromDate=20180101 and toDate=20180110
- either a filter by (comma separated) list of files. Example: file=TAXxxxx,TAXyyyy. The file name may be retrieved with the GET /charging/files method.
!! The 2 criterias cannot be used together: if the filter by files is present, the other is ignored.
In both cases, the number of result files to process MUST be limited to 100:
in case the limit is exceeded, the request returns an error (time-out or 400) and must be retried with a more restrictive filter.
The best manner for an application which wants to retrieve all the available charging information is:
- in a first step, to get the whole charging file list with /GET charging/files methods
- and in a second step, to iterate on this file list with /GET charging?nodeId=x&files=file_y method
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_ANALYTICS - true.
Required in OPEX mode (LMS server) : No license required (free).
Request
query parametersparameter | type | description |
---|
nodeId | string | This parameter is mandatory : it is the node number of the PBX. |
fromDate | string | This parameter is optional : allows to filter from a charging date (from=yyyymmdd) |
toDate | string | This parameter is optional : allows to filter to a charging date (to=yyyymmdd) |
files | string | This parameter is optional : a comma separated list of OXE accounting files (file=/DHS3dyn/account/TAXAAAAA.DAT,/DHS3dyn/account/TAXAAAAB.DAT) |
top | int | This parameter is optional : allows to get only the "top ten" |
all | boolean | This parameter is optional : if absent or false, a total charging per user is returned, if present and true all the tickets (including the 0 cost one) are returned. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | Chargings | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get all the total charging information per user for the node 7.
request :GET https://server/api/rest/1.0/usages/charging?nodeId=7
response :The list of the total charging corresponding to the criteria.
200 Ok
{"chargings":[{"caller":"012345","name":"alice","callNumber":10,"chargingUnits":20,"cost":300.5},{"caller":....
...}],"nbChargingFiles":744,"totalTicketNb":6018,"valuableTicketNb":6010}
[+] : Get the total charging information per user for the node 7 from beginning of January 2018
request :GET https://server/api/rest/1.0/usages/charging?nodeId=7&fromDate=20180101
response :The list of the total charging corresponding to the criteria.
200 Ok
{"chargings":[{"caller":"012345","name":"alice","callNumber":10,"chargingUnits":20,"cost":300.5},{"caller":....
...}],"fromDate":"20180101","nbChargingFiles":744,"totalTicketNb":6018,"valuableTicketNb":2000}
[+] : Get the total charging information per user for the node 7 from beginning of January 2018 to 10th of January, getting only the 5 top results
request :GET https://server/api/rest/1.0/usages/charging?nodeId=7&fromDate=20180101&toDate=20180110&top=5
response :The list of the total charging corresponding to the criteria.
200 Ok
{"chargings":[{"caller":"012345","name":"alice","callNumber":10,"chargingUnits":20,"cost":300.5},{"caller":....
...}],"fromDate":"20180101","toDate":"20180110","nbChargingFiles":744,"totalTicketNb":6018,"valuableTicketNb":416}
[+] : Get all the charging tickets for the node 7
request :GET https://server/api/rest/1.0/usages/charging?nodeId=7&all=true
response :The list of the charging tickets.
200 Ok
{"chargings":[{"caller":"012345","name":"alice", "called": "0001234566","chargingUnits":0,"cost":0},{"caller":....
...}],"nbChargingFiles":744,"totalTicketNb":6018,"valuableTicketNb":6018}
[+] : Get the charging tickets for the node 7, corresponding to the file given
request :GET https://server/api/rest/1.0/usages/charging?nodeId=7&files=/DHS3dyn/account/TAXAYYTJ.DAT,/DHS3dyn/account/TAXAYYTK.DAT,/DHS3dyn/account/TAXAYYTL.DAT&all=true
response :The list of the charging tickets.
200 Ok
{"chargings":[{"caller":"012345","name":"alice", "called": "0001234566","chargingUnits":0,"cost":0},{"caller":....
...}],"nbChargingFiles":744,"totalTicketNb":6018,"valuableTicketNb":6018}
/usages/charging/files
Methods
Get charging files list of a specific PBX.
This operation may be used previously to the GET /charging operation with file filter: it allows the application
to automatically iterate on the file list in order to retrieve the whole or part of the accounting information.
In order to process only one part of the tickets file based on their date, a from/to date filter may be used:
Example: fromDate=20180101 and toDate=20180110
The result returned a list of triplet name/date/date, which allows the application to filters on date/time.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_ANALYTICS - true.
Required in OPEX mode (LMS server) : No license required (free).
Request
query parametersparameter | type | description |
---|
nodeId | string | This parameter is mandatory : it is the node number of the PBX. |
fromDate | string | This parameter is optional : allows to filter from a charging file date (from=yyyymmdd) |
toDate | string | This parameter is optional : allows to filter to a charging file date (to=yyyymmdd) |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | ChargingFiles | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get all the total charging files for the node 7.
request :GET https://server/api/rest/1.0/usages/charging/files?nodeId=7
response :the whole file list.
200 Ok
{
"files":[
{
"name": "/DHS3dyn/account/TAXAYYTG.DAT",
"date": "02/02/21",
"time": "16:02:12"
},
{
"name": "/DHS3dyn/account/TAXAYYTH.DAT",
"date": "02/02/21",
"time": "17:00:14"
},
...
]} *
[+] : Get the charging files for the node 7 from and to the selected dates
request :GET https://server/api/rest/1.0/usages/charging/files?nodeId=7&fromDate=20210201&toDate=20210204
response :The list of the files corresponding to the criteria.
200 Ok
{
"files":[
{
"name": "/DHS3dyn/account/TAXAYYTG.DAT",
"date": "02/02/21",
"time": "16:02:12"
},
...
]}
/usages/incidents
Methods
Get incidents of a specific PBX.
!This service requires the OXE connection to be in secure mode.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_ANALYTICS - true.
Required in OPEX mode (LMS server) : No license required (free).
Request
query parametersparameter | type | description |
---|
nodeId | string | This parameter is mandatory : it is the node number of the PBX. |
last | int | : This parameter is optional : if present and > 0 return the n last incidents. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | Incidents | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the incidents of the node 7.
request :GET https://server/api/rest/1.0/usages/incidents?nodeId=7;
response :The list of the incidents of the PBX number 7.
200 Ok
{
"incidents": [
{
"date": "07\/12\/18 ",
"hour": "17:03:09 ",
"severity": 4,
"value": "0606",
"type": "002=AFE_AG_CSTA: 11",
"nbOccurs": 9,
"node": "000007",
"main": true,
"rack": "---",
"board": "--",
"equipment": "-",
"termination": "---"
},
{
"date": "07\/12\/18 ",
"hour": "16:59:27 ",
"severity": 4,
"value": "4017",
"type": "CSTA server : nouvelle creation 3 172.25.152.113",
"nbOccurs": 1,
"node": "000007",
"main": true,
"rack": "---",
"board": "--",
"equipment": "-",
"termination": "---"
}
],
"severity0": 10,
"severity1": 0,
"severity2": 0,
"severity3": 0,
"severity4": 0,
"severity5": 0
}
[+] : Get the 100 last incidents of the node 7.
request :GET https://server/api/rest/1.0/usages/incidents?nodeId=7&last=100;
response : /usages/licenses
Methods
Get O2G license analytics file (Zip file) for all the available months.
(This method didn't concern the OXE)
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_ANALYTICS - true.
Required in OPEX mode (LMS server) : No license required (free).
Request
query parametersparameter | type | description |
---|
format | string | This parameter is optional : if ?format=xls, the data are returned in xls format else by default in csv format |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
200 | application/octet-stream
| OK |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Get the license analytics
request :GET https://server/api/rest/1.0/usages/licenses
response :The result is a binary body containing a zip file
200 Ok
Content-disposition: attachement; filename=/var/data/licenses_analytics.zip
Content-type: application/zip
/usages/services
Methods
Get O2G services analytics file (Zip file) for all the available months.
(This method didn't concern the OXE)
Licenses
Required in CAPEX mode (FlexLM server): No license required (free).
Required in OPEX mode (LMS server): No license required (free).
Request
query parametersparameter | type | description |
---|
format | string | This parameter is optional : if ?format=xls, the data are returned in xls format else by default in csv format |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
200 | application/octet-stream
| OK |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Get the service analytics
request :GET https://server/api/rest/1.0/usages/services
response :The result is a binary body containing a zip file containing the files (one per month) in csf format
200 Ok
Content-disposition: attachement; filename=/var/data/services_analytics.zip
Content-type: application/zip
[+] : Get the service analytics in xls format
request :GET https://server/api/rest/1.0/usages/services?format=xls
response :The result is a binary body containing a zip file containing the files (one per month) in xls format
200 Ok
Content-disposition: attachement; filename=/var/data/services_analytics.zip
Content-type: application/zip
Representations
boolean'boolean' is a data type, having two values (true and false).
CallTypeValue | Description |
---|
PublicNetworkCall | Public Network Call |
PublicNetworkCallThroughPrivateNetwork | Public Network Call Through Private Network |
PrivateNetworkCall | Private Network Call |
LocalNetworkCall | Local Network Call |
PublicNetworkIncomingCall | Public Network Incoming Call |
PublicNetworkIncomingCallThroughPrivateNetwork | Public Network Incoming Call Through Private Network |
Unspecified | Unspecified |
PrivateNetworkOutgoingCallToPublicNetwork | Private Network Outgoing Call To Public Network |
PrivateNetworkOutgoingCallToPrivateNetwork | Private Network Outgoing Call To Private Network |
PublicNetworkIncomingCallToPrivateNetwork | Public Network Incoming Call T oPrivate Network |
PrivateNetworkIncomingCallToPrivateNetwork | Private Network Incoming Call To Private Network |
PublicOrPrivateNetworkOutgoingCallThroughPrivateNetwork | Public Or Private Network Outgoing Call Through Private Network |
PublicOrPrivateNetworkIncomingCallThroughPrivateNetwork | Public Or Private Network Incoming Call Through Private Network |
PrivateNetworkIncomingCall | Private Network Incoming Call |
LocalNode | Local Node |
LocalTransit | Local Transit |
ChargingDescribes the charging digest information
Name | Type | Cardinality | Description |
---|
caller | string | [1] | caller phone number. |
name | string | [0..1] | caller name |
called | string | [0..1] | called phone number, only in "all" option case |
initialDialledNumber | string | [0..1] | initial dialled number, only in "all" option case |
callNumber | int | [0..1] | number of charged calls , only if "all" option has not been requested |
chargingUnits | int | [0..1] | call charging unit number("all") or total charging units of the charged calls |
cost | float | [0..1] | call charging cost ("all") or total charging cost of the charged calls |
startDate | string | [0..1] | start date, only in "all" option case |
duration | int | [0..1] | call duration ("all") or total duration of the charged calls |
callType | CallType | [0..1] | call type , only in "all" option case |
waitingDuration | int | [0..1] | call waiting duration |
effectiveCallDuration | int | [0..1] | effective call duration |
actingExtensionNumberNode | int | [0..1] | Acting extension number node |
internalFacilities | TelFacilities | [0..1] | Internal telephony facility, only in "all" option case |
externalFacilities | TelFacilities | [0..1] | External telephony facility, only in "all" option case |
[+] : JSON Example{
"caller": "string",
"name": "string",
"called": "string",
"initialDialledNumber": "string",
"callNumber": int,
"chargingUnits": int,
"cost": float,
"startDate": "string",
"duration": int,
"callType": "PublicNetworkCall | PublicNetworkCallThroughPrivateNetwork | PrivateNetworkCall | ...",
"waitingDuration": int,
"effectiveCallDuration": int,
"actingExtensionNumberNode": int,
"internalFacilities": {
"facilities": [ "CallingLineIdentificationPresentation | ConnectedLineIdentificationPresentation | ..." ]
},
"externalFacilities": {
"facilities": [ "CallingLineIdentificationPresentation | ConnectedLineIdentificationPresentation | ..." ]
}
} |
ChargingFileCharging file information.
Name | Type | Cardinality | Description |
---|
name | string | [1] | name of the file |
date | string | [1] | date of the file in short format mm/dd/yy |
time | string | [1] | time of the file in format hh:mm:ss |
ChargingFilesList of ChargingFile.
Name | Type | Cardinality | Description |
---|
files | ChargingFile | [0..*] | file list. |
Associated method :
ChargingsDescribes the list of charging information per user
Name | Type | Cardinality | Description |
---|
chargings | Charging | [1..*] | Charging information list |
fromDate | string | [0..1] | date from asked in the filter (format = "yyyymmdd") |
toDate | string | [0..1] | date to asked in the filter (format = "yyyymmdd") |
nbChargingFiles | int | [0..1] | number of analyzed files |
totalTicketNb | int | [0..1] | total number of analyzed tickets |
valuableTicketNb | int | [0..1] | number of computed tickets: if the response corresponds to the total charging per user, only the non zero cost tickets are counted. |
[+] : JSON Example{
"chargings": [ {
"caller": "string",
"name": "string",
"called": "string",
"initialDialledNumber": "string",
"callNumber": int,
"chargingUnits": int,
"cost": float,
"startDate": "string",
"duration": int,
"callType": "PublicNetworkCall | PublicNetworkCallThroughPrivateNetwork | PrivateNetworkCall | ...",
"waitingDuration": int,
"effectiveCallDuration": int,
"actingExtensionNumberNode": int,
"internalFacilities": {
"facilities": [ "CallingLineIdentificationPresentation | ConnectedLineIdentificationPresentation | ..." ]
},
"externalFacilities": {
"facilities": [ "CallingLineIdentificationPresentation | ConnectedLineIdentificationPresentation | ..." ]
}
} ],
"fromDate": "string",
"toDate": "string",
"nbChargingFiles": int,
"totalTicketNb": int,
"valuableTicketNb": int
} |
Associated method :
float'float' is 32-bit floating point type.
IncidentDescribes an incident
Name | Type | Cardinality | Description |
---|
date | string | [1] | Incident date. |
hour | string | [1] | Incident hour. |
severity | int | [1] | Incident severity. |
value | string | [1] | Incident value. |
type | string | [1] | Incident type. |
nbOccurs | int | [1] | Incident nb occurences. |
node | string | [1] | Incident node number. |
main | boolean | [1] | Indicate if the incident occurred on the main CPU. |
rack | string | [0..1] | Indicate the rack where the incident occurred. |
board | string | [0..1] | Indicate the board where the incident occurred. |
equipment | string | [0..1] | Indicate the equipment where the incident occurred. |
termination | string | [0..1] | Indicate the termination where the incident occurred. |
[+] : JSON Example{
"date": "string",
"hour": "string",
"severity": int,
"value": "string",
"type": "string",
"nbOccurs": int,
"node": "string",
"main": boolean,
"rack": "string",
"board": "string",
"equipment": "string",
"termination": "string"
} |
IncidentsDescribes the list of incidents
Name | Type | Cardinality | Description |
---|
incidents | Incident | [1..*] | Incidents list |
severity0 | int | [1] | Incident severity 0 number |
severity1 | int | [1] | Incident severity 1 number |
severity2 | int | [1] | Incident severity 2 number |
severity3 | int | [1] | Incident severity 3 number |
severity4 | int | [1] | Incident severity 4 number |
severity5 | int | [1] | Incident severity 5 number |
[+] : JSON Example{
"incidents": [ {
"date": "string",
"hour": "string",
"severity": int,
"value": "string",
"type": "string",
"nbOccurs": int,
"node": "string",
"main": boolean,
"rack": "string",
"board": "string",
"equipment": "string",
"termination": "string"
} ],
"severity0": int,
"severity1": int,
"severity2": int,
"severity3": int,
"severity4": int,
"severity5": int
} |
Associated method :
int'int' is a 32-bit number (-2147483648 to 2147483647).
string'string' represents character strings.
TelFacilitiesName | Type | Cardinality | Description |
---|
facilities | TelFacility | [0..*] | Set of telephony facility |
[+] : JSON Example{
"facilities": [ "CallingLineIdentificationPresentation | ConnectedLineIdentificationPresentation | ..." ]
} |
TelFacilityTelephony facility enumerate
Value | Description |
---|
CallingLineIdentificationPresentation | Calling Line Identification Presentation |
ConnectedLineIdentificationPresentation | Connected Line Identification Presentation |
CallingLineIdentificationRestriction | Calling Line Identification Restriction |
ConnectedLineIdentificationRestriction | Connected Line Identification Restriction |
MaliciousCallIdentification | Malicious CallIdentification |
CallForwardingUnconditional | Call Forwarding Unconditional |
CallForwardingOnBusy | Call Forwarding On Busy |
CallForwardingOnNoReply | Call Forwarding On No Reply |
Transfer | Transfer |
AdviceOfChargeAtSetup | Advice Of Charge At Setup |
AdviceOfChargeDuringCall | Advice Of Charge During Call |
AdviceOfChargeAtEnd | Advice Of Charge At End |
ClosedUserGroup | Closed User Group |
CallWaiting | Call Waiting |
UserToUserSignalling | User To User Signalling |
UserToUserFacility | User To User Facility |
TerminalPortability | Terminal Portability |
Interception | TerminalPortability |
Booking | Booking |
CampOn | CampOn |
Conference | Conference |
MiniMessaging | MiniMessaging |
Subaddressing | Subaddressing |
BasicCall | Basic Call |
OperatorFacility | Operator Facility |
Substitution | Substitution |
PriorityIncomingCall | Priority Incoming Call |
Transit | Transit |
PrivateOverflowToPublic | Private Overflow To Public |
ReroutingPublicToPrivate | Rerouting Public To Private |
FaxServer | Fax Server |
VoiceMail | Voice Mail |
CentralAbbreviatedNumbering | Central Abbreviated Numbering |
IndividualAbbreviatedNumbering | Individual Abbreviated Numbering |
IntegratedServiceVirtualPrivateNetwork | Integrated Service Virtual Private Network |
OverflowVirtualPrivateNetwork | Overflow Virtual Private Network |
ARSService | ARS Service |
DISA | DISA |
None | |
Call Center Agent
Presentation
Terminology:
ACD, CCD: Automatic Call Distribution, Call Center Distribution.
ACD agent: ACD operator.
ACD Supervisor: ACD operator with special prerogatives (supervision, help) of agents.
proACD : device onto the agent logon.
pilot : first step of the ACD distribution: an incoming call arrives on the pilot corresponding to the called number.
waiting queue : second step of the ACD distribution: from the pilot, the call is then routed to the best waiting queue.
processing group (PG) : third step of the ACD distribution: from the queue, the call is then directed to a processing group. The call is finally distributed to an agent
The Contact Center service provides the capabilities for an ACD agent:
- to ask for its agent config(type, pro-acd, processing groups, skills)
- to activate or deactivate some skills among its skills
- to log on an pro-acd set
- to log off
- to ask for the withdraw reasons relative to a PG
- to request a withdraw
- to enter in ready state
- to request a wrapUp
- to ask for agent state or to ask for a snapshot event on agent state
- to request a pause
- to request help from the supervisor
- to cancel(Agent) or reject(Supervisor) help from the supervisor
- (Supervisor only)to ask an intrusion into a agent call
- (Supervisor only)to ask a permanent supervision of an agent
Resources summary
Notifications summary
Notification | Description |
---|
OnAgentSkillChanged | Event sent when ACD agent skills is modified: one or several skills has been activate or deactivate |
OnAgentStateChanged | Event sent when ACD agent state is modified |
OnSupervisorHelpCancelled | Event sent after an ACD agent has requested the assistance of its supervisor and
when the request is canceled by the agent
or when the request is rejected by the supervisor. |
OnSupervisorHelpRequested | Event sent when an ACD agent requests the assistance of its supervisor |
Resources
/acd/agent/config
Methods
Get the ACD agent configuration(type, proacd, processing groups, headset).
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | AgentConfig | application/json
| |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the configuration of agent
request :GET https://server/api/rest/1.0/acd/agent/config
response :200 OK
{
"type" : "AGENT",
"proacd" : "",
"processingGroups" : {"preferred":"70700","groups":["70700", "70701"]},
"headset" : "true"
}
/acd/agent/config/skills/activate
Methods
Activate the ACD agent skills.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Activate the skills 100 and 44 of the agent
request :POST https://server/api/rest/1.0/acd/agent/config/skills/activate
{
"skills": [ 100, 44 ]
}
response :204 No content
Associated notifications
/acd/agent/config/skills/deactivate
Methods
Deactivate the ACD agent skills.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Deactivate the skill 100 of the agent
request :POST https://server/api/rest/1.0/acd/agent/config/skills/deactivate
{
"skills": [ 100 ]
}
response :204 No content
/acd/agent/enterPG
Methods
Enter a Supervisor in a PG (2 step logon).
The Supervisor must be already logged on
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
body parametertype | media types | description |
---|
PGRequest | application/json
| PGRequest: Processing Group number to enter in |
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Enter a Supervisor in PG 60121
request :POST https://server/api/rest/1.0/acd/agent/enterPG
{
"pgGroupNumber": "60121"
}
response :204 No Content
Associated notifications
/acd/agent/exitPG
Methods
Exit a Supervisor from a PG (2 step logoff).
The Supervisor must be logged on in the PG
NB: if the PG number is empty, the request is accepted too and is equivalent to a logoff.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
body parametertype | media types | description |
---|
PGRequest | application/json
| PGRequest: Processing Group number to exit from |
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Exit a Supervisor from PG 60121
request :POST https://server/api/rest/1.0/acd/agent/exitPG
{
"pgGroupNumber": "60121"
}
response :204 No Content
Associated notifications
/acd/agent/intrusion
Methods
Allow an ACD Supervisor agent to request an intrusion on an agent call, according to 3 modes(normal or restricted intrusion or just discrete listening).
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : the supervisor asks a restricted intrusion on an agent call
request :POST https://server/api/rest/1.0/acd/agent/intrusion
{
"agentNumber": "123",
"mode": "restricted"
}
response :204 No Content
Associated notifications
telephony, eventing
Allow an ACD Supervisor agent to change the intrusion mode on the current agent call, according to 3 modes(normal or restricted intrusion or just discrete listening).
It is also possible to use mode=STOP in order to stop the intrusion.
The supervisor MUST be in intrusion on an agent call
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : the supervisor asks a restricted intrusion on an agent call
request :PUT https://server/api/rest/1.0/acd/agent/intrusion
{
"mode": "RESTRICTED"
}
response :204 No Content
Associated notifications
telephony, eventing
/acd/agent/logoff
Methods
LogOff an agent or a Supervisor (one step logoff).
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Log-off the agent
request :POST https://server/api/rest/1.0/acd/agent/logoff
response :204 No Content
Associated notifications
/acd/agent/logon
Methods
LogOn an agent or a supervisor.
For a Supervisor, if the PG is absent, the supervisor is logged on out off group (2 step logon).
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Log-on the agent onto the pro-acd phone device "xxxx" and in the processing group "60121"
request :POST https://server/api/rest/1.0/acd/agent/logon
Content-Type: application/json
{
"proAcdDeviceNumber": "xxxx",
"pgGroupNumber": "60121"
}
response :204 No Content
[+] : Log-on the agent onto the pro-acd phone device "xxxx" (the pg group is not given in this case)
request :POST https://server/api/rest/1.0/acd/agent/logon
Content-Type: application/json
{
"proAcdDeviceNumber": "xxxx"
}
response :204 No Content
Associated notifications
/acd/agent/pause
Methods
Put an ACD agent in Pause.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Put the agent in pause
request :POST https://server/api/rest/1.0/acd/agent/pause
response :204 No Content
Associated notifications
/acd/agent/permanentListening
Methods
Allow an ACD Supervisor agent to request a permanent listening on an agent.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : the supervisor asks a permanent listening on the agent 123
request :POST https://server/api/rest/1.0/acd/agent/permanentListening
{
"agentNumber": "123"
}
response :204 No Content
Associated notifications
Allow an ACD Supervisor agent to cancel the current permanent listening on an agent.
History
Since version 2.7.3
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : the supervisor asks to cancel the permanent listening in progress
request :DELETE https://server/api/rest/1.0/acd/agent/permanentListening
response :204 No Content
Associated notifications
/acd/agent/ready
Methods
Put an agent in READY state.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Put the agent in READY state
request :POST https://server/api/rest/1.0/acd/agent/ready
response :204 No Content
Associated notifications
/acd/agent/state
Methods
Get the ACD agent state.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | AgentState | application/json
| |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the agent state of an agent loged in idle state
request :GET https://server/api/rest/1.0/acd/agent/state
response :200 OK
{"mainState":"LOGGED_ON","subState":"IDLE", "proAcdDeviceNumber": "1002",
"pgGroupNumber": "5001"}
[+] : Get the agent state of an agent loged off
request :GET https://server/api/rest/1.0/acd/agent/state
response :200 OK
{"mainState":"LOGGED_OFF"}
/acd/agent/state/snapshot
Methods
Ask a snapshot event on agent state.
This request has result to send an OnAgentStateChanged event on the concerned agent.
If this request is made by an administrator and no loginName is provided, the snapshot is asked for all the agents.
If a second request is asked since the previous one is still in progress, it has no effect.
CAUTION!: this request is immediately acknowledged but the processing may take a long time if the number of users is huge.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session identifier matches a user account.
For an administrator session, the loginName must either correspond to an existing user
or be null: in this last case, the snapshot event request is done for all the agents. |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
/acd/agent/supervisorHelp
Methods
Allow an ACD agent to request the supervisor help.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : the agent asks its supervisor help
request :POST https://server/api/rest/1.0/acd/agent/supervisorHelp
response :204 No Content
Associated notifications
Allow an ACD agent to cancel or its supervisor to reject the request of supervisor help.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
other | string | |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Cancel Supervisor help by the Agent (supervisor = 1000)
request :DELETE https://server/api/rest/1.0/acd/agent/supervisorHelp?other=1000
response :204 No Content
[+] : Reject Supervisor help by the supervisor (agent = 1001)
request :DELETE https://server/api/rest/1.0/acd/agent/supervisorHelp?other=1001
response :204 No Content
Associated notifications
/acd/agent/withdraw
Methods
Withdraw an agent.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Withdraw the agent with the reason nbr 1
request :POST https://server/api/rest/1.0/acd/agent/withdraw
{
"reasonIndex": "1"
}
response :204 No Content
Associated notifications
/acd/agent/withdrawReasons
Methods
Get the PG withdraw reason list.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
pgNumber | string | the processing group number for which the reasons are asked |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | WithdrawReasons | application/json
| |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the withdraw reasons of agent for the processingGroup xxx
request :GET https://server/api/rest/1.0/acd/agent/withdrawReasons?pgNumber=xxx
response :200 OK
{
"number":"5",
"reasons":[
{"index":"1","label":"Lunch"},
{"index":"2","label":"Meeting"},
{"index":"3","label":"coffee break"},
{"index":"4","label":"other4"},
{"index":"5","label":"other5"}
]}
/acd/agent/wrapUp
Methods
Put an ACD agent in WrapUp.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_AGENT - one license per user.
Required in OPEX mode (LMS server): api-tel-f - one license per user.
Request
query parametersparameter | type | description |
---|
loginName | string | Login name of the user for whom the request is invoked.
This parameter is ignored if the Session
identifier matches a user account, but if it matches an
administrator account, it MUST be specified.
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : WrapUp normal of the agent
request :POST https://server/api/rest/1.0/acd/agent/wrapUp
response :204 No Content
Associated notifications
Representations
AgentConfigAgent configuration parameters.
Name | Type | Cardinality | Description |
---|
type | AgentType | [1] | agent/supervisor. |
proacd | string | [0..1] | associated proacd if the agent is fixed. |
processingGroups | ProcessingGroups | [0..1] | processing groups of the agent |
skills | AgentSkills | [0..1] | agent skills |
selfAssign | boolean | [0..1] | is the operator allowed to choose his PG |
headset | boolean | [0..1] | has the agent a headset |
help | boolean | [0..1] | Has the supervisor a help capability |
multiline | boolean | [0..1] | is multiline : true if at least one multiline programmable key is declared on the set |
[+] : JSON Example{
"type": "AGENT | SUPERVISOR",
"proacd": "string",
"processingGroups": {
"preferred": "string",
"groups": [ "string" ]
},
"skills": {
"skills": [ {
"number": int,
"level": int,
"active": boolean
} ]
},
"selfAssign": boolean,
"headset": boolean,
"help": boolean,
"multiline": boolean
} |
Associated method :
AgentMainStateMain agent state (loggedOn/loggedOff)
Value | Description |
---|
UNKNOWN | the state of the agent is unknown |
LOG_ON | The agent is logged on a pro-acd device |
LOG_OFF | The agent is not logged |
ERROR | Error status |
AgentSkillACD Agent Skill.
Name | Type | Cardinality | Description |
---|
number | int | [0..1] | skill number. |
level | int | [0..1] | skill level. |
active | boolean | [0..1] | is the skill active. |
AgentSkillActivationList of skills to activate or deactivate.
Name | Type | Cardinality | Description |
---|
skills | int | [0..*] | skill number list. |
Associated methods :
AgentSkillsList of skills of an agent.
Name | Type | Cardinality | Description |
---|
skills | AgentSkill | [0..*] | skill list. |
[+] : JSON Example{
"skills": [ {
"number": int,
"level": int,
"active": boolean
} ]
} |
AgentStateAgent State.
Name | Type | Cardinality | Description |
---|
mainState | AgentMainState | [1] | Main state of the agent (logged on or logged off). |
subState | AgentSubState | [0..1] | Sub state of the agent when it is logged. |
proAcdDeviceNumber | string | [0..1] | Pro-acd Device phone number on which the operation is invoked. |
pgNumber | string | [0..1] | Processing group number. |
withdrawReason | int | [0..1] | The withdraw reason number in case of state withdraw.
The list of withdraw reasons corresponding to the processing group should have been retrieved through a GET .../agent/withdrawReasons |
withdrawn | boolean | [0..1] | The withdrawn Boolean is present and true if the agent initial state is withdrawn |
[+] : JSON Example{
"mainState": "UNKNOWN | LOG_ON | LOG_OFF | ERROR",
"subState": "READY | OUT_OF_PG | BUSY | TRANSACTION_CODE_INPUT | WRAPUP | PAUSE | WITHDRAW | ...",
"proAcdDeviceNumber": "string",
"pgNumber": "string",
"withdrawReason": int,
"withdrawn": boolean
} |
Associated method :
AgentSubStateAgent state when logged on
Value | Description |
---|
READY | The agent is ready |
OUT_OF_PG | The agent is logged on, but outside its pre-affected processing group |
BUSY | The agent is busy |
TRANSACTION_CODE_INPUT | The agent is in transaction code input step |
WRAPUP | The agent is in wrap up |
PAUSE | The agent is in pause |
WITHDRAW | The agent is in withdraw |
WRAPUP_IM | The agent is in wrap up IM |
WRAPUP_EMAIL | The agent is in wrap up email |
WRAPUP_EMAIL_INTERRUPTIBLE | The agent is in wrap up email interruptible |
WRAPUP_OUTBOUND | The agent is in wrap up outbound |
WRAPUP_CALLBACK | The agent is in wrap up Callback |
AgentTypeType of agent (simple agent/supervisor)
Value | Description |
---|
AGENT | simple agent |
SUPERVISOR | The agent is a SUPERVISOR |
boolean'boolean' is a data type, having two values (true and false).
ChangeIntrusionModeRequestRequest of an ACD Supervisor to change or cancel the intrusion mode into the current acd agent call.
The intrusion change result depends on the old and the new mode:
from: the previous mode
to : the new set mode
|
from:Normal |
from:Restricted |
from:Discrete |
To:Normal |
the supervisor drops himself from the call |
the mode is changed to normal |
the mode is changed to normal |
To:Restricted |
the mode is changed to restricted |
the supervisor drops himself from the call |
the mode is changed to restricted |
To:Discrete |
the mode is changed to discrete |
the mode is changed to discrete |
the supervisor drops himself from the call |
Name | Type | Cardinality | Description |
---|
mode | IntrusionMode | [1] | mode of the operation
normal intrusion /
restricted intrusion /
discrete listening |
[+] : JSON Example{
"mode": "NORMAL | RESTRICTED | DISCRETE | STOP"
} |
Associated method :
int'int' is a 32-bit number (-2147483648 to 2147483647).
IntrusionMode3 types of call agent intrusion by the supervisor
Value | Description |
---|
NORMAL | The supervisor can talk to both the agent and the remote client |
RESTRICTED | The supervisor can only talk to the agent but listen to the remote client |
DISCRETE | The supervisor only listens to the conversation between agent and client |
STOP | Since version 2.7.3 The supervisor stops the intrusion |
IntrusionRequestRequest of an ACD Supervisor to intrude into the current acd agent call.
The intrusion request is done according to 3 possible modes:
- normal intrusion
- restricted intrusion
- discrete listening.
The intrusion is applied on the current active call of the agent.
To change the intrusion from one mode to another, use the changeIntrusionMode operation
Name | Type | Cardinality | Description |
---|
agentNumber | string | [1] | Agent phone number on which the operation is invoked. |
mode | IntrusionMode | [0..1] | mode of the operation: (default is normal)
normal intrusion /
restricted intrusion /
discrete listening |
[+] : JSON Example{
"agentNumber": "string",
"mode": "NORMAL | RESTRICTED | DISCRETE | STOP"
} |
Associated method :
LoggOnAgentRequestRequest to log on an acd agent or to enter a supervisor in a Processing Group.
Name | Type | Cardinality | Description |
---|
proAcdDeviceNumber | string | [1] | Pro-acd Device phone number on which the operation is invoked.
For a non logg agent (or supervisor), the device MUST be the physical device number wher the agent log on.
If the request concerns an already logged on supervisor (out of GT) which wants to enter the group, the pro-acd device number MUST be the supervisor number itself. |
pgGroupNumber | string | [0..1] | Processing group number.
Optional: pg number may be omitted (depends on the configuration) |
headset | boolean | [0..1] | Headset mode.
Optional: allow the operator to select the headset mode |
Associated method :
OnAgentSkillChangedEvent sent when ACD agent skills is modified: one or several skills has been activate or deactivate
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnAgentSkillChanged' |
loginName | string | [1] | Login name of the user receiving the event. |
skills | AgentSkills | [1] | set of skills of the agent (the event contains the whole set). |
[+] : JSON Example{
"eventName": "string",
"loginName": "string",
"skills": {
"skills": [ {
"number": int,
"level": int,
"active": boolean
} ]
}
} |
Associated method :
OnAgentStateChangedEvent sent when ACD agent state is modified
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnAgentStateChanged' |
loginName | string | [1] | Login name of the user receiving the event. |
state | AgentState | [1] | ACD state. |
[+] : JSON Example{
"eventName": "string",
"loginName": "string",
"state": {
"mainState": "UNKNOWN | LOG_ON | LOG_OFF | ERROR",
"subState": "READY | OUT_OF_PG | BUSY | TRANSACTION_CODE_INPUT | WRAPUP | PAUSE | WITHDRAW | ...",
"proAcdDeviceNumber": "string",
"pgNumber": "string",
"withdrawReason": int,
"withdrawn": boolean
}
} |
Associated methods :
OnSupervisorHelpCancelledEvent sent after an ACD agent has requested the assistance of its supervisor and
when the request is canceled by the agent
or when the request is rejected by the supervisor.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnSupervisorHelpCancelled' |
loginName | string | [1] | Login name of the user receiving the event. |
agentNumber | string | [0..1] | on the agent, the number of the supervisor which the help has been initially requested. |
Associated method :
OnSupervisorHelpRequestedEvent sent when an ACD agent requests the assistance of its supervisor
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnSupervisorHelpRequested' |
loginName | string | [1] | Login name of the user receiving the event. |
agentNumber | string | [0..1] | on the agent, the number of the supervisor which the help has been requested. |
Associated methods :
PermanentListeningRequestRequest to logg on an acd agent.
Name | Type | Cardinality | Description |
---|
agentNumber | string | [1] | Agent phone number on which the operation is invoked. |
Associated method :
PGRequestParameter used to enter/exit in/out a Processing Group.
Name | Type | Cardinality | Description |
---|
pgGroupNumber | string | [0..1] | Processing group number.
Optional: pg number may be omitted (depends on the configuration) |
Associated methods :
ProcessingGroupsList of Processing groups number attached to an agent.
Name | Type | Cardinality | Description |
---|
preferred | string | [0..1] | preferred processing group number. |
groups | string | [0..*] | processing group number list. |
string'string' represents character strings.
WithdrawAgentRequestRequest to withdraw an acd agent.
Name | Type | Cardinality | Description |
---|
reasonIndex | int | [0..1] | index of the reason why the withdraw operation is invoked.
The index must correspond to one of the permitted values for the agent in the group |
Associated method :
WithdrawReasonACD withdraw reason definition.
Name | Type | Cardinality | Description |
---|
index | int | [1] | reason index from 1 to N, maximum of N is 9. |
label | string | [0..1] | label of the reason. |
WithdrawReasonsList of ACD withdraw reasons of an agent in a group.
Name | Type | Cardinality | Description |
---|
number | int | [1] | Number of withdraw reasons for this agent, from 0 to 9. |
reasons | WithdrawReason | [0..*] | reason list.
each reason is indexed from 1 to number |
[+] : JSON Example{
"number": int,
"reasons": [ {
"index": int,
"label": "string"
} ]
} |
Associated method :
Call Center Management
Presentation
This service allows an administrator session to manage CCD pilot objects.
NB1: The pbx nodeIds which are required in this service must be first retrieved through a GET ../pbxs request.
NB2: To enable this service, the "Specific Call Center features" MUST have been activated by configuration
History
Since version 2.7
Resources summary
Resources
/acd/{nodeId}/pilots
Methods
Get the pilot for the current PBX
To be able to invoke the others methods.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
nodeId | int | the pbx node number |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | Pilots | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the pilots of the node 1.
request :GET https://server/api/rest/1.0/acd/1/pilots
response :200 OK Content-Type: application/json
{ "pilotList": [
{ "number": "60142",
"queueState": "s_Opened",
"waitingTime": 0,
"saturation": false,
"rules":
{ "ruleList": [
{ "ruleNumber": "0", "name": "RULE_PIL_0", "active": true }
]}},
{ "number": "60141",
"queueState": "s_Opened",
"waitingTime": 0,
"saturation": false,
"rules":
{ "ruleList": [
{ "ruleNumber": "0", "name": "RULE_PIL_0", "active": false },
{ "ruleNumber": "1", "name": "PILO_RUL_1", "active": true }
]}}
]
}
/acd/{nodeId}/pilots/{pilotNumber}
Methods
Get information of a pilot
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
nodeId | int | the pbx node number |
pilotNumber | string | the pilot number |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | Pilot | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the information for pilot 60141 in node 1.
request :GET https://server/api/rest/1.0/acd/1/pilots/60141
response :200 OK Content-Type: application/json
{
"number": "60141",
"queueState": "s_Opened",
"waitingTime": 0,
"saturation": false,
"rules": {
"ruleList": [
{
"ruleNumber": "0", "name": "RULE_PIL_0", "active": false
},
{
"ruleNumber": "1", "name": "PILO_RUL_1", "active": true
}
]}
}
Get information of a pilot with advanced parameters
History
Since version 2.7.4
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
nodeId | int | the pbx node number |
pilotNumber | string | the pilot number |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
body parametertype | media types | description |
---|
PilotQueryParam | | used to specify the parameter context(skills, ...). |
Response
code | type | media types | description |
---|
200 | Pilot | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the information for pilot 60141 in node 1 for the skill No 1.
request :POST https://server/api/rest/1.0/acd/1/pilots/60141
{
"skills": {
"skills": [ {
"skillNumber": 1,
"acrStatus": true,
"expertEvalLevel": 2
} ],
}
}
response :200 OK Content-Type: application/json
{
"number": "60141",
"queueState": "s_Opened",
"waitingTime": 12,
"saturation": false,
"rules": {
"ruleList": [
{
"ruleNumber": "0", "name": "RULE_PIL_0", "active": false
},
{
"ruleNumber": "1", "name": "PILO_RUL_1", "active": true
}
]}
}
/acd/{nodeId}/pilots/{pilotNumber}/calendar
Methods
Get the whole calendar of a pilot
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
nodeId | int | the pbx node number |
pilotNumber | string | the pilot number |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | PilotCalendar | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : get pilot 60141 calendar in node 1.
request :GET https://server/api/rest/1.0/acd/1/pilots/60141/calendar
response :200
{
"normalDays": {
"calendar": [
{
"day": "monday",
"list": [
{
"number": 1,
"transition": {"time": "11:32","ruleNumber": 0,"mode": "forward"} },
{
"number": 2,
"transition": {"time": "12:00","ruleNumber": 0,"mode": "forward"} }]
},
{
"day": "wednesday",
"list": [
{
"number": 1,
"transition": {"time": "11:11","ruleNumber": 0,"mode": "normal"} },
{
"number": 2,
"transition": {"time": "13:14","ruleNumber": 0,"mode": "forward"} }]
}]},
"exceptionDays": {
"calendar": [
{
"list": [
{
"number": 1,
"transition": {"time": "16:22","ruleNumber": 0,"mode": "forward"} },
{
"number": 2,
"transition": {"time": "12:00","ruleNumber": 0,"mode": "forward"} },
{
"number": 3,
"transition": {"time": "03:12","ruleNumber": 0,"mode": "normal"} }],
"day": "20191216"
},
{
"list": [
{
"number": 1,
"transition": {"time": "18:18","ruleNumber": 0,"mode": "forward"} }],
"day": "20210701"
}]
}
}
/acd/{nodeId}/pilots/{pilotNumber}/calendar/exception
Methods
Get the exception calendar of a pilot
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
nodeId | int | the pbx node number |
pilotNumber | string | the pilot number |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | ExceptionCalendar | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : get pilot 60141 exception calendar in node 1.
request :GET https://server/api/rest/1.0/acd/1/pilots/60141/calendar/exception
response :200
{
"calendar": [
{
"list": [
{
"number": 1,
"transition": {"time": "16:22","ruleNumber": 0,"mode": "forward"} },
{
"number": 2,
"transition": {"time": "12:00","ruleNumber": 0,"mode": "forward"} },
{
"number": 3,
"transition": {"time": "03:12","ruleNumber": 0,"mode": "normal"} }],
"day": "20191216"
},
{
"list": [
{
"number": 1,
"transition": {"time": "18:18","ruleNumber": 0,"mode": "forward"} }],
"day": "20210701"
}]
}
/acd/{nodeId}/pilots/{pilotNumber}/calendar/exception/{date}/transitions
Methods
Add a transition in the exception calendar of a pilot
If the date already exists in the calendar, a new transition is added for this date.
If the date doesn't exist in the calendar, a first transition is created for this date.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
nodeId | int | the pbx node number |
pilotNumber | string | the pilot number |
date | string | the day in the year (yyyymmdd) |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : add pilot 60141 exception calendar transition on 2021, first of June.
request :POST https://server/api/rest/1.0/acd/1/pilots/60141/calendar/exception/20210601/transitions
{
"time": "03:12",
"ruleNumber": 1,
"mode": "forward"
}
response :204
/acd/{nodeId}/pilots/{pilotNumber}/calendar/exception/{date}/transitions/{transitionNbr}
Methods
Modify an existing transition in the exception calendar of a pilot
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
nodeId | int | the pbx node number |
pilotNumber | string | the pilot number |
date | string | the day in the year (yyyymmdd) |
transitionNbr | int | the transition number to modify |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : modify pilot 60141 exception calendar transition 2 on on 2021, first of June.
request :PUT https://server/api/rest/1.0/acd/1/pilots/60141/calendar/exception/20210601/transitions/2
{
"time": "03:15",
"ruleNumber": 1,
"mode": "forward"
}
response :204
Remove an existing transition in the exception calendar of a pilot
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
nodeId | int | the pbx node number |
pilotNumber | string | the pilot number |
date | string | the day in the year (yyyymmdd) |
transitionNbr | int | the transition number to remove |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : remove pilot 60141 exception calendar transition 2 on 2021, first of June.
request :DELETE https://server/api/rest/1.0/acd/1/pilots/60141/calendar/exception/20210601/transitions/2
response :204
/acd/{nodeId}/pilots/{pilotNumber}/calendar/normal
Methods
Get the normal calendar of a pilot
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
nodeId | int | the pbx node number |
pilotNumber | string | the pilot number |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | NormalCalendar | application/json
| OK |
400 | | application/json
| Bad Request |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : get pilot 60104 normal calendar in node 1.
request :GET https://server/api/rest/1.0/acd/1/pilots/60104/calendar/normal
response :200
{
"calendar": [
{
"day": "monday",
"list": [
{
"number": 1,
"transition": {"time": "11:32","ruleNumber": 0,"mode": "forward"} },
{
"number": 2,
"transition": {"time": "12:00","ruleNumber": 0,"mode": "forward"} }]
},
{
"day": "wednesday",
"list": [
{
"number": 1,
"transition": {"time": "11:11","ruleNumber": 0,"mode": "normal"} },
{
"number": 2,
"transition": {"time": "13:14","ruleNumber": 0,"mode": "forward"} }]
}]
}
/acd/{nodeId}/pilots/{pilotNumber}/calendar/normal/{dayOfWeek}/transitions
Methods
Add a transition in the normal calendar of a pilot
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
nodeId | int | the pbx node number |
pilotNumber | string | the pilot number |
dayOfWeek | string | the day in the week (monday/tuesday/...) |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : add pilot 60141 normal calendar transition on tuesday.
request :POST https://server/api/rest/1.0/acd/1/pilots/60141/calendar/normal/tuesday/transitions
{ "time": "03:11",
"ruleNumber": 1,
"mode": "forward"
}
response :204
/acd/{nodeId}/pilots/{pilotNumber}/calendar/normal/{dayOfWeek}/transitions/{transitionNbr}
Methods
Modify an existing transition in the normal calendar of a pilot
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
nodeId | int | the pbx node number |
pilotNumber | string | the pilot number |
dayOfWeek | string | the day in the week (monday/tuesday/...) |
transitionNbr | int | the transition number: 1, 2,... |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : modify pilot 60141 normal calendar transition 1 on tuesday.
request :PUT https://server/api/rest/1.0/acd/1/pilots/60141/calendar/normal/tuesday/transitions/1
{ "time": "03:12",
"ruleNumber": 1,
"mode": "forward"
}
response :204
Remove an existing transition in the normal calendar of a pilot
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
nodeId | int | the pbx node number |
pilotNumber | string | the pilot number |
dayOfWeek | string | the day in the week (monday/tuesday/...) |
transitionNbr | int | the transition number to remove |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : remove pilot 60141 normal calendar transition 2 on tuesday.
request :DELETE https://server/api/rest/1.0/acd/1/pilots/60141/calendar/normal/tuesday/transitions/2
response :204
/acd/{nodeId}/pilots/{pilotNumber}/close
Methods
Close a pilot
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
nodeId | int | the pbx node number |
pilotNumber | string | the pilot number |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : close pilot 60104 in node 1.
request :POST https://server/api/rest/1.0/acd/1/pilots/60104/open
response :204 No Content
/acd/{nodeId}/pilots/{pilotNumber}/open
Methods
Open a pilot
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
nodeId | int | the pbx node number |
pilotNumber | string | the pilot number |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : open pilot 60104 in node 1.
request :POST https://server/api/rest/1.0/acd/1/pilots/60104/open
response :204 No Content
Representations
ACRSkillDescribes an ACR skill.
Name | Type | Cardinality | Description |
---|
skillNumber | int | [0..1] | skill number |
acrStatus | boolean | [0..1] | skill activation status |
expertEvalLevel | int | [0..1] | expert evaluation level |
[+] : JSON Example{
"skillNumber": int,
"acrStatus": boolean,
"expertEvalLevel": int
} |
ACRSkillsList of ACR skills.
Name | Type | Cardinality | Description |
---|
skills | ACRSkill | [0..*] | skill list. |
[+] : JSON Example{
"skills": [ {
"skillNumber": int,
"acrStatus": boolean,
"expertEvalLevel": int
} ]
} |
boolean'boolean' is a data type, having two values (true and false).
DayOfWeekDifferent days of week in transition.
Value | Description |
---|
monday | |
tuesday | |
wednesday | |
thursday | |
friday | |
saturday | |
sunday | |
ExceptionCalendarPilot calendar transitions for Exception days.
Name | Type | Cardinality | Description |
---|
calendar | ExceptionTransitions | [0..*] | the map of exception transitions per day. Day format must be 'yyyymmdd' |
[+] : JSON Example{
"calendar": [ {
"date": "string",
"list": [ {
"number": int,
"transition": {
"time": "string",
"ruleNumber": int,
"mode": "normal | closed | forward"
}
} ]
} ]
} |
Associated method :
ExceptionTransitionsList of pilot transitions in a day.
Name | Type | Cardinality | Description |
---|
date | string | [1] | the date: format must be 'yyyymmdd' |
list | PilotTransitions | [0..*] | the existing pilot transitions (max 10) for a day |
[+] : JSON Example{
"date": "string",
"list": [ {
"number": int,
"transition": {
"time": "string",
"ruleNumber": int,
"mode": "normal | closed | forward"
}
} ]
} |
int'int' is a 32-bit number (-2147483648 to 2147483647).
NormalCalendarPilot calendar transitions for normal days.
Name | Type | Cardinality | Description |
---|
calendar | NormalTransitions | [0..*] | the map of normal transitions per day |
[+] : JSON Example{
"calendar": [ {
"day": "monday | tuesday | wednesday | thursday | friday | saturday | sunday",
"list": [ {
"number": int,
"transition": {
"time": "string",
"ruleNumber": int,
"mode": "normal | closed | forward"
}
} ]
} ]
} |
Associated method :
NormalTransitionsList of pilot transitions in a day.
Name | Type | Cardinality | Description |
---|
day | DayOfWeek | [1] | the day of week |
list | PilotTransitions | [0..*] | the existing pilot transitions (max 10) for a day |
[+] : JSON Example{
"day": "monday | tuesday | wednesday | thursday | friday | saturday | sunday",
"list": [ {
"number": int,
"transition": {
"time": "string",
"ruleNumber": int,
"mode": "normal | closed | forward"
}
} ]
} |
PilotPilot information.
Name | Type | Cardinality | Description |
---|
number | string | [0..1] | the number of the pilot |
name | string | [0..1] | the name of the pilot |
state | ServiceState | [0..1] | the pilot state |
detailedState | PilotStatus | [0..1] | the pilot detailed state |
waitingTime | int | [0..1] | the expected waiting time if a call is transferred on this pilot |
saturation | boolean | [0..1] | the queue saturation indication if a call is transferred on this pilot |
rules | PilotRules | [0..1] | the rules of the pilot |
possibleTransfer | boolean | [0..1] | the transfer is possible |
supervisedTransfer | boolean | [0..1] | the transfer will be supervised |
[+] : JSON Example{
"number": "string",
"name": "string",
"state": "Closed | Opened | Blocked | unknown",
"detailedState": "OPEN | BLOCKED | BLOCKED_ON_RULE | BLOCKED_ON_BLOCKED_RULE | GENERAL_FORWARDING | ...",
"waitingTime": int,
"saturation": boolean,
"rules": {
"ruleList": [ {
"ruleNumber": "string",
"name": "string",
"active": boolean
} ]
},
"possibleTransfer": boolean,
"supervisedTransfer": boolean
} |
Associated methods :
PilotCalendarPilot calendar transition.
Name | Type | Cardinality | Description |
---|
normalDays | NormalCalendar | [0..1] | the normal calendar (day of week) |
exceptionDays | ExceptionCalendar | [0..1] | the exception calendar (day of year) |
[+] : JSON Example{
"normalDays": {
"calendar": [ {
"day": "monday | tuesday | wednesday | thursday | friday | saturday | sunday",
"list": [ {
"number": int,
"transition": {
"time": "string",
"ruleNumber": int,
"mode": "normal | closed | forward"
}
} ]
} ]
},
"exceptionDays": {
"calendar": [ {
"date": "string",
"list": [ {
"number": int,
"transition": {
"time": "string",
"ruleNumber": int,
"mode": "normal | closed | forward"
}
} ]
} ]
}
} |
Associated method :
PilotOperatingModeDifferent operating mode of a pilot in a transition.
Value | Description |
---|
normal | Normal |
closed | Closed |
forward | Forward |
PilotQueryParamDescribes parameters related to a pilot information request.
it allows the retrieval of CCD distribution information according to the call profile.
Name | Type | Cardinality | Description |
---|
agentNumber | string | [0..1] | agent number call profile. Optional |
skills | ACRSkills | [0..1] | Skills associated to the call profile. Optional |
priorityTransfer | boolean | [0..1] | In case the transfer will a be priority one. Optional |
supervisedTransfer | boolean | [0..1] | In case the transfer will be supervised. Optional |
[+] : JSON Example{
"agentNumber": "string",
"skills": {
"skills": [ {
"skillNumber": int,
"acrStatus": boolean,
"expertEvalLevel": int
} ]
},
"priorityTransfer": boolean,
"supervisedTransfer": boolean
} |
Associated methods :
PilotRulePilot Rule
Name | Type | Cardinality | Description |
---|
ruleNumber | string | [1] | the number of rule |
name | string | [0..1] | the name of rule |
active | boolean | [1] | True is it is the current rule else False |
PilotRulesList of rule of a pilot
Name | Type | Cardinality | Description |
---|
ruleList | PilotRule | [0..*] | the rules of the pilot |
PilotsList of pilots in the current pbx.
Name | Type | Cardinality | Description |
---|
pilotList | Pilot | [0..*] | the existing pilot list in the pbx node, may be null if none |
[+] : JSON Example{
"pilotList": [ {
"number": "string",
"name": "string",
"state": "Closed | Opened | Blocked | unknown",
"detailedState": "OPEN | BLOCKED | BLOCKED_ON_RULE | BLOCKED_ON_BLOCKED_RULE | GENERAL_FORWARDING | ...",
"waitingTime": int,
"saturation": boolean,
"rules": {
"ruleList": [ {
"ruleNumber": "string",
"name": "string",
"active": boolean
} ]
},
"possibleTransfer": boolean,
"supervisedTransfer": boolean
} ]
} |
Associated method :
PilotStatusLists the different ACD pilot status.
Value | Description |
---|
OPEN | |
BLOCKED | |
BLOCKED_ON_RULE | |
BLOCKED_ON_BLOCKED_RULE | |
GENERAL_FORWARDING | |
GENERAL_FORWARDING_ON_RULE | |
BLOCKED_ON_GENERAL_FORWARDING_RULE | |
OTHER | |
PilotTransitionPilot calendar transition.
Name | Type | Cardinality | Description |
---|
time | string | [1] | the transition begin time in mandatory format "hh:mm" |
ruleNumber | int | [1] | the rule number: between 0 and 29 |
mode | PilotOperatingMode | [1] | the operating mode |
[+] : JSON Example{
"time": "string",
"ruleNumber": int,
"mode": "normal | closed | forward"
} |
Associated methods :
PilotTransitionsPilot calendar transitions.
Name | Type | Cardinality | Description |
---|
number | int | [1] | the transition number in [1,10] |
transition | PilotTransition | [1] | the transition |
[+] : JSON Example{
"number": int,
"transition": {
"time": "string",
"ruleNumber": int,
"mode": "normal | closed | forward"
}
} |
ServiceStateState of service of a pilot/queue
Value | Description |
---|
Closed | Service is closed |
Opened | Service is opened |
Blocked | Service is blocked |
unknown | unknown state |
string'string' represents character strings.
Call Center Pilot
Presentation
This service allows an administrator to monitor the CCD pilots.
History
Since version 2.7
Resources summary
Resource | Method | Description |
---|
/acd/pilotmonitoring/{nodeId}/{pilotNumber} | POST | Start the monitoring of a pilot giving the pbx node (deprecated)
If the pilot is already monitored, no error is returned. |
DELETE | Stop the monitoring of a pilot giving the pbx node (deprecated)
If another session still alive has asked the monitoring of the pilot, the monitoring is not stopped, no error is returned. |
/acd/pilotmonitoring/{pilotNumber} | POST | Start the monitoring of a pilot
If the pilot is already monitored, no error is returned. |
DELETE | Stop the monitoring of a pilot
If another session still alive has asked the monitoring of the pilot, the monitoring is not stopped, no error is returned. |
Notifications summary
Notification | Description |
---|
OnPilotCallCreated | This event indicates that a new call arrives on a pilot. |
OnPilotCallQueued | This event indicates that the call has been queued. |
OnPilotCallRemoved | This event indicates that the call has been removed from the pilot: cause distribution, cancel or overflow. |
Resources
/acd/pilotmonitoring/{nodeId}/{pilotNumber}
Methods
Start the monitoring of a pilot giving the pbx node (deprecated)
If the pilot is already monitored, no error is returned.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
nodeId | int | the pbx node number |
pilotNumber | string | the pilot number |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : start monitoring pilot 60141 in node 1.
request :POST https://server/api/rest/1.0/acd/pilotmonitoring/1/60141
response :204 No Content
Associated notifications
Stop the monitoring of a pilot giving the pbx node (deprecated)
If another session still alive has asked the monitoring of the pilot, the monitoring is not stopped, no error is returned.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
nodeId | int | the pbx node number |
pilotNumber | string | the pilot number |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : stop monitoring pilot 60141 in node 1.
request :DELETE https://server/api/rest/1.0/acd/pilotmonitoring/1/60141
response :204 No Content
/acd/pilotmonitoring/{pilotNumber}
Methods
Start the monitoring of a pilot
If the pilot is already monitored, no error is returned.
History
Since version 2.7.2
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
pilotNumber | string | the pilot number |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : start monitoring pilot 60141.
request :POST https://server/api/rest/1.0/acd/pilotmonitoring/60141
response :204 No Content
Associated notifications
Stop the monitoring of a pilot
If another session still alive has asked the monitoring of the pilot, the monitoring is not stopped, no error is returned.
History
Since version 2.7.2
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
pilotNumber | string | the pilot number |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : stop monitoring pilot 60141.
request :DELETE https://server/api/rest/1.0/acd/pilotmonitoring/60141
response :204 No Content
Representations
boolean'boolean' is a data type, having two values (true and false).
CallCauseLists the different call causes.
Value | Description |
---|
ABANDONED | Caller in a two-party call has disconnected before the call was answered. |
ALL_TRUNK_BUSY | The call is receiving the network congestion tone. |
BUSY | The call is receiving the busy tone. |
CLEARED | One party in a two-party call has disconnected after the call was answered. |
PARTICIPANT_LEFT | One party has left the conference call. |
CONFERENCED | This is a multi-party call. |
INVALID_NUMBER | The call is receiving the invalid number tone. |
DESTINATION_NOT_OBTAINABLE | The destination cannot be reached. |
DO_NOT_DISTURB | The device is in DND. |
FORWARDED | The call has been forwarded. |
NOT_ANSWERED | The call has been hanged up before answer. |
PICKED_UP | The call has been picked up. |
PARKED | The call has been parked. |
REDIRECTED | The call has been redirected. |
OVERFLOWN | The call goes on overflow destination. |
TRANSFERRED | This is a transferred call. |
CAMP_ON | The call has been put in wait. |
UNKNOWN | Unknown cause. |
PICKED_UP_TANDEM | Picked up tandem. |
CALL_BACK | The call is a call back. |
RECALL | The call is recall (e.g. on HELD call indicates that device rings back). |
DISTRIBUTED | CCD context: call distribution |
ACD_ENTER_DISTRIBUTION | CCD context: call enters in distribution |
RESOURCES_NOT_AVAILABLE | CCD context: pilot is not open |
SUPERVISOR_LISTENING | CCD context: supervisor is listening the agent conversation |
SUPERVISOR_INTRUSION | CCD context: supervisor is fully intruded in the agent conversation |
SUPERVISOR_RESTRICT_INTRUSION | CCD context: supervisor can speak to the agent |
NO_AVAILABLE_AGENT | CCD context: No available agent |
LOCKOUT | Physical phone set device is off the hook |
CallDataPilotDescribes data associated to a pilot call.
Name | Type | Cardinality | Description |
---|
initialCalled | string | [0..1] | Initial user called for this call. |
anonymous | boolean | [0..1] | If true it's a anonymous call. |
associatedData | string | [0..1] | Associated data (or Correlator data). |
hexaBinaryAssociatedData | string | [0..1] | Hexa binary array format for Associated data (or Correlator data). |
trunkIdentification | TrunkIdentification | [0..1] | TrunkIdentification if external call |
networkRerouted | boolean | [0..1] | if the call has been rerouted in the network (absent if not) |
[+] : JSON Example{
"initialCalled": "string",
"anonymous": boolean,
"associatedData": "string",
"hexaBinaryAssociatedData": "string",
"trunkIdentification": {
"networkTimeslot": int,
"trunkNeqt": [ int ]
},
"networkRerouted": boolean
} |
int'int' is a 32-bit number (-2147483648 to 2147483647).
OnPilotCallCreatedThis event indicates that a new call arrives on a pilot.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnPilotCallCreated' |
pilot | string | [1] | Pilot number. |
caller | string | [1] | Caller number. |
callRef | string | [1] | Call reference (global call reference). |
cause | CallCause | [1] | Call origine cause. |
callData | CallDataPilot | [0..1] | Since version 2.7.2 Call data. |
[+] : JSON Example{
"eventName": "string",
"pilot": "string",
"caller": "string",
"callRef": "string",
"cause": "ABANDONED | ALL_TRUNK_BUSY | BUSY | CLEARED | PARTICIPANT_LEFT | CONFERENCED | ...",
"callData": {
"initialCalled": "string",
"anonymous": boolean,
"associatedData": "string",
"hexaBinaryAssociatedData": "string",
"trunkIdentification": {
"networkTimeslot": int,
"trunkNeqt": [ int ]
},
"networkRerouted": boolean
}
} |
Associated methods :
OnPilotCallQueuedThis event indicates that the call has been queued.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnPilotCallQueued' |
pilot | string | [1] | Pilot number. |
caller | string | [1] | Caller number. |
queue | string | [0..1] | Queue number (if distribution) or identifier (if overflow). |
callRef | string | [1] | Call reference (global call reference). |
cause | CallCause | [1] | Call queuing cause. |
numberOfQueued | int | [0..1] | number of queued calls in the pilot queue. |
[+] : JSON Example{
"eventName": "string",
"pilot": "string",
"caller": "string",
"queue": "string",
"callRef": "string",
"cause": "ABANDONED | ALL_TRUNK_BUSY | BUSY | CLEARED | PARTICIPANT_LEFT | CONFERENCED | ...",
"numberOfQueued": int
} |
Associated methods :
OnPilotCallRemovedThis event indicates that the call has been removed from the pilot: cause distribution, cancel or overflow.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnPilotCallRemoved' |
pilot | string | [1] | Pilot number. |
releasingDevice | string | [1] | releasingDevice number. |
newDestination | string | [1] | new Destination number. |
callRef | string | [1] | Call reference (global call reference). |
cause | CallCause | [1] | Call releasing cause. |
[+] : JSON Example{
"eventName": "string",
"pilot": "string",
"releasingDevice": "string",
"newDestination": "string",
"callRef": "string",
"cause": "ABANDONED | ALL_TRUNK_BUSY | BUSY | CLEARED | PARTICIPANT_LEFT | CONFERENCED | ..."
} |
Associated methods :
string'string' represents character strings.
TrunkIdentificationFor external call, provide information on network timeslot and trunk eqt number
Name | Type | Cardinality | Description |
---|
networkTimeslot | int | [0..1] | the network time slot. |
trunkNeqt | int | [0..*] | trunk equipment number (Could be 2 nbrs in case of conference with 2 different external trunks. |
[+] : JSON Example{
"networkTimeslot": int,
"trunkNeqt": [ int ]
} |
Call Center Real Time
Presentation
This service allows to retrieve real time information related to ACD objects from an
OXE in the form of events
Only for an administrator.
The different ACD objects concerned are:
- the ACD agents
- the ACD pilots
- the ACD waiting queues
- the ACD Processing groups which are associated to agents
- the ACD Processing groups which are not associated to agents(forward, guide,...)
To use this service, the typical sequential of operation are:
1. create an administrator session
2. make a subscription to "rti" event package using "*" as selector identifiers.
3. start the RTI monitoring by creating a RTI context which defines filter on the the ACD objects the application wants to observe.
4. ask for a snapshot in order to initialize the application with the current value of all of the attributes for all objects.
From this moment, the application is notified with the different types of events, each time one or several attributes are changed.
The events contain the attributes that have changed since the previous notification, and only them.
NB: To enable this service, "Specific Call Center features" MUST have been activated by configuration
History
Since version 2.7.4
Resources summary
Resource | Method | Description |
---|
/acd/rti | GET | Retrieve all RTI identifiers for agents,pilots,queues,PGs Agent and PGs Other |
/acd/rti/agents | GET | Retrieve all RTI identifiers for agents |
/acd/rti/ctx | POST | Create/modify and/or activate RTI context to receive real time notifications according to a filter. |
PUT | Modify RTI context associated to administrator. |
GET | Retrieve current RTI context associated to administrator(if created). |
DELETE | Remove current RTI session context to stop to receive real time notifications. |
/acd/rti/pgAgents | GET | Retrieve all RTI identifiers for PGs Agent |
/acd/rti/pgOthers | GET | Retrieve all RTI identifiers for PGs Other |
/acd/rti/pilots | GET | Retrieve all RTI identifiers for pilots |
/acd/rti/queues | GET | Retrieve all RTI identifiers for queues |
/acd/rti/snapshot | POST | Snapshot : Request to generate and emit all real time events. |
Notifications summary
Notification | Description |
---|
OnAgentRtiChanged | Notification sent each time if one or more attributes of an agent change. |
OnPGAgentRtiChanged | Notification sent each time if one or more attributes of agent processing group
change. |
OnPGOtherRtiChanged | Notification sent each time if one or more attributes of a PG not associated
to an agent change. |
OnPilotRtiChanged | Notification sent each time if one or more attributes of a pilot change. |
OnQueueRtiChanged | Notification sent each time if one or more attributes of a queue change. |
Resources
/acd/rti
Methods
Retrieve all RTI identifiers for agents,pilots,queues,PGs Agent and PGs Other
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | RtiIdentifiers | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
/acd/rti/agents
Methods
Retrieve all RTI identifiers for agents
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | RtiIdentifiers | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
/acd/rti/ctx
Methods
Create/modify and/or activate RTI context to receive real time notifications according to a filter.
Only one context can be associated to an administrator
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
body parametertype | media types | description |
---|
RtiContext | application/json
| optional: if present create/update the list of objects to receive and the associated filters else search and activate the current context for administrator |
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Start Rti for agents/pilots/queues/PG Agent
request :POST https://server/api/rest/1.0/acd/rti/ctx
{
"obsPeriod": 60,
"notifFrequency": 10,
"filter": {
"agentFilter": {
"numbers": [ "60113","60114" ],
"attributes": [ "AssociatedSet","CurrentPG","PhoneState","LogonDate","PrivateCallsTotalDuration","ComDate","NBOfPrivateCalls","NbOfServedACDCalls","nbOfRefusedACDCalls","NbOfTransferedACDCalls","NbOfOutgoingACDCalls","ServiceState"]
},
"pilotFilter": {
"numbers": [ "60141" ],
"attributes": [ "State","ServiceLevel","CurrentPG","NbOfWaitingCalls","NbOfMutualAidCalls" ]
},
"queueFilter": {
"numbers": [ "60131","60132" ],
"attributes": [ "State","NbOfAgentsInDistribution","IncomingTraffic","OutgoingTraffic" ]
},
"pgAgentFilter": {
"numbers": [ "60121" ],
"attributes": [ "State","NbOfWithdrawnAgents","Efficiency","IncomingTraffic" ]
}
}
}
response :204 No Content
Associated notifications
OnRtiPilotChanged, OnRtiFilterChanged, OnRtiWaitingQueue
, OnRtiProcessingGroupAgentChanged
, OnRtiProcessingGroupOtherChanged, OnRtiAgentChanged
Modify RTI context associated to administrator.
The context is updated for current session and future sessions (not for other already opened sessions)
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
body parametertype | media types | description |
---|
RtiContext | application/json
| |
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Start Rti for agents/pilots/queues/pg Agent
request :PUT https://server/api/rest/1.0/acd/rti/ctx
{
"obsPeriod": 60,
"notifFrequency": 10,
"filter": {
"agentFilter": {
"numbers": [ "60113","60114" ],
"attributes": [ "AssociatedSet","CurrentPG","PhoneState","LogonDate","PrivateCallsTotalDuration","ComDate","NBOfPrivateCalls","NbOfServedACDCalls","nbOfRefusedACDCalls","NbOfTransferedACDCalls","NbOfOutgoingACDCalls","ServiceState"]
},
"pilotFilter": {
"numbers": [ "60141" ],
"attributes": [ "State","ServiceLevel","CurrentPG","NbOfWaitingCalls","NbOfMutualAidCalls" ]
},
"queueFilter": {
"numbers": [ "60131","60132" ],
"attributes": [ "State","NbOfAgentsInDistribution","IncomingTraffic","OutgoingTraffic" ]
},
"pgAgentFilter": {
"numbers": [ "60121" ],
"attributes": [ "State","NbOfWithdrawnAgents","Efficiency","IncomingTraffic" ]
}
}
}
response :204 No Content
Retrieve current RTI context associated to administrator(if created).
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
query parametersparameter | type | description |
---|
extended | boolean | This parameter is optional : if absent or false, context is returned in compact mode , if present and true context is returned in extended mode (special characters like * or ALL are replaced with actual values). |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | RtiContext | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get compact context.
request :GET https://server/api/rest/1.0/acd/rti/ctx
response :The context
200 Ok
{
"obsPeriod": 60,
"notifFrequency": 10,
"filter": {
"agentFilter": {
"numbers": [ "*" ],
"attributes": [ "ALL"]
},
"pilotFilter": {
"numbers": [ "60141" ],
"attributes": [ "State","ServiceLevel","CurrentPG","NbOfWaitingCalls","NbOfMutualAidCalls" ]
},
"queueFilter": {
"numbers": [ "*" ],
"attributes": [ "State","NbOfAgentsInDistribution","IncomingTraffic","OutgoingTraffic" ]
},
"pgAgentFilter": {
"numbers": [ "60121" ],
"attributes": [ "ALL" ]
}
}
}
[+] : Get extended context.
request :GET https://server/api/rest/1.0/acd/rti/ctx?extended=true
response :The context
200 Ok
{
"active": false,
"obsPeriod": 30,
"notifFrequency": 10,
"filter": {
"agentFilter": {
"numbers": [
"60070",
"34000",
"3001",
"60210",
"60110"
],
"attributes": [
"WithdrawReason",
"NbOfInterceptedACDCalls",
"NbOfTransferedACDCalls",
"NbOfWithdrawals"
]
},
"pilotFilter": {
"numbers": [
"60141"
],
"attributes": [
"State",
"ServiceLevel",
"NbOfMutualAidCalls",
"NbOfWaitingCalls"
]
},
"queueFilter": {
"numbers": [
"60135",
"60134",
"60131"
],
"attributes": [
"State",
"OutgoingTraffic",
"IncomingTraffic",
"NbOfAgentsInDistribution"
]
},
"pgAgentFilter": {
"numbers": [
"60121"
],
"attributes": [
"ServiceLevel",
"State",
"NbOfAgentsInPause",
"NbOfWithdrawnAgents"
]
}
}
}
Remove current RTI session context to stop to receive real time notifications.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
/acd/rti/pgAgents
Methods
Retrieve all RTI identifiers for PGs Agent
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | RtiIdentifiers | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
/acd/rti/pgOthers
Methods
Retrieve all RTI identifiers for PGs Other
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | RtiIdentifiers | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
/acd/rti/pilots
Methods
Retrieve all RTI identifiers for pilots
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | RtiIdentifiers | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
/acd/rti/queues
Methods
Retrieve all RTI identifiers for queues
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | RtiIdentifiers | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
/acd/rti/snapshot
Methods
Snapshot : Request to generate and emit all real time events.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
OnRtiPilotChanged, OnRtiFilterChanged, OnRtiWaitingQueue
, OnRtiProcessingGroupAgentChanged
, OnRtiProcessingGroupOtherChanged, OnRtiAgentChanged
Representations
AgentAttributeAttributes of an Agent that may be filtered in the API:
To get all the attributes, simply set "ALL" as attribute list.
Value | Description |
---|
AssociatedSet | Associated Set (pro acd) |
CurrentPG | current processing group |
PhoneState | phone state (ringing, talking, ...) |
LogonDate | UTC logon date (or "NS" if not logged) |
PrivateCallsTotalDuration | Duration of all private calls (in sec) |
ComDate | UTC date of entering communication (or "NS" if not in communication) |
NBOfPrivateCalls | Number of private calls |
NbOfServedACDCalls | Number of answered ACD calls |
NbOfRefusedACDCalls | Number of non answered ACD calls |
NbOfTransferedACDCalls | Number of transferred ACD calls |
NbOfOutgoingACDCalls | Number of outgoing ACD calls |
NbOfInterceptedACDCalls | Number of picked up ACD calls |
ServiceState | Agent service state (loggedIn, assigned, ...) |
NbOfWithdrawals | Number of withdrawals |
WithdrawalsTotalDuration | Total duration of withdrawal |
WithdrawReason | Last withdrawal reason |
PilotName | Pilot name |
QueueName | Queue name |
ALL | used to specify all wanted attributes |
AgentTypeTypes of an agent.
Value | Description |
---|
Normal | Normal |
IVR | agent of type IVR |
boolean'boolean' is a data type, having two values (true and false).
dateTime'dateTime' is an UTC datetime whose format (ISO 8601 compatible) is yyyy-MM-ddTHH:mm:ss.SSSZ (example: 2013-05-16T18:17:15.489Z).
E_AgentPhoneStateLists the different state of an agent.
Value | Description |
---|
Idle | Idle |
LineLockout | Only for analog device (device is hang off) |
OutOfOrder | Out of service |
AcdRinging | Ringing |
AcdConversation | Call in progress |
AcdConsultation | In call or on hold, establishing another connection (double call) in
progress |
Help | Request for help |
AcdConference | In conference |
TransactionOnDial | Dialing his transaction code |
Pause | In pause |
WrapUp | In wrap-up |
SupervisorDiscreteListening | Only for supervisor : discreet listening |
AgentDiscreteListening | Agent "victim" of discreet listening |
Recording | Recording call |
LoggedOut | Log off |
Held | Agent put in hold by his correspondent or having put his correspondent on
hold |
Dialing | In dialing |
PrivateRinging | In Ringing |
PrivateLocalConversation | Local call |
PrivateExternalConversation | External call |
PrivateConsultation | Call established or on hold, and a second in the establishment
phase or established and on hold or in communication |
PrivateConference | In conference |
BusyTone | Busy tone |
Reserved | Reserved by the attendant |
AcdOutgoingConversation | Simple out coming call |
ContinuousSupervision | Supervisor in "listening on agent" |
Unavailable | Using during a line lockout for the digital IVRs |
unknown | the phone state is unknown |
E_AgentServiceStateState of service of an agent.
Value | Description |
---|
LoggedOut | agent is logged out |
LoggedIn | agent is logged in (out of processing group) |
Assigned | agent is logged in and assigned in a processing group |
Withdrawn | agent is withdrawn |
unknown | unknown state |
int'int' is a 32-bit number (-2147483648 to 2147483647).
OnAgentRtiChangedNotification sent each time if one or more attributes of an agent change.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnAgentRtiChanged' |
name | string | [1] | Agent name |
firstName | string | [0..1] | Agent first name |
number | string | [1] | Agent phone Number |
type | AgentType | [1] | Agent Type (Normal/IVR) |
logonDate | string | [0..1] | Log on date:
String which contains either an UTC dateTime (ISO 8601 format) if the agent is logged on or "NS" (Non Significant) if not |
serviceState | E_AgentServiceState | [0..1] | Service state |
phoneState | E_AgentPhoneState | [0..1] | Phone state |
pilotName | string | [0..1] | Name of the pilot |
queueName | string | [0..1] | Queue name |
nbOfWithdrawals | int | [0..1] | Number of withdrawals since log on |
serviceStateDate | dateTime | [0..1] | Date of entry in the service state in progress |
comDate | string | [0..1] | Date of entry in phone state conversation:
String which contains either an UTC dateTime (ISO 8601 format) if the agent is in conversation or "NS" (Non Significant) if not |
withdrawalsTotalDuration | int | [0..1] | Total time (in sec) passed in withdrawal |
nbOfPrivateCalls | int | [0..1] | Total number of private answered calls since log on |
privateCallsTotalDuration | int | [0..1] | Total time (in sec) passed in private calls since log on |
nbOfServedACDCalls | int | [0..1] | Number of ACD calls served since log on |
nbOfOutgoingACDCalls | int | [0..1] | Number of outgoing answered ACD calls since log on |
nbOfRefusedACDCalls | int | [0..1] | Number of ACD calls refused since log on |
nbOfInterceptedACDCalls | int | [0..1] | Number of intercepted ACD calls since log on |
nbOfTransferedACDCalls | int | [0..1] | Number of transfered ACD calls since log on |
currentPG | string | [0..1] | The PG number in which the agent is currently affected in |
associatedSet | string | [0..1] | The phone number of the associated phone set |
withdrawReason | int | [0..1] | Agent Withdraw Reason (number) |
[+] : JSON Example{
"eventName": "string",
"name": "string",
"firstName": "string",
"number": "string",
"type": "Normal | IVR",
"logonDate": "string",
"serviceState": "LoggedOut | LoggedIn | Assigned | Withdrawn | unknown",
"phoneState": "Idle | LineLockout | OutOfOrder | AcdRinging | AcdConversation | ...",
"pilotName": "string",
"queueName": "string",
"nbOfWithdrawals": int,
"serviceStateDate": "dateTime",
"comDate": "string",
"withdrawalsTotalDuration": int,
"nbOfPrivateCalls": int,
"privateCallsTotalDuration": int,
"nbOfServedACDCalls": int,
"nbOfOutgoingACDCalls": int,
"nbOfRefusedACDCalls": int,
"nbOfInterceptedACDCalls": int,
"nbOfTransferedACDCalls": int,
"currentPG": "string",
"associatedSet": "string",
"withdrawReason": int
} |
OnPGAgentRtiChangedNotification sent each time if one or more attributes of agent processing group
change.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnPGAgentRtiChanged' |
name | string | [1] | Name |
number | string | [1] | Number |
type | PGAgentType | [1] | Type |
state | ServiceState | [0..1] | Service state |
nbOfWidthdrawnAgents | int | [0..1] | Number of withdrawn agents |
nbOfAgentsInPrivateCall | int | [0..1] | Number of agents in private call |
nbOfAgentsInACDCall | int | [0..1] | Number of agents in ACD call |
nbOfAgentsInACDRinging | int | [0..1] | Number of agents in ACD ringing |
nbOfAgentsInACDConv | int | [0..1] | Number of agents in ACD conversation |
nbOfAgentsInWrapupAndTransaction | int | [0..1] | Number of agents in Wrap Up and in Transaction |
nbOfAgentsInPause | int | [0..1] | Number of agents in pause |
nbOfBusyAgents | int | [0..1] | Number Integer agents busy (ACD) or in private call |
nbOfLoggedOnAgents | int | [0..1] | Number of agents logged on (total) |
nbOfFreeAgents | int | [0..1] | Number of free agents (withdrawn or not) |
nbOfIdleAgents | int | [0..1] | Number of free agents (excluding withdrawn) |
nbOfLoggedOnAndNotWithdrawnAgents | int | [0..1] | Number of agents logged on (excluding withdrawn and free) |
incomingTraffic | int | [0..1] | Number of incoming calls during the last minute |
consolidatedPilotsServiceLevel | int | [0..1] | Service Level on all the pilots possibly serving this PG |
consolidatedPilotsEfficiency | int | [0..1] | Effic on all the pilots possibly serving this PG |
consolidatedQueuesWaitingTime | int | [0..1] | Current waiting time on the queues possibly serving this PG |
consolidatedQueuesNbOfWaitingCalls | int | [0..1] | Number of waiting calls in the queues possibly serving this PG |
consolidatedQueuesEWT | int | [0..1] | Expected Waiting Time on the queues possibly serving this PG |
pilotsWorstServiceLevel | int | [0..1] | Worst Service Level on all the pilots possibly serving this PG |
pilotsWorstEfficiency | int | [0..1] | Worst Effic on all the pilots possibly serving this PG |
pilotsBestServiceLevel | int | [0..1] | Best Service Level on all the pilots possibly serving this PG |
pilotsBestEfficiency | int | [0..1] | Best Effic on all the pilots possibly serving this PG |
queuesLonguestWaitingTime | int | [0..1] | Longest current waiting time in the queues possibly serving this PG |
[+] : JSON Example{
"eventName": "string",
"name": "string",
"number": "string",
"type": "Agent | IVR | QueuedIVR | unknown",
"state": "Closed | Opened | Blocked | unknown",
"nbOfWidthdrawnAgents": int,
"nbOfAgentsInPrivateCall": int,
"nbOfAgentsInACDCall": int,
"nbOfAgentsInACDRinging": int,
"nbOfAgentsInACDConv": int,
"nbOfAgentsInWrapupAndTransaction": int,
"nbOfAgentsInPause": int,
"nbOfBusyAgents": int,
"nbOfLoggedOnAgents": int,
"nbOfFreeAgents": int,
"nbOfIdleAgents": int,
"nbOfLoggedOnAndNotWithdrawnAgents": int,
"incomingTraffic": int,
"consolidatedPilotsServiceLevel": int,
"consolidatedPilotsEfficiency": int,
"consolidatedQueuesWaitingTime": int,
"consolidatedQueuesNbOfWaitingCalls": int,
"consolidatedQueuesEWT": int,
"pilotsWorstServiceLevel": int,
"pilotsWorstEfficiency": int,
"pilotsBestServiceLevel": int,
"pilotsBestEfficiency": int,
"queuesLonguestWaitingTime": int
} |
OnPGOtherRtiChangedNotification sent each time if one or more attributes of a PG not associated
to an agent change.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnPGOtherRtiChanged' |
name | string | [1] | Name of the Processing Group |
number | string | [1] | Phone Number of the Processing Group |
type | PGOtherTypeDTO | [1] | Type |
state | ServiceState | [0..1] | Service state |
nbOfACDCalls | int | [0..1] | Number of ACD calls |
incomingTraffic | int | [0..1] | Number of incoming calls during the last minute |
[+] : JSON Example{
"eventName": "string",
"name": "string",
"number": "string",
"type": "MutualAid | Forward | Guide | Remote",
"state": "Closed | Opened | Blocked | unknown",
"nbOfACDCalls": int,
"incomingTraffic": int
} |
OnPilotRtiChangedNotification sent each time if one or more attributes of a pilot change.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnPilotRtiChanged' |
name | string | [1] | Name |
number | string | [1] | Number |
state | ServiceState | [0..1] | State |
nbOfRunningCalls | int | [0..1] | Number of calls in progress |
serviceLevel | int | [0..1] | Service Level |
efficiency | int | [0..1] | Effic |
nbOfWaitingCalls | int | [0..1] | Number of waiting calls |
nbOfRingingACDCalls | int | [0..1] | Number of ringing ACD calls |
nbOfMutualAidCalls | int | [0..1] | Number of calls rerouted for mutual aid |
nbOfDissuadedCalls | int | [0..1] | Number of dissuaded calls |
nbOfCallsInConversation | int | [0..1] | Number of calls in conversation |
nbOfCallsInGeneralForwarding | int | [0..1] | Number of calls in General Forwarding |
nbOfCallsInRemotePG | int | [0..1] | Number of calls being processed in a Remote Processing Group |
incomingTraffic | int | [0..1] | Number of incoming calls within the minute |
averageWaitingTime | int | [0..1] | Average waiting time before answering |
worstServiceLevelInList | int | [0..1] | Worst Service Level among the Pilots of a Super Pilot |
worstEfficiencyInList | int | [0..1] | Worst Effic among the Pilots of a Super Pilot |
bestServiceLevelInList | int | [0..1] | Best Service Level among the Pilots of a Super Pilot |
bestEfficiencyInList | int | [0..1] | Best Effic among the Pilots of a Super Pilot |
[+] : JSON Example{
"eventName": "string",
"name": "string",
"number": "string",
"state": "Closed | Opened | Blocked | unknown",
"nbOfRunningCalls": int,
"serviceLevel": int,
"efficiency": int,
"nbOfWaitingCalls": int,
"nbOfRingingACDCalls": int,
"nbOfMutualAidCalls": int,
"nbOfDissuadedCalls": int,
"nbOfCallsInConversation": int,
"nbOfCallsInGeneralForwarding": int,
"nbOfCallsInRemotePG": int,
"incomingTraffic": int,
"averageWaitingTime": int,
"worstServiceLevelInList": int,
"worstEfficiencyInList": int,
"bestServiceLevelInList": int,
"bestEfficiencyInList": int
} |
OnQueueRtiChangedNotification sent each time if one or more attributes of a queue change.
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnQueueRtiChanged' |
name | string | [1] | Name |
number | string | [1] | Number |
type | QueueType | [1] | Type |
state | ServiceState | [0..1] | Service state |
nbOfAgentsInDistribution | int | [0..1] | Number of agents in the distribution of the waiting queue |
incomingTraffic | int | [0..1] | Number of incoming calls within the minute |
outgoingTraffic | int | [0..1] | Number of outgoing calls within the minute |
nbOfWaitingCalls | int | [0..1] | Number of waiting calls |
currentWaitingTime | int | [0..1] | Current waiting time |
fillingRate | int | [0..1] | Filling rate |
expectedWaitingTime | int | [0..1] | Expected Waiting Time |
longestWaitingTimeInList | int | [0..1] | Longest time among the queues of a Super Waiting Queue |
[+] : JSON Example{
"eventName": "string",
"name": "string",
"number": "string",
"type": "Normal | MutualAid | Dissuasion | Virtual | WaitingRoom | VirtualWaitingRoom | ...",
"state": "Closed | Opened | Blocked | unknown",
"nbOfAgentsInDistribution": int,
"incomingTraffic": int,
"outgoingTraffic": int,
"nbOfWaitingCalls": int,
"currentWaitingTime": int,
"fillingRate": int,
"expectedWaitingTime": int,
"longestWaitingTimeInList": int
} |
PGAgentAttributeAttributes of a PGAgent that may be filtered in the API
To get all the attributes, simply set "ALL" as attribute list.
Value | Description |
---|
State | Service state (Opeb, blocked, ...) |
NbOfWithdrawnAgents | Number of withdrawn agents |
NbOfAgentsInPrivateCall | Number of agents in private call |
NbOfAgentsInACDCall | Number of agents in ACD call |
NbOfAgentsInACDRinging | Number of agents in ringing ACD call |
NbOfAgentsInACDConv | Number of agents in established ACD call |
NbOfAgentsInWrapupAndTransaction | Number of agents in wrapup and in entering transaction code |
NbOfAgentsInPause | Number of agents in pause |
NbOfBusyAgents | Number of busy agents (ACD or private call) |
NbOfLoggedOnAgents | Number of logged agents |
NbOfFreeAgents | Number of free agents i(withdrawn or not) |
NbOfIdleAgents | Number of free agents i(excluding withdrawn) |
NbOfLoggedOnAndNotWithdrawnAgents | Number of logged agents i(excluding withdrawn and free) |
ConsolidatedQueuesWaitingTime | Current waiting time on the queues possibly serving this team |
ConsolidatedQueuesNbOfWaitingCalls | Number of waiting calls on the queues possibly serving this team |
ConsolidatedQueuesEWT | Expected Waiting Time on the queues possibly serving this team |
ServiceLevel | Service level on all the pilots possibly serving this team(average/best/worst) |
Efficiency | Efficiency on all the pilots possibly serving this team(average/best/worst) |
IncomingTraffic | Number of incoming calls within the minute |
ALL | used to specify all wanted attributes |
PGAgentTypeTypes of Processing group Agent.
Value | Description |
---|
Agent | team of agents |
IVR | team of ivr |
QueuedIVR | team of ivr in queue |
unknown | team of unknown type |
PGOtherAttributeAttributes of a ProcessingGroupOther that may be filtered in the API
To get all the attributes, simply set "ALL" as attribute list.
Value | Description |
---|
State | Service state (closed, open, ...) |
NbOfACDCalls | Number of ACD calls |
IncomingTraffic | Number of incoming calls during the last minute |
ALL | used to specify all wanted attributes |
PGOtherTypeDTOTypes of Processing Group not associated to agents.
Value | Description |
---|
MutualAid | PG of type mutual Aid |
Forward | PG of type forward |
Guide | PG of type guide |
Remote | PG of type remote |
PilotAttributeAttributes of a Pilot that may be filtered in the API
To get all the attributes, simply set "ALL" as attribute list.
Value | Description |
---|
State | Service state (Opeb, blocked, ...) |
ServiceLevel | Service level |
CurrentRuleName | Current rule name |
NbOfWaitingCalls | Number of waiting calls |
NbOfMutualAidCalls | Number of calls rerouted for mutual aid |
NbOfCallsInConversation | Number of calls in conversation |
NbOfCallsInRemotePG | Number of calls being processed in a remote PG |
AverageWaitingTime | Average waiting time before answering(in sec) |
NbOfRunningCalls | Number of calls in progress |
NbOfRingingACDCalls | Number of ringing ACD calls |
NbOfDissuadedCalls | Number of dissuaded calls |
NbOfCallsInGeneralForwarding | Number of calls in general forwarding |
Efficiency | Efficiency(average/best/worst) |
IncomingTraffic | Number of incoming calls within the minute |
ALL | used to specify all wanted attributes |
QueueAttributeAttributes of a Queue that may be filtered in the API
To get all the attributes, simply set "ALL" as attribute list.
Value | Description |
---|
State | Service state (Opeb, blocked, ...) |
NbOfAgentsInDistribution | Number of agents in the distribution of the waiting queue |
IncomingTraffic | Number of incoming calls within the minute |
OutgoingTraffic | Number of outgoing calls within the minute |
NbOfWaitingCalls | Number of waiting calls |
CurrentWaitingTime | Current waiting time |
ExpectedWaitingTime | Expected waiting time |
FillingRate | Filling rate |
LongestWaitingTimeInList | Longest time among the queues of a super waiting queue |
ALL | used to specify all wanted attributes |
QueueTypeType of queue
Value | Description |
---|
Normal | Normal queue |
MutualAid | Mutual Aid queue |
Dissuasion | Dissuasion queue |
Virtual | Virtual queue |
WaitingRoom | Waiting Room queue |
VirtualWaitingRoom | Virtual Waiting Room queue |
unknown | unknown state |
RtiAgentFilterAgent filter: contains list of numbers and list of attributes
Name | Type | Cardinality | Description |
---|
numbers | string | [0..*] | List of Agent numbers (or "*" for all) |
attributes | AgentAttribute | [0..*] | List of Agent attributes (or "ALL" for all) |
[+] : JSON Example{
"numbers": [ "string" ],
"attributes": [ "AssociatedSet | CurrentPG | PhoneState | LogonDate | PrivateCallsTotalDuration | ..." ]
} |
RtiContextRTI subscription context with attribute filters for agent/pilot/PG Agent/ PG Other/queue
Name | Type | Cardinality | Description |
---|
active | boolean | [0..1] | Status of activation. this parameter is only for consultation |
obsPeriod | int | [0..1] | Period of observation (in minutes, minimum is 15, maximum is 60) |
notifFrequency | int | [0..1] | Frequency of notification (in secondes, minimum is 5 sec) only if pilot quality attributes have changed: average waiting time, service level and efficiency. |
filter | RtiFilter | [0..1] | Filter on objects |
[+] : JSON Example{
"active": boolean,
"obsPeriod": int,
"notifFrequency": int,
"filter": {
"agentFilter": {
"numbers": [ "string" ],
"attributes": [ "AssociatedSet | CurrentPG | PhoneState | LogonDate | PrivateCallsTotalDuration | ..." ]
},
"pilotFilter": {
"numbers": [ "string" ],
"attributes": [ "State | ServiceLevel | CurrentRuleName | NbOfWaitingCalls | NbOfMutualAidCalls | ..." ]
},
"queueFilter": {
"numbers": [ "string" ],
"attributes": [ "State | NbOfAgentsInDistribution | IncomingTraffic | OutgoingTraffic | ..." ]
},
"pgAgentFilter": {
"numbers": [ "string" ],
"attributes": [ "State | NbOfWithdrawnAgents | NbOfAgentsInPrivateCall | NbOfAgentsInACDCall | ..." ]
},
"pgOtherFilter": {
"numbers": [ "string" ],
"attributes": [ "State | NbOfACDCalls | IncomingTraffic | ALL" ]
}
}
} |
Associated methods :
RtiFilterParameter to set the RTI attribute filters for agent/pilot/PG Agent/ PG Other/queue
[+] : JSON Example{
"agentFilter": {
"numbers": [ "string" ],
"attributes": [ "AssociatedSet | CurrentPG | PhoneState | LogonDate | PrivateCallsTotalDuration | ..." ]
},
"pilotFilter": {
"numbers": [ "string" ],
"attributes": [ "State | ServiceLevel | CurrentRuleName | NbOfWaitingCalls | NbOfMutualAidCalls | ..." ]
},
"queueFilter": {
"numbers": [ "string" ],
"attributes": [ "State | NbOfAgentsInDistribution | IncomingTraffic | OutgoingTraffic | ..." ]
},
"pgAgentFilter": {
"numbers": [ "string" ],
"attributes": [ "State | NbOfWithdrawnAgents | NbOfAgentsInPrivateCall | NbOfAgentsInACDCall | ..." ]
},
"pgOtherFilter": {
"numbers": [ "string" ],
"attributes": [ "State | NbOfACDCalls | IncomingTraffic | ALL" ]
}
} |
RtiIdentifiersLists of identifier for agent/pilot/PG Agent/ PG Other/queue
[+] : JSON Example{
"agents": [ {
"number": "string",
"name": "string",
"firstName": "string"
} ],
"pilots": [ {
"number": "string",
"name": "string",
"firstName": "string"
} ],
"queues": [ {
"number": "string",
"name": "string",
"firstName": "string"
} ],
"pgAgents": [ {
"number": "string",
"name": "string",
"firstName": "string"
} ],
"pgOthers": [ {
"number": "string",
"name": "string",
"firstName": "string"
} ]
} |
Associated methods :
RtiObjectIdentifierIdentifier for agent/pilot/PG/queue/PG composed of name, number and internal key
Name | Type | Cardinality | Description |
---|
number | string | [1] | Object phone number |
name | string | [1] | Object phone name |
firstName | string | [0..1] | Object phone firstName (only for agent) |
RtiPilotFilterPilot filter: contains list of numbers and list of attributes
Name | Type | Cardinality | Description |
---|
numbers | string | [0..*] | List of pilot numbers (or "*" for all) |
attributes | PilotAttribute | [0..*] | List of pilot attributes (or "ALL" for all) |
[+] : JSON Example{
"numbers": [ "string" ],
"attributes": [ "State | ServiceLevel | CurrentRuleName | NbOfWaitingCalls | NbOfMutualAidCalls | ..." ]
} |
RtiProcessingGroupAgentFilterProcessingGroupAgent filter: contains list of numbers and list of attributes
Name | Type | Cardinality | Description |
---|
numbers | string | [0..*] | List of PG Agent numbers (or "*" for all) |
attributes | PGAgentAttribute | [0..*] | List of PG Agent attributes (or "ALL" for all) |
[+] : JSON Example{
"numbers": [ "string" ],
"attributes": [ "State | NbOfWithdrawnAgents | NbOfAgentsInPrivateCall | NbOfAgentsInACDCall | ..." ]
} |
RtiProcessingGroupOtherFilterRtiProcessingGroupOther filter: contains list of numbers and list of attributes
Name | Type | Cardinality | Description |
---|
numbers | string | [0..*] | List of PG numbers (or "*" for all) |
attributes | PGOtherAttribute | [0..*] | List of PG attributes (or "ALL" for all) |
[+] : JSON Example{
"numbers": [ "string" ],
"attributes": [ "State | NbOfACDCalls | IncomingTraffic | ALL" ]
} |
RtiQueueFilterQueue filter: contains list of numbers and list of attributes
Name | Type | Cardinality | Description |
---|
numbers | string | [0..*] | List of queue numbers (or "*" for all) |
attributes | QueueAttribute | [0..*] | List of queue attributes (or "ALL" for all) |
[+] : JSON Example{
"numbers": [ "string" ],
"attributes": [ "State | NbOfAgentsInDistribution | IncomingTraffic | OutgoingTraffic | ..." ]
} |
ServiceStateState of service of a pilot/queue
Value | Description |
---|
Closed | Service is closed |
Opened | Service is opened |
Blocked | Service is blocked |
unknown | unknown state |
string'string' represents character strings.
Call Center Statistics
Presentation
This service allows an administrator to retrieve ACD agents and pilots statistics.
The data may be retrieved by GET one shot or through scheduled reports.
To enable this service, "Specific Call Center features" MUST have been activated by configuration.
All the operations of this API is available only through O2G administrator session.
Glossary:
- supervisor : a supervisor has access to the statistics of a set of agents. It is represented in this api by an identifier.
- scope : defines the list of agents to associate to a supervisor
- context (ctx) : defines the agents attributes & associated pilots attributes
- schedule : differed report mechanism
- D daily report : Current day report
- D+ daily report : Other day(s) reports
The usage of this api is the following:
- The preliminary operation is to define a scope for one or several supervisor(s) (one scope per supervisor).
- one or several context are then created for a supervisor.
- Statistics data may then be retrieved for a context either immediately or by scheduling report
The application can retrieve the statistics data on 2 manners:
- Get immediate statistics report. In this mode, the application may subscribe to "acdstats" event package in order to receive the progression
event (OnAcdStatsProgress), which may be useful in case of long processing.
- Schedule differed reports : the results will be sent by email attachment to the predefined destination.
The result may be asked in JSON format(default) or through CSV or XLS zipped file.
There are 2 types of reports:
- Current day detailed reports (D).
They provide detailed statistics: one row data per each time slot of the day.
The time slot period may be chosen per quarter of an hour, per half hour or per hour.
The data are provided from 0h00 till the last terminated quarter of an hour.
- Several days reports (D+) which can be requested for a maximum period of 31 consecutive and terminated days.
They provide compiled statistics data, that is only one data row per object (agent or pilot) and per day.
These compiled statistics may be asked overall the 12 last months, possibly over 2 months (eg, from 15/04/2024 to 14/05/2024).
The data concern the period from the first day 0h00 to the last day 24h00.
The scheduling of reports only concern (D+) reports.
Notes about reports :
- The content of a supervisor's context (report) is based on the list of agents received in scope.
- If during a new installation (a new scope) for an existing supervisor, there are one or more agents who are no longer in the list,
these will be deleted from already existing contexts (reports) by O2G.
If a context (report) only contained an agent which is not in the new scope, it will be deleted by O2G.
- If during a new installation (a new scope) for an existing supervisor, there are one or more new agents who are added in the list,
the already existing contexts will be not impacted.
Notes about scheduling :
- A programmed report (scheduled) is linked to a D+ report.
- Currently, there is no limitation on the number of programming associated with a report.
- Every 24 hours, a process evaluates whether scheduled reports should be generated(*): The O2G server starts processing schedules at 2 a.m.
(this value can be modified in the /opt/Alcatel-Lucent/webapps/api/WEB-INF/web.xml file in the O2G server).
- the results are sent as file (zip) attachment of email.
(*)A programmed report may have been scheduled by a supervisor a long time ago and
since this moment, some agents may have been removed from its scope and so, from the report.
History
Since version 2.7.4
Resources summary
Notification summary
Notification | Description |
---|
OnAcdStatsProgress | Notification sent during a get /acd/stats/data to inform the client on the progression of the processing (requires subscription to "acdstats" event package). |
Resources
/acd/stats/scope
Methods
Create or update the statistics scope of a supervisor user.
Return the complete private and public URL of the statistics application in the body response, to be
invoked by the client.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
body parametertype | media types | description |
---|
StatsScope | application/json
| : Information concerning the supervisor and list of acd objects |
Response
code | type | media types | description |
---|
200 | StatsScopeAnswer | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Set a scope
request :POST https://server/api/rest/1.0/acd/stats/scope
Content-Type: application/json
{
"supervisor": {
"identifier": "60001",
"language": "EN",
"timezone": "+01:00"
},
"agents": [ {
"number": "60010",
"loginName": "Agent1",
"firstName": "FNAgent1",
"lastName": "LNAgent1",
"groupName": "Groupe1"
},{
"number": "60011",
"loginName": "Agent2",
"firstName": "FNAgent2",
"lastName": "LNAgent2",
"groupName": "Groupe1"
} ]
}
response :200 Ok
/acd/stats/scope/{supervisorId}
Methods
Retrieve the information associated to a supervisor.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
supervisorId | string | |
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | SupervisorData | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the information of the supervisor 60114
request :GET https://server/api/rest/1.0/acd/stats/scope/60114
response :200
{
"identifier": "60114",
"language": "FR"
}
Delete the statistics scope associated to a supervisor.
This function is reserved to an administrator session.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
supervisorId | string | supervisor identifier, i.e. its number |
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
/acd/stats/scope/{supervisorId}/ctx
Methods
Create a statistics filter context associated to a supervisor.
Return the new context identifier
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
supervisorId | string | supervisor identifier, i.e. its number |
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
body parametertype | media types | description |
---|
StatsContext | application/json
| : context to create |
Response
code | type | media types | description |
---|
200 | RespId | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Create a new agent context for the supervisor 60114
request :POST https://server/api/rest/1.0/acd/stats/scope/60114/ctx
{
"label":"label de mon context",
"description":"ceci est un contexte agent",
"filter":{"agentFilter":{
"numbers":["60113","60114"],
"agentAttributes":["nbRotating","nbPickedUp"],
"pilotAttributes":null
}
}
}
response :: 11 is the identifier of the new created context
200
11
Retrieve all the statistics filter context associated to a user.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
supervisorId | string | supervisor identifier, i.e. its number |
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | StatsContexts | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Delete all statistics filter context associated to a user.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
supervisorId | string | supervisor identifier, i.e. its number |
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
/acd/stats/scope/{supervisorId}/ctx/{ctxId}
Methods
Modify an existing statistics filter context associated to a user.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
supervisorId | string | supervisor identifier, i.e. its number |
ctxId | string | ctx identifier |
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
body parametertype | media types | description |
---|
StatsContext | application/json
| : context to modify |
Response
code | media types | description |
---|
204 | application/json
| No Content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Examples
[+] : Modify the context 11 for the supervisor 60114
request :PUT https://server/api/rest/1.0/acd/stats/scope/60114/ctx/11
{
"label":"label de mon context",
"description":"ceci est un contexte agent",
"filter":{"agentFilter":{
"numbers":["60113","60114", "60115"],
"agentAttributes":["nbRotating","nbPickedUp"],
"pilotAttributes":null
}
}
}
response :204
Retrieve a statistics filter context associated to a user.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
supervisorId | string | supervisor identifier, i.e. its number |
ctxId | string | ctx identifier |
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | StatsContext | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Delete a statistics filter context associated to a user.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
supervisorId | string | supervisor identifier, i.e. its number |
ctxId | string | ctx identifier |
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
/acd/stats/scope/{supervisorId}/ctx/{ctxId}/days/data
Methods
Ask statistics information for several days according to predefined filter context.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
supervisorId | string | supervisor identifier, i.e. its number |
ctxId | string | ctx identifier |
query parametersparameter | type | description |
---|
begindate | string | in format(yyyy-MM-dd HH:mm): the first day |
enddate | string | in format(yyyy-MM-dd HH:mm): the last day |
format | string | the result format may asked in JSON(default mode), CSV or XLS file (csv or XLS file result is zipped). |
async | string | : optional parameter: async=true to return immediately without response,
in this case, the result will be available through eventOnAcdStatsProgress. Considering async=false if parameter is absent. |
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
200 | application/json
| OK |
204 | application/json
| No Content if async=true |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
/acd/stats/scope/{supervisorId}/ctx/{ctxId}/oneday/data
Methods
Ask statistics information of one day according to filter context.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
supervisorId | string | supervisor identifier, i.e. its number |
ctxId | string | ctx identifier |
query parametersparameter | type | description |
---|
date | string | in format(yyyy-MM-dd HH:mm): the chosen day (default = current day) |
slotType | SlotType | the slot type (default is 1/4h) |
format | string | the result format may asked in JSON(default mode), CSV or XLS file (csv or XLS file result is zipped). |
async | string | : optional parameter: async=true to return immediately without response,
in this case, the result will be available through eventOnAcdStatsProgress. Considering async=false if parameter is absent. |
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
200 | application/json
| OK |
204 | application/json
| No Content if async=true |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Associated notifications
/acd/stats/scope/{supervisorId}/ctx/{ctxId}/oneday/jdata
Methods
Don't use: Just for API documentation of Stats object.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
supervisorId | string | supervisor identifier, i.e. its number |
ctxId | string | ctx identifier |
query parametersparameter | type | description |
---|
date | string | in format(yyyy-MM-dd HH:mm): the chosen day (default = current day) |
slotType | SlotType | the slot type (default is 1/4h) |
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | Stats | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
/acd/stats/scope/{supervisorId}/ctx/{ctxId}/schedule
Methods
Schedule a report according to predefined filter context.
Return the new schedule identifier
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
supervisorId | string | supervisor identifier, i.e. its number |
ctxId | string | ctx identifier |
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
body parametertype | media types | description |
---|
StatsSchedule | application/json
| : the schedule parameters |
Response
code | type | media types | description |
---|
200 | RespId | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Retrieve all report schedules according to predefined filter context.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
supervisorId | string | supervisor identifier, i.e. its number |
ctxId | string | ctx identifier |
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | StatsSchedules | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
/acd/stats/scope/{supervisorId}/ctx/{ctxId}/schedule/{scheduleId}
Methods
Retrieve a report schedule according to predefined filter context.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
supervisorId | string | supervisor identifier, i.e. its number |
ctxId | string | ctx identifier |
scheduleId | string | schedule identifier |
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | StatsSchedule | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Modify an existing report schedule according to predefined filter context.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
supervisorId | string | supervisor identifier, i.e. its number |
ctxId | string | ctx identifier |
scheduleId | string | schedule identifier |
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
body parametertype | media types | description |
---|
StatsSchedule | application/json
| : the new schedule parameters |
Response
code | media types | description |
---|
204 | application/json
| No content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
Delete a report schedule according to predefined filter context.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
supervisorId | string | supervisor identifier, i.e. its number |
ctxId | string | ctx identifier |
scheduleId | string | schedule identifier |
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
/acd/stats/scope/{supervisorId}/ctx/{ctxId}/schedule/{scheduleId}/enable
Methods
Pause or resume a report schedule according to predefined filter context.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
supervisorId | string | supervisor identifier, i.e. its number |
ctxId | string | ctx identifier |
scheduleId | string | schedule identifier |
query parametersparameter | type | description |
---|
enable | string | : optional parameter: enable=false to pause(or suspend),
enable=true to enable(or resume) a schedule. Considering enable=true if parameter is absent.
When created, the schedule is disable by default. |
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
/acd/stats/scope/{supervisorId}/data/request
Methods
Cancel any statistics information request in progress.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
supervisorId | string | supervisor identifier, i.e. its number |
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | media types | description |
---|
204 | application/json
| No content |
400 | application/json
| Bad Request |
401 | application/json
| Unauthorized |
403 | application/json
| Forbidden |
404 | application/json
| Not Found |
500 | application/json
| Internal Server Error |
503 | application/json
| Service Unavailable |
/acd/stats/scope/{supervisorId}/filter
Methods
Retrieve the statistics scope filter associated to a supervisor.
Include the list of agents, the list of pilots and all the possible attributes.
Licenses
Required in CAPEX mode (FlexLM server): ROXE_API_CONTACTCENTER_SVCS - true.
Required in OPEX mode (LMS server): api-tel-f - 40 licenses required.
Request
path parametersparameter | type | description |
---|
supervisorId | string | supervisor identifier, i.e. its number |
header parametersparameter | type | description |
---|
Authorization | string | For Private use ONLY: Identifier of the daughter Session
|
cookie parametersparameter | type | description |
---|
AlcUserId | string | Identifier of the Session
|
Response
code | type | media types | description |
---|
200 | StatsFilterResp | application/json
| OK |
400 | | application/json
| Bad Request |
401 | | application/json
| Unauthorized |
403 | | application/json
| Forbidden |
404 | | application/json
| Not Found |
500 | | application/json
| Internal Server Error |
503 | | application/json
| Service Unavailable |
Examples
[+] : Get the scope filter of the supervisor 60114
request :GET https://server/api/rest/1.0/acd/stats/scope/60114/filter
response :{
"agentFilter":{
"agentsDetails":[
{"number": "60113", "loginName": "oxe60113", "firstName": "fn60113", "lastName": "ln60113",...},
{"number": "60114", "loginName": "oxe60114", "firstName": "fn60114", "lastName": "ln60114",...},
{"number": "60112", "loginName": "oxe60112", "firstName": "fn60112", "lastName": "ln60112",...}
],
"agentAttrExts":[{"dto": "nbRotating", "ref": "AC001", "transl": "Nombre de rotations sur sonnerie"],
"pilotAttrExts":[{"dto": "nbCallsReceived", "ref": "AC059", "transl": "" },...]
},
"pilotFilter":{
"pilots":[{"number": "60584", "name": "pilot7" }, {"number": "60583",...],
"attrExts":[{"dto": "nbCallsOpen", "ref": "PC001", "transl": "Appels recus en etat ouvert"...]
}
}
Representations
AcdStatsProgressStepStep of acd statistics get data progression
Value | Description |
---|
COLLECT | In AFE data collect step |
PROCESSED | data have been processed |
FORMATED | data have been formatted |
ERROR | an error occured during collect |
CANCELLED | the collect has been cancelled |
AgentAttributeAttributes of an Agent that may be filtered in the API:
Value | Description |
---|
nbRotating | Number of rotating time-out |
nbPickedUp | number of calls picked-up |
nbPickup | number of call pick-up made by agent |
nbLocalOutNonAcd | Number of internal outgoing calls |
nbExtOutNonacd | Number of external non-acd outgoing calls |
nbRingAcd | Acd calls which have rung the agent |
nbHelp | Calls for which a help request was initiated |
nbLocInNonacd | Non ACD internal incoming calls |
nbExtInNonacdDirect | Direct non ACD external incoming calls |
nbExtInNonacdTransferred | Non-ACD external incoming calls transferred to the agent |
nbServedWOCode | Number of ACD calls served without transaction code |
nbServedWCode | Number of ACD calls served with transaction code |
nbAcdQuickServed | Number of ACD calls served too quickly |
nbExtinNonacdServed | Number of non-ACD external incoming calls served |
nbExtinNonacdQuickServed | Number of non-ACD external incoming calls served too quickly |
nbOutAcd | Outgoing ACD calls |
nbOutAcdAnswered | Outgoing ACD calls answered |
nbOnWrapup | Calls on wrap-up |
ringAcdServedTDur | Total duration of ringing by ACD calls served(format hh:mm:ss) |
ringAcdServedADur | Average duration of ringing by ACD calls served(format hh:mm:ss) |
ringInNonAcdExtServedTDur | Total duration of ringing by non-ACD external incoming calls served (format hh:mm:ss) |
ringInNonAcdExtServedADur | Average duration of ringing by non-ACD external incoming calls served (format hh:mm:ss) |
ringAcdTDur | Total duration of ringing by ACD calls |
ringAcdADur | Average duration of ringing by ACD calls |
ringInNonAcdExtTDur | Ringing by non-ACD external incoming calls (total duration) |
ringInNonAcdExtADur | Ringing by non-ACD external incoming calls ("Average duration) |
ringTDur | Total duration of ringing |
ringADur | Average duration of ringing |
convAcdTDur | Total duration of conversation with ACD calls |
convAcdADur | Average duration of conversation with ACD calls |
wrapupAcdTDur | Total duration of wrapup for all calls served |
convLocOutNonacdTDur | Total duration of conversation for internal outgoing calls |
convLocOutNonacdADur | Average duration of conversation for internal outgoing calls |
convExtOutTDur | Total duration of conversation for external outgoing calls |
convExtOutADur | Average duration of conversation for external outgoing calls |
convLocInNonacdTDur | Total duration of conversation for local non ACD incoming calls |
convLocInNonacdADur | Average duration of conversation for local non ACD incoming calls |
convExtInNonacdTDur | Total duration of conversation for non ACD external incoming calls |
convExtInNonacdADur | Average duration of conversation for non ACD external incoming calls |
outAcdCommTDur | Total duration of call processing for outgoing ACD calls |
outAcdCommADur | Average duration of call processing for outgoing ACD calls |
outAcdConvTDur | Total duration of conversation for outgoing calls |
outAcdConvADur | Average duration of conversation for outgoing calls |
outAcdTransactTDur | Total duration of transaction phase for outgoing ACD calls |
outAcdTransactADur | Average duration of transaction phase for outgoing ACD calls |
outAcdWrapupTDur | Total duration of wrap-up for outgoing ACD calls |
outAcdWrapupADur | Average duration of wrap-up for outgoing ACD calls |
outAcdPauseTDur | Total duration of pause phase |
outAcdPauseADur | Average duration of pause phase |
wrapUpIdleTDur | Total duration of wrap-up done while the agent was in idle state |
callOnWrapupTDur | Total duration of conversation in wrap-up |
busyOnWrapupTDur | Total busy time in wrap-up |
busyTDur | Total busy time |
loggedOutPerTime | Percentage of time the agent is in Logged-out |
notAssignedPerTime | Percentage of time the agent is in Logged-in but not assigned |
assignedPerTime | Percentage of time the agent is in Logged-in assigned |
withdrawPerTime | Percentage of time the agent is in withdrawal |
withdrawPerTimeCause1 | Percentage of time the agent is in withdrawal cause 1 |
withdrawPerTimeCause2 | Percentage of time the agent is in withdrawal cause 2 |
withdrawPerTimeCause3 | Percentage of time the agent is in withdrawal cause 3 |
withdrawPerTimeCause4 | Percentage of time the agent is in withdrawal cause 4 |
withdrawPerTimeCause5 | Percentage of time the agent is in withdrawal cause 5 |
withdrawPerTimeCause6 | Percentage of time the agent is in withdrawal cause 6 |
withdrawPerTimeCause7 | Percentage of time the agent is in withdrawal cause 7 |
withdrawPerTimeCause8 | Percentage of time the agent is in withdrawal cause 8 |
withdrawPerTimeCause9 | Percentage of time the agent is in withdrawal cause 9 |
nbPilots | Number of pilots the agent served call for |
nbAcdServedCalls | Number of ACD served calls |
nbAcdInServedCalls | Number of ACD incoming served calls |
nbInCallsReceivedByPilot | Number of incoming calls directly received by the pilot (served calls) |
nbAcdOutServedCalls | Number of ACD outgoing served calls |
nbTotNonServedCalls | Number of total ACD non served calls |
nbInNonServedCalls | Number of incoming ACD non served calls |
nbPickedupCalls | Number of incoming ACD picked-up (non served calls) |
nbRefusedCalls | Number of incoming ACD refused (non served calls) |
nbAcdOutNonServedCalls | Number of outgoing ACD non served calls |
nbTotNonAcdreceivedCalls | Total number of non ACD received calls |
nbInNonAcdCalls | Number of incoming non ACD calls |
nbOutNonAcdCalls | Number of outgoing non ACD calls |
assignedNotWithdrawDur | Duration assigned in a group and not in withdrawal |
withdrawDur | Duration in withdrawal |
manuWrapupDur | Duration in manual wrap-up |
unreachableDur | Duration in unreachable |
nonAcdWorkTDur | Total duration in non ACD work |
nonAcdWorkADur | Average duration in non ACD work |
acdWorkTDur | Total duration in ACD work |
acdWorkADur | Average duration in ACD work |
acdWorkInTDur | Total duration in incoming ACD work |
acdWorkInADur | Average duration in incoming ACD work |
acdWorkInConvTDur | Total duration in incoming conversation ACD work |
acdWorkInConvADur | Average duration in incoming conversation ACD work |
acdWorkInRingTDur | Total duration in incoming ringing ACD work |
acdWorkInRingADur | Average duration in incoming ringing ACD work |
acdWorkInWrapupTDur | Total duration in incoming wrapup ACD work |
acdWorkInWrapupADur | Average duration in incoming wrapup ACD work |
acdWorkOutTDur | Total duration in outgoing ACD work |
acdWorkOutADur | Average duration in outgoing ACD work |
acdWorkOutConvTDur | Total duration in outgoing conversation ACD work |
acdWorkOutConvADur | Average duration in outgoing conversation ACD work |
acdWorkOutWrapupTDur | Total duration in outgoing wrapup ACD work |
acdWorkOutWrapupADur | Average duration in outgoing wrapup ACD work |
acdInConvTDur | Total duration in conversation for incoming ACD |
acdInConvADur | Average duration in conversation for incoming ACD |
acdOutConvTDur | Total duration in conversation for outgoing ACD |
acdOutConvADur | Average duration in conversation for outgoing ACD |
ALL | All attributes in context creation. |
AgentPilotStatsAttrExtStructure returned in the getFilter() which contains the agent per pilot attribute information:
its DTO value (ex: nbCallsReceived),
its nomenclature reference (ex: AC059),
its translation in supervisor language(ex: "Calls received")
its description in the user language (ex: "Number of calls received by the agent concerning this pilot" )
Name | Type | Cardinality | Description |
---|
dto | AgentPilotStatsAttribute | [0..1] | DTO value |
ref | string | [0..1] | Reference in nomenclature |
transl | string | [0..1] | translation in supervisor language |
descr | string | [0..1] | Description of he attribute in supervisor language |
[+] : JSON Example{
"dto": "nbCallsReceived | nbCallsTransfIn | nbCallsServed | nbCallsServedTooQuickly | ...",
"ref": "string",
"transl": "string",
"descr": "string"
} |
AgentPilotStatsAttributeAttributes of a Pilot in Agent stats that may be filtered in the API
Value | Description |
---|
nbCallsReceived | nb calls received for this pilot |
nbCallsTransfIn | nb calls received by transfer |
nbCallsServed | nb calls served |
nbCallsServedTooQuickly | nb calls served too quickly |
nbCallsWithEnquiry | nb calls with enquiry |
nbCallsWithHelp | nb calls with help |
nbCallsTransf | nb calls transferred from agent |
nbCallsTransfToAgent | nb calls transferred to agent |
nbCallsInWrapup | nb calls in wrap-up |
maxCallProcDur | max duration of call processing |
maxConvDur | max duration of conversation |
maxWrapupDur | max duration of wrap-up |
callProcTDur | Total duration of call processing |
callProcADur | Average duration of call processing |
convTDur | Total duration of conversation |
convADur | Average duration of conversation |
wrapupTDur | Total duration of wrap-up |
wrapupADur | Average duration of wrap-up |
convInWrapupTDur | Total duration of conversation in wrap-up |
busyTimeInWrapupTDur | Total duration of busy time in wrap-up |
onHoldTDur | Total duration of call on hold |
onHoldADur | Average duration of call on hold |
transTDur | Total duration of transaction phase |
transADur | Average duration of transaction phase |
pauseTDur | Total duration of pause |
pauseADur | Average duration of pause |
ALL | All attributes in context creation. |
AgentStatsThe statistics for all agents, corresponding to the same time slot.
Name | Type | Cardinality | Description |
---|
timeSlot | string | [0..1] | time slot in "yyyy-MM-dd'T'HH:mm" format |
selectedPeriod | SelectedPeriod | [0..1] | statistics selected period |
rows | AgentStatsRow | [0..*] | list of row statistics |
[+] : JSON Example{
"timeSlot": "string",
"selectedPeriod": {
"periodType": "oneDay | onSeveralDays",
"slotType": "aQuarterOfAnHour | halfAnHour | anHour",
"beginDate": "string",
"endDate": "string"
},
"rows": [ {
"date": "string",
"year": "string",
"month": "string",
"day": "string",
"hour": "string",
"minute": "string",
"login": "string",
"operator": "string",
"firstName": "string",
"lastName": "string",
"number": "string",
"group": "string",
"nbRotating": int,
"nbPickedUp": int,
"nbPickup": int,
"nbLocalOutNonAcd": int,
"nbExtOutNonacd": int,
"nbRingAcd": int,
"nbHelp": int,
"nbLocInNonacd": int,
"nbExtInNonacdDirect": int,
"nbExtInNonacdTransferred": int,
"nbServedWOCode": int,
"nbServedWCode": int,
"nbAcdQuickServed": int,
"nbExtinNonacdServed": int,
"nbExtinNonacdQuickServed": int,
"nbOutAcd": int,
"nbOutAcdAnswered": int,
"nbOnWrapup": int,
"ringAcdServedTDur": "string",
"ringAcdServedADur": "string",
"ringInNonAcdExtServedTDur": "string",
"ringInNonAcdExtServedADur": "string",
"ringAcdTDur": "string",
"ringAcdADur": "string",
"ringInNonAcdExtTDur": "string",
"ringInNonAcdExtADur": "string",
"ringTDur": "string",
"ringADur": "string",
"convAcdTDur": "string",
"convAcdADur": "string",
"wrapupAcdTDur": "string",
"convLocOutNonacdTDur": "string",
"convLocOutNonacdADur": "string",
"convExtOutTDur": "string",
"convExtOutADur": "string",
"convLocInNonacdTDur": "string",
"convLocInNonacdADur": "string",
"convExtInNonacdTDur": "string",
"convExtInNonacdADur": "string",
"outAcdCommTDur": "string",
"outAcdCommADur": "string",
"outAcdConvTDur": "string",
"outAcdConvADur": "string",
"outAcdTransactTDur": "string",
"outAcdTransactADur": "string",
"outAcdWrapupTDur": "string",
"outAcdWrapupADur": "string",
"outAcdPauseTDur": "string",
"outAcdPauseADur": "string",
"wrapUpIdleTDur": "string",
"callOnWrapupTDur": "string",
"busyOnWrapupTDur": "string",
"busyTDur": "string",
"loggedOutPerTime": "string",
"notAssignedPerTime": "string",
"assignedPerTime": "string",
"withdrawPerTime": "string",
"withdrawPerTimeCause1": "string",
"withdrawPerTimeCause2": "string",
"withdrawPerTimeCause3": "string",
"withdrawPerTimeCause4": "string",
"withdrawPerTimeCause5": "string",
"withdrawPerTimeCause6": "string",
"withdrawPerTimeCause7": "string",
"withdrawPerTimeCause8": "string",
"withdrawPerTimeCause9": "string",
"nbPilots": int,
"nbAcdServedCalls": int,
"nbAcdInServedCalls": int,
"nbInCallsReceivedByPilot": int,
"nbAcdOutServedCalls": int,
"nbTotNonServedCalls": int,
"nbInNonServedCalls": int,
"nbPickedupCalls": int,
"nbRefusedCalls": int,
"nbAcdOutNonServedCalls": int,
"nbTotNonAcdreceivedCalls": int,
"nbInNonAcdCalls": int,
"nbOutNonAcdCalls": int,
"assignedNotWithdrawDur": "string",
"withdrawDur": "string",
"manuWrapupDur": "string",
"unreachableDur": "string",
"nonAcdWorkTDur": "string",
"nonAcdWorkADur": "string",
"acdWorkTDur": "string",
"acdWorkADur": "string",
"acdWorkInTDur": "string",
"acdWorkInADur": "string",
"acdWorkInConvTDur": "string",
"acdWorkInConvADur": "string",
"acdWorkInRingTDur": "string",
"acdWorkInRingADur": "string",
"acdWorkInWrapupTDur": "string",
"acdWorkInWrapupADur": "string",
"acdWorkOutTDur": "string",
"acdWorkOutADur": "string",
"acdWorkOutConvTDur": "string",
"acdWorkOutConvADur": "string",
"acdWorkOutWrapupTDur": "string",
"acdWorkOutWrapupADur": "string",
"acdInConvTDur": "string",
"acdInConvADur": "string",
"acdOutConvTDur": "string",
"acdOutConvADur": "string",
"pilotAgentStatsRows": [ {
"pilotNumber": "string",
"pilotName": "string",
"nbCallsReceived": int,
"nbCallsTransfIn": int,
"nbCallsServed": int,
"nbCallsServedTooQuickly": int,
"nbCallsWithEnquiry": int,
"nbCallsWithHelp": int,
"nbCallsTransf": int,
"nbCallsTransfToAgent": int,
"nbCallsInWrapup": int,
"maxCallProcDur": "string",
"maxConvDur": "string",
"maxWrapupDur": "string",
"callProcTDur": "string",
"callProcADur": "string",
"convTDur": "string",
"convADur": "string",
"wrapupTDur": "string",
"wrapupADur": "string",
"convInWrapupTDur": "string",
"busyTimeInWrapupTDur": "string",
"onHoldTDur": "string",
"onHoldADur": "string",
"transTDur": "string",
"transADur": "string",
"pauseTDur": "string",
"pauseADur": "string"
} ]
} ]
} |
AgentStatsAttrExtStructure returned in the getFilter() which contains the agent attribute information:
its DTO value (ex: nbPickedUp),
its nomenclature reference (ex: AC002),
its translation in supervisor language(ex: "Agent's calls picked-up")
its description in the user language (ex: "Number of ACD calls ringing the agent that were picked-up" )
is a detailed attribute
Name | Type | Cardinality | Description |
---|
dto | AgentAttribute | [0..1] | DTO value |
ref | string | [0..1] | Reference in nomenclature |
transl | string | [0..1] | translation in supervisor language |
descr | string | [0..1] | Description of he attribute in supervisor language |
detailed | boolean | [0..1] | is a detailed attribute |
[+] : JSON Example{
"dto": "nbRotating | nbPickedUp | nbPickup | nbLocalOutNonAcd | nbExtOutNonacd | ...",
"ref": "string",
"transl": "string",
"descr": "string",
"detailed": boolean
} |
AgentStatsRowAgents statistics (one row)
Name | Type | Cardinality | Description |
---|
date | string | [0..1] | Formated End date of the raw |
year | string | [0..1] | year of the raw |
month | string | [0..1] | month of the raw |
day | string | [0..1] | day of the raw |
hour | string | [0..1] | hour of the raw |
minute | string | [0..1] | minute of the raw |
login | string | [0..1] | login of the agent |
operator | string | [0..1] | Operator name of the agent |
firstName | string | [0..1] | Firstname of the agent |
lastName | string | [0..1] | Lastname of the agent |
number | string | [0..1] | Number of the agent |
group | string | [0..1] | Group name of the agent |
nbRotating | int | [0..1] | Number of rotating time-out AC001 |
nbPickedUp | int | [0..1] | number of calls picked-up AC002 |
nbPickup | int | [0..1] | number of call pick-up made by agent AC003 |
nbLocalOutNonAcd | int | [0..1] | Number of internal outgoing calls AC004 |
nbExtOutNonacd | int | [0..1] | Number of external non-acd outgoing calls AC005 |
nbRingAcd | int | [0..1] | Acd calls which have rung the agent AC006 |
nbHelp | int | [0..1] | Calls for which a help request was initiated AC007 |
nbLocInNonacd | int | [0..1] | Non ACD internal incoming calls AC008 |
nbExtInNonacdDirect | int | [0..1] | Direct non ACD external incoming calls AC009 |
nbExtInNonacdTransferred | int | [0..1] | Non-ACD external incoming calls transferred to the agent AC010 |
nbServedWOCode | int | [0..1] | Number of ACD calls served without transaction code AC011 |
nbServedWCode | int | [0..1] | Number of ACD calls served with transaction code AC012 |
nbAcdQuickServed | int | [0..1] | Number of ACD calls served too quickly AC013 |
nbExtinNonacdServed | int | [0..1] | Number of non-ACD external incoming calls served AC014 |
nbExtinNonacdQuickServed | int | [0..1] | Number of non-ACD external incoming calls served too quickly AC015 |
nbOutAcd | int | [0..1] | Outgoing ACD calls AC016 |
nbOutAcdAnswered | int | [0..1] | Outgoing ACD calls answered AC017 |
nbOnWrapup | int | [0..1] | Calls on wrap-up AC018 |
ringAcdServedTDur | string | [0..1] | Total duration of ringing by ACD calls served(format hh:mm:ss) AC019 |
ringAcdServedADur | string | [0..1] | Average duration of ringing by ACD calls served(format hh:mm:ss) AC020 |
ringInNonAcdExtServedTDur | string | [0..1] | Total duration of ringing by non-ACD external incoming calls served (format hh:mm:ss) AC021 |
ringInNonAcdExtServedADur | string | [0..1] | Average duration of ringing by non-ACD external incoming calls served (format hh:mm:ss) AC022 |
ringAcdTDur | string | [0..1] | Total duration of ringing by ACD calls AC023 |
ringAcdADur | string | [0..1] | Average duration of ringing by ACD calls AC024 |
ringInNonAcdExtTDur | string | [0..1] | Ringing by non-ACD external incoming calls (total duration) AC025 |
ringInNonAcdExtADur | string | [0..1] | Ringing by non-ACD external incoming calls (average duration) AC026 |
ringTDur | string | [0..1] | Total duration of ringing AC027 |
ringADur | string | [0..1] | Average duration of ringing AC028 |
convAcdTDur | string | [0..1] | Total duration of conversation with ACD calls AC029 |
convAcdADur | string | [0..1] | Average duration of conversation with ACD calls AC030 |
wrapupAcdTDur | string | [0..1] | Total duration of wrapup for all calls served AC031 |
convLocOutNonacdTDur | string | [0..1] | Total duration of conversation for internal outgoing calls AC032 |
convLocOutNonacdADur | string | [0..1] | Average duration of conversation for internal outgoing calls AC033 |
convExtOutTDur | string | [0..1] | Total duration of conversation for external outgoing calls AC034 |
convExtOutADur | string | [0..1] | Average duration of conversation for external outgoing calls AC035 |
convLocInNonacdTDur | string | [0..1] | Total duration of conversation for local non ACD incoming calls AC036 |
convLocInNonacdADur | string | [0..1] | Average duration of conversation for local non ACD incoming calls AC037 |
convExtInNonacdTDur | string | [0..1] | Total duration of conversation for non ACD external incoming calls AC038 |
convExtInNonacdADur | string | [0..1] | Average duration of conversation for non ACD external incoming calls AC039 |
outAcdCommTDur | string | [0..1] | Total duration of call processing for outgoing ACD calls AC040 |
outAcdCommADur | string | [0..1] | Average duration of call processing for outgoing ACD calls AC041 |
outAcdConvTDur | string | [0..1] | Total duration of conversation for outgoing calls AC042 |
outAcdConvADur | string | [0..1] | Average duration of conversation for outgoing calls AC043 |
outAcdTransactTDur | string | [0..1] | Total duration of transaction phase for outgoing ACD calls AC044 |
outAcdTransactADur | string | [0..1] | Average duration of transaction phase for outgoing ACD calls AC045 |
outAcdWrapupTDur | string | [0..1] | Total duration of wrap-up for outgoing ACD calls AC046 |
outAcdWrapupADur | string | [0..1] | Average duration of wrap-up for outgoing ACD calls AC047 |
outAcdPauseTDur | string | [0..1] | Total duration of pause phase AC048 |
outAcdPauseADur | string | [0..1] | Average duration of pause phase AC049 |
wrapUpIdleTDur | string | [0..1] | Total duration of wrap-up done while the agent was in idle state AC050 |
callOnWrapupTDur | string | [0..1] | Total duration of conversation in wrap-up AC051 |
busyOnWrapupTDur | string | [0..1] | Total busy time in wrap-up AC052 |
busyTDur | string | [0..1] | Total busy time AC053 |
loggedOutPerTime | string | [0..1] | Percentage of time the agent is in Logged-out AC054 |
notAssignedPerTime | string | [0..1] | Percentage of time the agent is in Logged-in but not assigned AC055 |
assignedPerTime | string | [0..1] | Percentage of time the agent is in Logged-in assigned AC056 |
withdrawPerTime | string | [0..1] | Percentage of time the agent is in withdrawal AC057 |
withdrawPerTimeCause1 | string | [0..1] | Percentage of time the agent is in withdrawal cause 1 AC057A |
withdrawPerTimeCause2 | string | [0..1] | Percentage of time the agent is in withdrawal cause 2 AC057B |
withdrawPerTimeCause3 | string | [0..1] | Percentage of time the agent is in withdrawal cause 3 AC057C |
withdrawPerTimeCause4 | string | [0..1] | Percentage of time the agent is in withdrawal cause 4 AC057D |
withdrawPerTimeCause5 | string | [0..1] | Percentage of time the agent is in withdrawal cause 5 AC057E |
withdrawPerTimeCause6 | string | [0..1] | Percentage of time the agent is in withdrawal cause 6 AC057F |
withdrawPerTimeCause7 | string | [0..1] | Percentage of time the agent is in withdrawal cause 7 AC057G |
withdrawPerTimeCause8 | string | [0..1] | Percentage of time the agent is in withdrawal cause 8 AC057H |
withdrawPerTimeCause9 | string | [0..1] | Percentage of time the agent is in withdrawal cause 9 AC057I |
nbPilots | int | [0..1] | Number of pilots the agent served call for AC058 |
nbAcdServedCalls | int | [0..1] | Number of ACD served calls AC085 |
nbAcdInServedCalls | int | [0..1] | Number of ACD incoming served calls AC086 |
nbInCallsReceivedByPilot | int | [0..1] | Number of incoming calls directly received by the pilot (served calls) AC087 |
nbAcdOutServedCalls | int | [0..1] | Number of ACD outgoing served calls AC088 |
nbTotNonServedCalls | int | [0..1] | Number of total ACD non served calls AC089 |
nbInNonServedCalls | int | [0..1] | Number of incoming ACD non served calls AC090 |
nbPickedupCalls | int | [0..1] | Number of incoming ACD picked-up (non served calls) AC091 |
nbRefusedCalls | int | [0..1] | Number of incoming ACD refused (non served calls) AC092 |
nbAcdOutNonServedCalls | int | [0..1] | Number of outgoing ACD non served calls AC093 |
nbTotNonAcdreceivedCalls | int | [0..1] | Total number of non ACD received calls AC094 |
nbInNonAcdCalls | int | [0..1] | Number of incoming non ACD calls AC095 |
nbOutNonAcdCalls | int | [0..1] | Number of outgoing non ACD calls AC096 |
assignedNotWithdrawDur | string | [0..1] | Duration assigned in a group and not in withdrawal AC097 |
withdrawDur | string | [0..1] | Duration in withdrawal AC098 |
manuWrapupDur | string | [0..1] | Duration in manual wrap-up AC099 |
unreachableDur | string | [0..1] | Duration in unreachable AC100 |
nonAcdWorkTDur | string | [0..1] | Total duration in non ACD work AC101 |
nonAcdWorkADur | string | [0..1] | Average duration in non ACD work AC102 |
acdWorkTDur | string | [0..1] | Total duration in ACD work AC103 |
acdWorkADur | string | [0..1] | Average duration in ACD work AC104 |
acdWorkInTDur | string | [0..1] | Total duration in incoming ACD work AC105 |
acdWorkInADur | string | [0..1] | Average duration in incoming ACD work AC106 |
acdWorkInConvTDur | string | [0..1] | Total duration in incoming conversation ACD work AC107 |
acdWorkInConvADur | string | [0..1] | Average duration in incoming conversation ACD work AC108 |
acdWorkInRingTDur | string | [0..1] | Total duration in incoming ringing ACD work AC109 |
acdWorkInRingADur | string | [0..1] | Average duration in incoming ringing ACD work AC110 |
acdWorkInWrapupTDur | string | [0..1] | Total duration in incoming wrapup ACD work AC111 |
acdWorkInWrapupADur | string | [0..1] | Average duration in incoming wrapup ACD work AC112 |
acdWorkOutTDur | string | [0..1] | Total duration in outgoing ACD work AC113 |
acdWorkOutADur | string | [0..1] | Average duration in outgoing ACD work AC114 |
acdWorkOutConvTDur | string | [0..1] | Total duration in outgoing conversation ACD work AC115 |
acdWorkOutConvADur | string | [0..1] | Average duration in outgoing conversation ACD work AC116 |
acdWorkOutWrapupTDur | string | [0..1] | Total duration in outgoing wrapup ACD work AC117 |
acdWorkOutWrapupADur | string | [0..1] | Average duration in outgoing wrapup ACD work AC118 |
acdInConvTDur | string | [0..1] | Total duration in conversation for incoming ACD AC119 |
acdInConvADur | string | [0..1] | Average duration in conversation for incoming ACD AC120 |
acdOutConvTDur | string | [0..1] | Total duration in conversation for outgoing ACD AC121 |
acdOutConvADur | string | [0..1] | Average duration in conversation for outgoing ACD AC122 |
pilotAgentStatsRows | PilotAgentStatsRow | [0..*] | statistics per pilot |
[+] : JSON Example{
"date": "string",
"year": "string",
"month": "string",
"day": "string",
"hour": "string",
"minute": "string",
"login": "string",
"operator": "string",
"firstName": "string",
"lastName": "string",
"number": "string",
"group": "string",
"nbRotating": int,
"nbPickedUp": int,
"nbPickup": int,
"nbLocalOutNonAcd": int,
"nbExtOutNonacd": int,
"nbRingAcd": int,
"nbHelp": int,
"nbLocInNonacd": int,
"nbExtInNonacdDirect": int,
"nbExtInNonacdTransferred": int,
"nbServedWOCode": int,
"nbServedWCode": int,
"nbAcdQuickServed": int,
"nbExtinNonacdServed": int,
"nbExtinNonacdQuickServed": int,
"nbOutAcd": int,
"nbOutAcdAnswered": int,
"nbOnWrapup": int,
"ringAcdServedTDur": "string",
"ringAcdServedADur": "string",
"ringInNonAcdExtServedTDur": "string",
"ringInNonAcdExtServedADur": "string",
"ringAcdTDur": "string",
"ringAcdADur": "string",
"ringInNonAcdExtTDur": "string",
"ringInNonAcdExtADur": "string",
"ringTDur": "string",
"ringADur": "string",
"convAcdTDur": "string",
"convAcdADur": "string",
"wrapupAcdTDur": "string",
"convLocOutNonacdTDur": "string",
"convLocOutNonacdADur": "string",
"convExtOutTDur": "string",
"convExtOutADur": "string",
"convLocInNonacdTDur": "string",
"convLocInNonacdADur": "string",
"convExtInNonacdTDur": "string",
"convExtInNonacdADur": "string",
"outAcdCommTDur": "string",
"outAcdCommADur": "string",
"outAcdConvTDur": "string",
"outAcdConvADur": "string",
"outAcdTransactTDur": "string",
"outAcdTransactADur": "string",
"outAcdWrapupTDur": "string",
"outAcdWrapupADur": "string",
"outAcdPauseTDur": "string",
"outAcdPauseADur": "string",
"wrapUpIdleTDur": "string",
"callOnWrapupTDur": "string",
"busyOnWrapupTDur": "string",
"busyTDur": "string",
"loggedOutPerTime": "string",
"notAssignedPerTime": "string",
"assignedPerTime": "string",
"withdrawPerTime": "string",
"withdrawPerTimeCause1": "string",
"withdrawPerTimeCause2": "string",
"withdrawPerTimeCause3": "string",
"withdrawPerTimeCause4": "string",
"withdrawPerTimeCause5": "string",
"withdrawPerTimeCause6": "string",
"withdrawPerTimeCause7": "string",
"withdrawPerTimeCause8": "string",
"withdrawPerTimeCause9": "string",
"nbPilots": int,
"nbAcdServedCalls": int,
"nbAcdInServedCalls": int,
"nbInCallsReceivedByPilot": int,
"nbAcdOutServedCalls": int,
"nbTotNonServedCalls": int,
"nbInNonServedCalls": int,
"nbPickedupCalls": int,
"nbRefusedCalls": int,
"nbAcdOutNonServedCalls": int,
"nbTotNonAcdreceivedCalls": int,
"nbInNonAcdCalls": int,
"nbOutNonAcdCalls": int,
"assignedNotWithdrawDur": "string",
"withdrawDur": "string",
"manuWrapupDur": "string",
"unreachableDur": "string",
"nonAcdWorkTDur": "string",
"nonAcdWorkADur": "string",
"acdWorkTDur": "string",
"acdWorkADur": "string",
"acdWorkInTDur": "string",
"acdWorkInADur": "string",
"acdWorkInConvTDur": "string",
"acdWorkInConvADur": "string",
"acdWorkInRingTDur": "string",
"acdWorkInRingADur": "string",
"acdWorkInWrapupTDur": "string",
"acdWorkInWrapupADur": "string",
"acdWorkOutTDur": "string",
"acdWorkOutADur": "string",
"acdWorkOutConvTDur": "string",
"acdWorkOutConvADur": "string",
"acdWorkOutWrapupTDur": "string",
"acdWorkOutWrapupADur": "string",
"acdInConvTDur": "string",
"acdInConvADur": "string",
"acdOutConvTDur": "string",
"acdOutConvADur": "string",
"pilotAgentStatsRows": [ {
"pilotNumber": "string",
"pilotName": "string",
"nbCallsReceived": int,
"nbCallsTransfIn": int,
"nbCallsServed": int,
"nbCallsServedTooQuickly": int,
"nbCallsWithEnquiry": int,
"nbCallsWithHelp": int,
"nbCallsTransf": int,
"nbCallsTransfToAgent": int,
"nbCallsInWrapup": int,
"maxCallProcDur": "string",
"maxConvDur": "string",
"maxWrapupDur": "string",
"callProcTDur": "string",
"callProcADur": "string",
"convTDur": "string",
"convADur": "string",
"wrapupTDur": "string",
"wrapupADur": "string",
"convInWrapupTDur": "string",
"busyTimeInWrapupTDur": "string",
"onHoldTDur": "string",
"onHoldADur": "string",
"transTDur": "string",
"transADur": "string",
"pauseTDur": "string",
"pauseADur": "string"
} ]
} |
boolean'boolean' is a data type, having two values (true and false).
DaysOfWeekThe days of the week
Value | Description |
---|
monday | monday |
tuesday | tuesday |
wednesday | wednesday |
thursday | thursday |
friday | friday |
saturday | saturday |
sunday | sunday |
FileTypeType result file
Value | Description |
---|
csv | statistics file as CSV file |
xls | statistics file as EXCEL file |
int'int' is a 32-bit number (-2147483648 to 2147483647).
LanguageUser Language
Value | Description |
---|
EN | english |
FR | french |
DE | German |
OnAcdStatsProgressNotification sent during a get /acd/stats/data to inform the client on the progression of the processing (requires subscription to "acdstats" event package).
During the collect phase, which is supposed to be the longer step, a notification will be sent every N(eg: 10) objects collected
Name | Type | Cardinality | Description |
---|
eventName | string | [1] | The name of the event : 'OnAcdStatsProgress' |
supervisor | string | [1] | Supervisor name |
step | AcdStatsProgressStep | [1] | Step of the progression |
nbTotObjects | int | [0..1] | Total nbr of objects (agents or pilots) asked |
nbProcessedObjects | int | [0..1] | Nbr of processed objects (agents or pilots) |
resPath | string | [0..1] | File path of the result (partial if res > Max rows) |
fullResPath | string | [0..1] | File path of the full result (if res > Max rows) |
xlsfullResPath | string | [0..1] | File path of the full result in xls format |
[+] : JSON Example{
"eventName": "string",
"supervisor": "string",
"step": "COLLECT | PROCESSED | FORMATED | ERROR | CANCELLED",
"nbTotObjects": int,
"nbProcessedObjects": int,
"resPath": "string",
"fullResPath": "string",
"xlsfullResPath": "string"
} |
Associated method :
PeriodicityWhen the statististics report is sent
Value | Description |
---|
once | only once |
daily | every day (default value) |
weekly | every week |
monthly | every month |
PeriodTypeType of selection period
Value | Description |
---|
oneDay | one day (default value = current day) |
onSeveralDays | from a first Day to a last Day (maximum 31 days) |
PilotAgentStatsRowAssociated Agent Pilot Statistics
Name | Type | Cardinality | Description |
---|
pilotNumber | string | [0..1] | pilot's number |
pilotName | string | [0..1] | pilot's name |
nbCallsReceived | int | [0..1] | nb calls received for this pilot AC059 |
nbCallsTransfIn | int | [0..1] | nb calls received by transfer AC060 |
nbCallsServed | int | [0..1] | nb calls served AC061 |
nbCallsServedTooQuickly | int | [0..1] | nb calls served too quickly AC062 |
nbCallsWithEnquiry | int | [0..1] | nb calls with enquiry AC063 |
nbCallsWithHelp | int | [0..1] | nb calls with help AC064 |
nbCallsTransf | int | [0..1] | nb calls transferred from agent AC065 |
nbCallsTransfToAgent | int | [0..1] | nb calls transferred to agent AC066 |
nbCallsInWrapup | int | [0..1] | nb calls in wrap-up AC067 |
maxCallProcDur | string | [0..1] | max duration of call processing AC068 |
maxConvDur | string | [0..1] | max duration of conversation AC069 |
maxWrapupDur | string | [0..1] | max duration of wrap-up AC070 |
callProcTDur | string | [0..1] | Total duration of call processing AC071 |
callProcADur | string | [0..1] | Average duration of call processing AC072 |
convTDur | string | [0..1] | Total duration of conversation AC073 |
convADur | string | [0..1] | Average duration of conversation AC074 |
wrapupTDur | string | [0..1] | Total duration of wrap-up AC075 |
wrapupADur | string | [0..1] | Average duration of wrap-up AC076 |
convInWrapupTDur | string | [0..1] | Total duration of conversation in wrap-up AC077 |
busyTimeInWrapupTDur | string | [0..1] | Total duration of busy time in wrap-up AC078 |
onHoldTDur | string | [0..1] | Total duration of call on hold AC079 |
onHoldADur | string | [0..1] | Average duration of call on hold AC080 |
transTDur | string | [0..1] | Total duration of transaction phase AC081 |
transADur | string | [0..1] | Average duration of transaction phase AC082 |
pauseTDur | string | [0..1] | Total duration of pause AC083 |
pauseADur | string | [0..1] | Average duration of pause AC084 |
[+] : JSON Example{
"pilotNumber": "string",
"pilotName": "string",
"nbCallsReceived": int,
"nbCallsTransfIn": int,
"nbCallsServed": int,
"nbCallsServedTooQuickly": int,
"nbCallsWithEnquiry": int,
"nbCallsWithHelp": int,
"nbCallsTransf": int,
"nbCallsTransfToAgent": int,
"nbCallsInWrapup": int,
"maxCallProcDur": "string",
"maxConvDur": "string",
"maxWrapupDur": "string",
"callProcTDur": "string",
"callProcADur": "string",
"convTDur": "string",
"convADur": "string",
"wrapupTDur": "string",
"wrapupADur": "string",
"convInWrapupTDur": "string",
"busyTimeInWrapupTDur": "string",
"onHoldTDur": "string",
"onHoldADur": "string",
"transTDur": "string",
"transADur": "string",
"pauseTDur": "string",
"pauseADur": "string"
} |
PilotDataPilot information
Name | Type | Cardinality | Description |
---|
number | string | [0..1] | Pilot phone number |
name | string | [0..1] | Pilot name |
PilotStatsThe statistics for all pilots, corresponding to the same time slot.
Name | Type | Cardinality | Description |
---|
timeSlot | string | [0..1] | time slot in "yyyy-MM-dd'T'HH:mm" format |
selectedPeriod | SelectedPeriod | [0..1] | statistics selected period |
rows | PilotStatsRow | [0..*] | list of row statistics |
[+] : JSON Example{
"timeSlot": "string",
"selectedPeriod": {
"periodType": "oneDay | onSeveralDays",
"slotType": "aQuarterOfAnHour | halfAnHour | anHour",
"beginDate": "string",
"endDate": "string"
},
"rows": [ {
"date": "string",
"year": "string",
"month": "string",
"day": "string",
"hour": "string",
"minute": "string",
"queueName": "string",
"pilotName": "string",
"pilotNumber": "string",
"nbCallsOpen": int,
"nbCallsBlocked": int,
"nbCallsForward": int,
"nbCallsByTransfer": int,
"nbCallsByMutualAid": int,
"maxNbSimultCalls": int,
"nbOverflowInQueue": int,
"NbOverflowInRinging": int,
"nbCallsWOQueuing": int,
"nbCallsAfterQueuing": int,
"nbCallsSentInMutualAidQueue": int,
"nbCallsRedirectedOutACDArea": int,
"nbCallsDissuaded": int,
"nbCallsDissuadedAfterTryingMutualAid": int,
"nbCallsVGTypePG": int,
"nbCallsSentToPG": int,
"nbCallsRejectedLackOfRes": int,
"nbCallsServedByAgent": int,
"nbCallsServedInTime": int,
"nbCallsServedTooQuick": int,
"nbCallsWithoutTransCode": int,
"nbCallsWithTransCode": int,
"nbCallsRedistrib": int,
"nbCallsBeforeTS1": int,
"percentCallsBeforeTS1": "string",
"nbCallsBeforeTS2": int,
"percentCallsBeforeTS2": "string",
"nbCallsBeforeTS3": int,
"percentCallsBeforeTS3": "string",
"nbCallsBeforeTS4": int,
"percentCallsBeforeTS4": "string",
"nbCallsAfterTS4": int,
"percentCallsAfterTS4": "string",
"nbAbandonsOnGreetingsVG": int,
"nbAbandonsOn1WaitingVG": int,
"nbAbandonsOn2WaitingVG": int,
"nbAbandonsOn3WaitingVG": int,
"nbAbandonsOn4WaitingVG": int,
"nbAbandonsOn5WaitingVG": int,
"nbAbandonsOn6WaitingVG": int,
"nbAbandonsOnRinging": int,
"nbAbandonsOnGenFwdVG": int,
"nbAbandonsOnBlockedVG": int,
"nbAbandonsOnAgentBusy": int,
"nbAbandons": int,
"nbAbandonsBeforeTS1": int,
"percentAbandonsBeforeTS1": "string",
"nbAbandonsBeforeTS2": int,
"percentAbandonsBeforeTS2": "string",
"nbAbandonsBeforeTS3": int,
"percentAbandonsBeforeTS3": "string",
"nbAbandonsBeforeTS4": int,
"percentAbandonsBeforeTS4": "string",
"nbAbandonsAfterTS4": int,
"percentAbandonsAfterTS4": "string",
"callProcTDur": "string",
"callProcADur": "string",
"greetingListenTDur": "string",
"greetingListenADur": "string",
"beforeQueuingTDur": "string",
"waitServedCallsTDur": "string",
"waitServedCallsADur": "string",
"waitAbandonnedCallsTDur": "string",
"waitAbandonnedCallsADur": "string",
"ringingTDur": "string",
"ringingADur": "string",
"convTDur": "string",
"convADur": "string",
"holdCallsTDur": "string",
"holdCallsADur": "string",
"wrapupTDur": "string",
"wrapupADur": "string",
"longestWaitingDur": "string",
"serviceLevel": "string",
"efficiency": "string",
"inServiceState": "string",
"genFwdState": "string",
"blockedState": "string",
"dnbTotReceivedCalls": int,
"dnbCallsOpen": int,
"dnbCallsBlocked": int,
"dnbCallsForward": int,
"dnbDirectRoute": int,
"dnbIndirectRoute": int,
"dnbTotServedCalls": int,
"defficiency": "string",
"dnbCallsWOQueuing": int,
"dnbCallsAfterQueuing": int,
"dnbCallsBeforeTS1": int,
"dnbCallsBeforeTS2": int,
"dnbCallsBeforeTS3": int,
"dnbCallsBeforeTS4": int,
"dnbCallsAfterTS4": int,
"dwaitServedCallsADur": "string",
"dnbAbandons": int,
"dnbAbandonsOnGreetingsVG": int,
"dnbAbandonsOnWaitingVG": int,
"dnbAbandonsBeforeTS1": int,
"dnbAbandonsBeforeTS2": int,
"dnbAbandonsBeforeTS3": int,
"dnbAbandonsBeforeTS4": int,
"dnbAbandonsAfterTS4": int,
"dnbCallsRejectedLackOfRes": int,
"dnbCallsDissuaded": int,
"dnbTotCallsRedirected": int,
"dnbCallsRedirectedOutACDArea": int,
"dnbCallsSentInMutualAidQueue": int,
"dnbCallsSentToPG": int,
"dserviceLevel": "string",
"defficiency2": "string",
"dcallProcADur": "string",
"dconvADur": "string",
"dwrapupADur": "string",
"dholdCallsADur": "string",
"dringingADur": "string",
"dwaitingADur": "string",
"dlongestWaitingDur": "string"
} ]
} |
PilotStatsAttrExtStructure returned in the getFilter() which contains the pilot attribute information:
its DTO value (ex: nbCallsWithTransCode),
its nomenclature reference (ex: PC022),
its translation in supervisor language(ex: "Calls with transaction code")
its description in the user language (ex: "Total number of calls connected to an agent who answered. A transaction code was made" )
is a detailed attribute
Name | Type | Cardinality | Description |
---|
dto | PilotStatsAttribute | [0..1] | DTO value |
ref | string | [0..1] | Reference in nomenclature |
transl | string | [0..1] | translation in supervisor language |
descr | string | [0..1] | Description of he attribute in supervisor language |
detailed | boolean | [0..1] | is a detailed attribute |
[+] : JSON Example{
"dto": "nbCallsOpen | nbCallsBlocked | nbCallsForward | nbCallsByTransfer | ...",
"ref": "string",
"transl": "string",
"descr": "string",
"detailed": boolean
} |
PilotStatsAttributeAttributes of a Pilot that may be filtered in the API
Value | Description |
---|
nbCallsOpen | nb calls received in open state |
nbCallsBlocked | nb calls received in blocked state |
nbCallsForward | nb calls received in general forwarding state |
nbCallsByTransfer | nb calls received by transfer |
nbCallsByMutualAid | nb calls received by mutual_aid |
maxNbSimultCalls | max nb of simultaneous calls |
nbOverflowInQueue | nb overflow while calls were in queue |
NbOverflowInRinging | nb overflow while calls rung agent |
nbCallsWOQueuing | nb calls served without queuing |
nbCallsAfterQueuing | nb calls served after queuing |
nbCallsSentInMutualAidQueue | nb calls sent in mutual aid queue |
nbCallsRedirectedOutACDArea | nb calls redirected outside ACD area |
nbCallsDissuaded | nb calls dissuaded |
nbCallsDissuadedAfterTryingMutualAid | nb calls dissuaded |
nbCallsVGTypePG | nb calls processed by VG type PG |
nbCallsSentToPG | nb calls sent to remote PG |
nbCallsRejectedLackOfRes | nb calls rejected due to lack of resource |
nbCallsServedByAgent | nb calls served by agent |
nbCallsServedInTime | nb calls served in time |
nbCallsServedTooQuick | nb calls served too quickly |
nbCallsWithoutTransCode | nb calls without transaction code |
nbCallsWithTransCode | nb calls with transaction code |
nbCallsRedistrib | nb calls redistributed |
nbCallsBeforeTS1 | nb calls served before threshold 1 (eg 5 sec) |
percentCallsBeforeTS1 | percent calls served before threshold 1 (eg 5 sec) |
nbCallsBeforeTS2 | nb calls served before threshold 2 (eg 15 sec) |
percentCallsBeforeTS2 | percent calls served before threshold 2 (eg 15 sec) |
nbCallsBeforeTS3 | nb calls served before threshold 3 (eg 30 sec) |
percentCallsBeforeTS3 | percent calls served before threshold 3 (eg 30 sec) |
nbCallsBeforeTS4 | nb calls served before 60 sec |
percentCallsBeforeTS4 | percent calls served before threshold 4 (eg 60 sec) |
nbCallsAfterTS4 | nb calls served after threshold 4 (eg 60 sec) |
percentCallsAfterTS4 | percent calls served after threshold 4 (eg 60 sec) |
nbAbandonsOnGreetingsVG | Nb of abandons on Greeting voice guide |
nbAbandonsOn1WaitingVG | Nb of abandons on 1st waiting voice guide |
nbAbandonsOn2WaitingVG | Nb of abandons on 2nd waiting voice guide |
nbAbandonsOn3WaitingVG | Nb of abandons on 3rd waiting voice guide |
nbAbandonsOn4WaitingVG | Nb of abandons on 4th waiting voice guide |
nbAbandonsOn5WaitingVG | Nb of abandons on 5th waiting voice guide |
nbAbandonsOn6WaitingVG | Nb of abandons on 6th waiting voice guide |
nbAbandonsOnRinging | Nb of abandons on ringing |
nbAbandonsOnGenFwdVG | Nb of abandons on Generam Fwd voice guide |
nbAbandonsOnBlockedVG | Nb of abandons on blocked voice guide |
nbAbandonsOnAgentBusy | Nb of abandons of direct calls while they was waiting on agent busy |
nbAbandons | Overall number of abandons |
nbAbandonsBeforeTS1 | Nb number of abandons before threshold 1 (eg 5 sec) |
percentAbandonsBeforeTS1 | percent of abandons before threshold 1 (eg 5 sec) |
nbAbandonsBeforeTS2 | Nb number of abandons before threshold 2 (eg 15 sec) |
percentAbandonsBeforeTS2 | percent of abandons before threshold 2 (eg 15 sec) |
nbAbandonsBeforeTS3 | Nb number of abandons before threshold 3 (eg 30 sec) |
percentAbandonsBeforeTS3 | percent of abandons before threshold 3 (eg 30 sec) |
nbAbandonsBeforeTS4 | Nb number of abandons before threshold 4 (eg 60 sec) |
percentAbandonsBeforeTS4 | percent of abandons before threshold 4 (eg 60 sec) |
nbAbandonsAfterTS4 | Nb number of abandons after threshold 4 (eg 60 sec) |
percentAbandonsAfterTS4 | percent of abandons after threshold 4 (eg 60 sec) |
callProcTDur | Total duration of call processing |
callProcADur | Average duration of call processing |
greetingListenTDur | Total duration of greeting guide listening |
greetingListenADur | Average duration of greeting guide listening |
beforeQueuingTDur | Total time before queuing |
waitServedCallsTDur | Total waiting duration of served calls |
waitServedCallsADur | Average waiting duration of served calls |
waitAbandonnedCallsTDur | Total waiting duration of abandonned calls |
waitAbandonnedCallsADur | Average waiting duration of abandonned calls |
ringingTDur | Total duration of ringing |
ringingADur | Average duration of ringing |
convTDur | Total duration of conv |
convADur | Average duration of conv |
holdCallsTDur | Total duration of hold calls |
holdCallsADur | Average duration of hold calls |
wrapupTDur | Total duration of wrapup |
wrapupADur | Average duration of wrapup |
longestWaitingDur | Longest waiting time |
serviceLevel | Service level |
efficiency | Efficiency |
inServiceState | In service (pilot state percent ) |
genFwdState | General forwarding (pilot state percent) |
blockedState | Blocked (pilot state percent) |
dnbTotReceivedCalls | Nb total received calls |
dnbCallsOpen | Nb received calls in Pilot open |
dnbCallsBlocked | Nb received calls in Pilot blocked |
dnbCallsForward | Nb received calls in Pilot General Forwarding |
dnbDirectRoute | Nb received calls in direct routing |
dnbIndirectRoute | Nb received calls in indirect routing |
dnbTotServedCalls | Nb total served calls |
defficiency | ACD Served calls efficiency |
dnbCallsWOQueuing | Nb ACD Served calls (Without queuing) |
dnbCallsAfterQueuing | Nb ACD Served calls (after queuing) |
dnbCallsBeforeTS1 | Nb ACD Served calls before threshold 1(eg 5 sec) |
dnbCallsBeforeTS2 | Nb ACD Served calls before threshold 2(eg 15 sec) |
dnbCallsBeforeTS3 | Nb ACD Served calls before threshold 3(eg 30 sec) |
dnbCallsBeforeTS4 | Nb ACD Served calls before threshold 4(eg 60 sec) |
dnbCallsAfterTS4 | Nb ACD Served calls after threshold 4(eg 60 sec) |
dwaitServedCallsADur | ACD Served calls (Average waiting time) |
dnbAbandons | Nb total abandons |
dnbAbandonsOnGreetingsVG | Nb abandons on greetings VG |
dnbAbandonsOnWaitingVG | Nb abandons on waiting VG |
dnbAbandonsBeforeTS1 | Nb number of abandons before threshold 1(eg 5s) |
dnbAbandonsBeforeTS2 | Nb number of abandons before threshold 2(eg 15s) |
dnbAbandonsBeforeTS3 | Nb number of abandons before threshold 3(eg 30s) |
dnbAbandonsBeforeTS4 | Nb number of abandons before threshold 4(eg 60s) |
dnbAbandonsAfterTS4 | Nb number of abandons after threshold 4(eg 60s) |
dnbCallsRejectedLackOfRes | nb calls rejected due to lack of resource |
dnbCallsDissuaded | nb calls dissuaded |
dnbTotCallsRedirected | nb total redirected calls |
dnbCallsRedirectedOutACDArea | nb calls redirected outside ACD area |
dnbCallsSentInMutualAidQueue | nb calls sent in mutual aid queue |
dnbCallsSentToPG | nb calls sent to remote PG |
dserviceLevel | Service level |
defficiency2 | Efficiency |
dcallProcADur | Average duration of call processing |
dconvADur | Average duration of conv |
dwrapupADur | Average duration of wrapup |
dholdCallsADur | Average duration of hold calls |
dringingADur | Average duration of ringing |
dwaitingADur | Average duration of waiting |
dlongestWaitingDur | Longest waiting time |
ALL | All attributes in context creation. |
PilotStatsRowPilot statistics (one row)
Name | Type | Cardinality | Description |
---|
date | string | [0..1] | Formated End date of the raw |
year | string | [0..1] | year of the raw |
month | string | [0..1] | month of the raw |
day | string | [0..1] | day of the raw |
hour | string | [0..1] | hour of the raw |
minute | string | [0..1] | minute of the raw |
queueName | string | [0..1] | queue's name |
pilotName | string | [0..1] | Pilot's name |
pilotNumber | string | [0..1] | Pilot's number |
nbCallsOpen | int | [0..1] | nb calls received in open state PC001 |
nbCallsBlocked | int | [0..1] | nb calls received in blocked state PC002 |
nbCallsForward | int | [0..1] | nb calls received in general forwarding state PC003 |
nbCallsByTransfer | int | [0..1] | nb calls received by transfer PC004 |
nbCallsByMutualAid | int | [0..1] | nb calls received by mutual_aid PC005 |
maxNbSimultCalls | int | [0..1] | max nb of simultaneous calls PC006 |
nbOverflowInQueue | int | [0..1] | Timing overflow while calls were in queue PC007 |
NbOverflowInRinging | int | [0..1] | Timing overflow while calls rung agent PC008 |
nbCallsWOQueuing | int | [0..1] | nb calls served without queuing PC009 |
nbCallsAfterQueuing | int | [0..1] | nb calls served after queuing PC010 |
nbCallsSentInMutualAidQueue | int | [0..1] | nb calls sent in mutual aid queue PC011 |
nbCallsRedirectedOutACDArea | int | [0..1] | nb calls redirected outside ACD area PC012 |
nbCallsDissuaded | int | [0..1] | nb calls dissuaded PC013 |
nbCallsDissuadedAfterTryingMutualAid | int | [0..1] | nb calls dissuaded PC014 |
nbCallsVGTypePG | int | [0..1] | nb calls processed by VG type PG PC015 |
nbCallsSentToPG | int | [0..1] | nb calls sent to remote PG PC016 |
nbCallsRejectedLackOfRes | int | [0..1] | nb calls rejected due to lack of resource PC017 |
nbCallsServedByAgent | int | [0..1] | nb calls served by agent PC018 |
nbCallsServedInTime | int | [0..1] | nb calls served in time PC019 |
nbCallsServedTooQuick | int | [0..1] | nb calls served too quickly PC020 |
nbCallsWithoutTransCode | int | [0..1] | nb calls without transaction code PC021 |
nbCallsWithTransCode | int | [0..1] | nb calls with transaction code PC022 |
nbCallsRedistrib | int | [0..1] | nb calls redistributed PC023 |
nbCallsBeforeTS1 | int | [0..1] | nb calls served before threshold 1 (eg 5 sec) PC024 |
percentCallsBeforeTS1 | string | [0..1] | percent calls served before threshold (eg 5 sec) PC025 |
nbCallsBeforeTS2 | int | [0..1] | nb calls served before threshold 2 (eg 15 sec) PC026 |
percentCallsBeforeTS2 | string | [0..1] | percent calls served before threshold 2 (eg 15 sec) PC027 |
nbCallsBeforeTS3 | int | [0..1] | nb calls served before threshold 3 (eg 30 sec) PC028 |
percentCallsBeforeTS3 | string | [0..1] | percent calls served before threshold 3 (eg 30 sec) PC029 |
nbCallsBeforeTS4 | int | [0..1] | nb calls served before threshold 4 (eg 60 sec) PC030 |
percentCallsBeforeTS4 | string | [0..1] | percent calls served before threshold 4 (eg 60 sec) PC031 |
nbCallsAfterTS4 | int | [0..1] | nb calls served after threshold 4 (eg 60 sec) PC032 |
percentCallsAfterTS4 | string | [0..1] | percent calls served after threshold 4 (eg 60 sec) PC033 |
nbAbandonsOnGreetingsVG | int | [0..1] | Nb of abandons on Greeting voice guide PC034 |
nbAbandonsOn1WaitingVG | int | [0..1] | Nb of abandons on 1st waiting voice guide PC035 |
nbAbandonsOn2WaitingVG | int | [0..1] | Nb of abandons on 2nd waiting voice guide PC036 |
nbAbandonsOn3WaitingVG | int | [0..1] | Nb of abandons on 3rd waiting voice guide PC037 |
nbAbandonsOn4WaitingVG | int | [0..1] | Nb of abandons on 4th waiting voice guide PC038 |
nbAbandonsOn5WaitingVG | int | [0..1] | Nb of abandons on 5th waiting voice guide PC039 |
nbAbandonsOn6WaitingVG | int | [0..1] | Nb of abandons on 6th waiting voice guide PC040 |
nbAbandonsOnRinging | int | [0..1] | Nb of abandons on ringing PC041 |
nbAbandonsOnGenFwdVG | int | [0..1] | Nb of abandons on Generam Fwd voice guide PC042 |
nbAbandonsOnBlockedVG | int | [0..1] | Nb of abandons on blocked voice guide PC043 |
nbAbandonsOnAgentBusy | int | [0..1] | Nb of abandons of direct calls while they was waiting on agent busy PC044 |
nbAbandons | int | [0..1] | Overall number of abandons PC045 |
nbAbandonsBeforeTS1 | int | [0..1] | Nb number of abandons before threshold 1 (eg 5s) PC046 |
percentAbandonsBeforeTS1 | string | [0..1] | percent of abandons before threshold 1 (eg 5s) PC047 |
nbAbandonsBeforeTS2 | int | [0..1] | Nb number of abandons before threshold 2 (eg 15s) PC048 |
percentAbandonsBeforeTS2 | string | [0..1] | percent of abandons before threshold 2 (eg 15s) PC049 |
nbAbandonsBeforeTS3 | int | [0..1] | Nb number of abandons before threshold 3 (eg 30s) PC050 |
percentAbandonsBeforeTS3 | string | [0..1] | percent of abandons before threshold 3 (eg 30s) PC051 |
nbAbandonsBeforeTS4 | int | [0..1] | Nb number of abandons before threshold 4 (eg 60s) PC052 |
percentAbandonsBeforeTS4 | string | [0..1] | percent of abandons before threshold 4 (eg 60s) PC053 |
nbAbandonsAfterTS4 | int | [0..1] | Nb number of abandons after threshold 4 (eg 60s) PC054 |
percentAbandonsAfterTS4 | string | [0..1] | percent of abandons after threshold 4 (eg 60s) PC055 |
callProcTDur | string | [0..1] | Total duration of call processing PC056 |
callProcADur | string | [0..1] | Average duration of call processing PC057 |
greetingListenTDur | string | [0..1] | Total duration of greeting guide listening PC058 |
greetingListenADur | string | [0..1] | Average duration of greeting guide listening PC059 |
beforeQueuingTDur | string | [0..1] | Total time before queuing PC060 |
waitServedCallsTDur | string | [0..1] | Total waiting duration of served calls PC061 |
waitServedCallsADur | string | [0..1] | Average waiting duration of served calls PC062 |
waitAbandonnedCallsTDur | string | [0..1] | Total waiting duration of abandonned calls PC063 |
waitAbandonnedCallsADur | string | [0..1] | Average waiting duration of abandonned calls PC064 |
ringingTDur | string | [0..1] | Total duration of ringing PC065 |
ringingADur | string | [0..1] | Average duration of ringing PC066 |
convTDur | string | [0..1] | Total duration of conv PC067 |
convADur | string | [0..1] | Average duration of conv PC068 |
holdCallsTDur | string | [0..1] | Total duration of hold calls PC069 |
holdCallsADur | string | [0..1] | Average duration of hold calls PC070 |
wrapupTDur | string | [0..1] | Total duration of wrapup PC071 |
wrapupADur | string | [0..1] | Average duration of wrapup PC072 |
longestWaitingDur | string | [0..1] | Longest waiting time PC073 |
serviceLevel | string | [0..1] | Service level PC077 |
efficiency | string | [0..1] | Efficiency PC078 |
inServiceState | string | [0..1] | In service (pilot state percent) PC079 |
genFwdState | string | [0..1] | General forwarding (pilot state percent) PC080 |
blockedState | string | [0..1] | Blocked (pilot state percent) PC081 |
dnbTotReceivedCalls | int | [0..1] | Nb total received calls PC082 |
dnbCallsOpen | int | [0..1] | Nb received calls in Pilot open PC083 |
dnbCallsBlocked | int | [0..1] | Nb received calls in Pilot blocked PC084 |
dnbCallsForward | int | [0..1] | Nb received calls in Pilot General Forwarding PC085 |
dnbDirectRoute | int | [0..1] | Nb received calls in direct routing PC086 |
dnbIndirectRoute | int | [0..1] | Nb received calls in indirect routing PC087 |
dnbTotServedCalls | int | [0..1] | Nb total served calls PC088 |
defficiency | string | [0..1] | ACD Served calls efficiency PC089 |
dnbCallsWOQueuing | int | [0..1] | Nb ACD Served calls (Without queuing) PC090 |
dnbCallsAfterQueuing | int | [0..1] | Nb ACD Served calls (after queuing) PC091 |
dnbCallsBeforeTS1 | int | [0..1] | Nb ACD Served calls before threshold 1 (eg 5 sec) PC092 |
dnbCallsBeforeTS2 | int | [0..1] | Nb ACD Served calls before threshold 2 (eg 15 sec) PC093 |
dnbCallsBeforeTS3 | int | [0..1] | Nb ACD Served calls before threshold 3 (eg 30 sec) PC094 |
dnbCallsBeforeTS4 | int | [0..1] | Nb ACD Served calls before threshold 4 (eg 60 sec) PC095 |
dnbCallsAfterTS4 | int | [0..1] | Nb ACD Served calls after threshold 4 (eg 60 sec) PC096 |
dwaitServedCallsADur | string | [0..1] | ACD Served calls (Average waiting time) PC097 |
dnbAbandons | int | [0..1] | Nb total abandons PC098 |
dnbAbandonsOnGreetingsVG | int | [0..1] | Nb abandons on greetings VG PC099 |
dnbAbandonsOnWaitingVG | int | [0..1] | Nb abandons on waiting VG PC100 |
dnbAbandonsBeforeTS1 | int | [0..1] | Nb number of abandons before threshold 1 (eg 5s) PC101 |
dnbAbandonsBeforeTS2 | int | [0..1] | Nb number of abandons before threshold 2 (eg 15s) PC102 |
dnbAbandonsBeforeTS3 | int | [0..1] | Nb number of abandons before threshold 3 (eg 30s) PC103 |
dnbAbandonsBeforeTS4 | int | [0..1] | Nb number of abandons before threshold 4 (eg 60s) PC104 |
dnbAbandonsAfterTS4 | int | [0..1] | Nb number of abandons after threshold 4 (eg 60s) PC105 |
dnbCallsRejectedLackOfRes | int | [0..1] | nb calls rejected due to lack of resource PC106 |
dnbCallsDissuaded | int | [0..1] | nb calls dissuaded PC107 |
dnbTotCallsRedirected | int | [0..1] | nb total redirected calls PC108 |
dnbCallsRedirectedOutACDArea | int | [0..1] | nb calls redirected outside ACD area PC109 |
dnbCallsSentInMutualAidQueue | int | [0..1] | nb calls sent in mutual aid queue PC110 |
dnbCallsSentToPG | int | [0..1] | nb calls sent to remote PG PC111 |
dserviceLevel | string | [0..1] | Service level PC112 |
defficiency2 | string | [0..1] | Efficiency PC113 |
dcallProcADur | string | [0..1] | Average duration of call processing PC114 |
dconvADur | string | [0..1] | Average duration of conv PC115 |
dwrapupADur | string | [0..1] | Average duration of wrapup PC116 |
dholdCallsADur | string | [0..1] | Average duration of hold calls PC117 |
dringingADur | string | [0..1] | Average duration of ringing PC118 |
dwaitingADur | string | [0..1] | Average duration of waiting PC119 |
dlongestWaitingDur | string | [0..1] | Longest waiting time PC120 |
[+] : JSON Example{
"date": "string",
"year": "string",
"month": "string",
"day": "string",
"hour": "string",
"minute": "string",
"queueName": "string",
"pilotName": "string",
"pilotNumber": "string",
"nbCallsOpen": int,
"nbCallsBlocked": int,
"nbCallsForward": int,
"nbCallsByTransfer": int,
"nbCallsByMutualAid": int,
"maxNbSimultCalls": int,
"nbOverflowInQueue": int,
"NbOverflowInRinging": int,
"nbCallsWOQueuing": int,
"nbCallsAfterQueuing": int,
"nbCallsSentInMutualAidQueue": int,
"nbCallsRedirectedOutACDArea": int,
"nbCallsDissuaded": int,
"nbCallsDissuadedAfterTryingMutualAid": int,
"nbCallsVGTypePG": int,
"nbCallsSentToPG": int,
"nbCallsRejectedLackOfRes": int,
"nbCallsServedByAgent": int,
"nbCallsServedInTime": int,
"nbCallsServedTooQuick": int,
"nbCallsWithoutTransCode": int,
"nbCallsWithTransCode": int,
"nbCallsRedistrib": int,
"nbCallsBeforeTS1": int,
"percentCallsBeforeTS1": "string",
"nbCallsBeforeTS2": int,
"percentCallsBeforeTS2": "string",
"nbCallsBeforeTS3": int,
"percentCallsBeforeTS3": "string",
"nbCallsBeforeTS4": int,
"percentCallsBeforeTS4": "string",
"nbCallsAfterTS4": int,
"percentCallsAfterTS4": "string",
"nbAbandonsOnGreetingsVG": int,
"nbAbandonsOn1WaitingVG": int,
"nbAbandonsOn2WaitingVG": int,
"nbAbandonsOn3WaitingVG": int,
"nbAbandonsOn4WaitingVG": int,
"nbAbandonsOn5WaitingVG": int,
"nbAbandonsOn6WaitingVG": int,
"nbAbandonsOnRinging": int,
"nbAbandonsOnGenFwdVG": int,
"nbAbandonsOnBlockedVG": int,
"nbAbandonsOnAgentBusy": int,
"nbAbandons": int,
"nbAbandonsBeforeTS1": int,
"percentAbandonsBeforeTS1": "string",
"nbAbandonsBeforeTS2": int,
"percentAbandonsBeforeTS2": "string",
"nbAbandonsBeforeTS3": int,
"percentAbandonsBeforeTS3": "string",
"nbAbandonsBeforeTS4": int,
"percentAbandonsBeforeTS4": "string",
"nbAbandonsAfterTS4": int,
"percentAbandonsAfterTS4": "string",
"callProcTDur": "string",
"callProcADur": "string",
"greetingListenTDur": "string",
"greetingListenADur": "string",
"beforeQueuingTDur": "string",
"waitServedCallsTDur": "string",
"waitServedCallsADur": "string",
"waitAbandonnedCallsTDur": "string",
"waitAbandonnedCallsADur": "string",
"ringingTDur": "string",
"ringingADur": "string",
"convTDur": "string",
"convADur": "string",
"holdCallsTDur": "string",
"holdCallsADur": "string",
"wrapupTDur": "string",
"wrapupADur": "string",
"longestWaitingDur": "string",
"serviceLevel": "string",
"efficiency": "string",
"inServiceState": "string",
"genFwdState": "string",
"blockedState": "string",
"dnbTotReceivedCalls": int,
"dnbCallsOpen": int,
"dnbCallsBlocked": int,
"dnbCallsForward": int,
"dnbDirectRoute": int,
"dnbIndirectRoute": int,
"dnbTotServedCalls": int,
"defficiency": "string",
"dnbCallsWOQueuing": int,
"dnbCallsAfterQueuing": int,
"dnbCallsBeforeTS1": int,
"dnbCallsBeforeTS2": int,
"dnbCallsBeforeTS3": int,
"dnbCallsBeforeTS4": int,
"dnbCallsAfterTS4": int,
"dwaitServedCallsADur": "string",
"dnbAbandons": int,
"dnbAbandonsOnGreetingsVG": int,
"dnbAbandonsOnWaitingVG": int,
"dnbAbandonsBeforeTS1": int,
"dnbAbandonsBeforeTS2": int,
"dnbAbandonsBeforeTS3": int,
"dnbAbandonsBeforeTS4": int,
"dnbAbandonsAfterTS4": int,
"dnbCallsRejectedLackOfRes": int,
"dnbCallsDissuaded": int,
"dnbTotCallsRedirected": int,
"dnbCallsRedirectedOutACDArea": int,
"dnbCallsSentInMutualAidQueue": int,
"dnbCallsSentToPG": int,
"dserviceLevel": "string",
"defficiency2": "string",
"dcallProcADur": "string",
"dconvADur": "string",
"dwrapupADur": "string",
"dholdCallsADur": "string",
"dringingADur": "string",
"dwaitingADur": "string",
"dlongestWaitingDur": "string"
} |
ReportFrequencyFrequency and day when the report is generated
Name | Type | Cardinality | Description |
---|
periodicity | Periodicity | [1] | Periodicity |
daysInWeek | DaysOfWeek | [0..*] | If weekly, the day in the week |
dayInMonth | int | [0..1] | If monthly, the day in the month(1-31) or 0 for last day |
[+] : JSON Example{
"periodicity": "once | daily | weekly | monthly",
"daysInWeek": [ "monday | tuesday | wednesday | thursday | friday | saturday | sunday" ],
"dayInMonth": int
} |
RespIdHistogram information.
Name | Type | Cardinality | Description |
---|
id | string | [0..1] | the identifier |
Associated methods :
ScheduledPeriodTypeType of selection period
Value | Description |
---|
currentDay | current day |
currentWeek | the current week |
currentMonth | the current month |
lastDays | the n last days(from the current day, n <= 31) |
lastWeeks | the n last weeks(n <= 4) |
lastMonth | the last month |
fromDateToDate | from a date to a date |
ScheduledSelPeriodSelected period for scheduling a report: type of period, begin Date/end Date
Name | Type | Cardinality | Description |
---|
periodType | ScheduledPeriodType | [1] | scheduled period type: the current day/week/month/last days/ |
lastNb | int | [0..1] | nb of last days(max=31)/weeks(max=4)/months(max=1) |
beginDate | string | [0..1] | Begin date in format(yyyy-MM-dd'T'HH:mm): begin of selection period if
periodType is from date to date |
endDate | string | [0..1] | End date in format(yyyy-MM-dd'T'HH:mm): end of selection period if periodType
is from date to date (maximum 31 days) |
[+] : JSON Example{
"periodType": "currentDay | currentWeek | currentMonth | lastDays | lastWeeks | lastMonth | ...",
"lastNb": int,
"beginDate": "string",
"endDate": "string"
} |
ScheduledStateType of slot period
Value | Description |
---|
Not_executed | Not yet executed |
Executed | Executed at least once time and last execution succeeded |
Failed_On_Get_Data | Last execution failed when collecting data |
Failed_On_Send_Mail | Last execution failed when sending mail |
In_progress | Data collect is in progress |
Expired | Expired |
SelectedPeriodSelected period : type of period, begin Date/end Date
Name | Type | Cardinality | Description |
---|
periodType | PeriodType | [1] | type of selected period: one or several days |
slotType | SlotType | [0..1] | if periodType is on oneDay, type of slot (1/4h, 1/2h or 1h) |
beginDate | string | [0..1] | Begin date in format(yyyy-MM-dd'T'HH:mm): the chosen day or the begin of selection period (default = current day) |
endDate | string | [0..1] | End date in format(yyyy-MM-dd'T'HH:mm): end of selection period (valid only for a several days period, default = current day) |
[+] : JSON Example{
"periodType": "oneDay | onSeveralDays",
"slotType": "aQuarterOfAnHour | halfAnHour | anHour",
"beginDate": "string",
"endDate": "string"
} |
SlotTypeType of slot period
Value | Description |
---|
aQuarterOfAnHour | statistics slot duration is 15 minutes |
halfAnHour | statistics slot duration is 30 minutes |
anHour | statistics slot duration is one hour |
StatsThe global statistics result for a supervisor.
Name | Type | Cardinality | Description |
---|
supervisor | string | [0..1] | supervisor requester of the statistics |
agentsStats | AgentStats | [0..*] | Statistics for set of agents |
pilotsStats | PilotStats | [0..*] | Statistics for set of pilots |
[+] : JSON Example{
"supervisor": "string",
"agentsStats": [ {
"timeSlot": "string",
"selectedPeriod": {
"periodType": "oneDay | onSeveralDays",
"slotType": "aQuarterOfAnHour | halfAnHour | anHour",
"beginDate": "string",
"endDate": "string"
},
"rows": [ {
"date": "string",
"year": "string",
"month": "string",
"day": "string",
"hour": "string",
"minute": "string",
"login": "string",
"operator": "string",
"firstName": "string",
"lastName": "string",
"number": "string",
"group": "string",
"nbRotating": int,
"nbPickedUp": int,
"nbPickup": int,
"nbLocalOutNonAcd": int,
"nbExtOutNonacd": int,
"nbRingAcd": int,
"nbHelp": int,
"nbLocInNonacd": int,
"nbExtInNonacdDirect": int,
"nbExtInNonacdTransferred": int,
"nbServedWOCode": int,
"nbServedWCode": int,
"nbAcdQuickServed": int,
"nbExtinNonacdServed": int,
"nbExtinNonacdQuickServed": int,
"nbOutAcd": int,
"nbOutAcdAnswered": int,
"nbOnWrapup": int,
"ringAcdServedTDur": "string",
"ringAcdServedADur": "string",
"ringInNonAcdExtServedTDur": "string",
"ringInNonAcdExtServedADur": "string",
"ringAcdTDur": "string",
"ringAcdADur": "string",
"ringInNonAcdExtTDur": "string",
"ringInNonAcdExtADur": "string",
"ringTDur": "string",
"ringADur": "string",
"convAcdTDur": "string",
"convAcdADur": "string",
"wrapupAcdTDur": "string",
"convLocOutNonacdTDur": "string",
"convLocOutNonacdADur": "string",
"convExtOutTDur": "string",
"convExtOutADur": "string",
"convLocInNonacdTDur": "string",
"convLocInNonacdADur": "string",
"convExtInNonacdTDur": "string",
"convExtInNonacdADur": "string",
"outAcdCommTDur": "string",
"outAcdCommADur": "string",
"outAcdConvTDur": "string",
"outAcdConvADur": "string",
"outAcdTransactTDur": "string",
"outAcdTransactADur": "string",
"outAcdWrapupTDur": "string",
"outAcdWrapupADur": "string",
"outAcdPauseTDur": "string",
"outAcdPauseADur": "string",
"wrapUpIdleTDur": "string",
"callOnWrapupTDur": "string",
"busyOnWrapupTDur": "string",
"busyTDur": "string",
"loggedOutPerTime": "string",
"notAssignedPerTime": "string",
"assignedPerTime": "string",
"withdrawPerTime": "string",
"withdrawPerTimeCause1": "string",
"withdrawPerTimeCause2": "string",
"withdrawPerTimeCause3": "string",
"withdrawPerTimeCause4": "string",
"withdrawPerTimeCause5": "string",
"withdrawPerTimeCause6": "string",
"withdrawPerTimeCause7": "string",
"withdrawPerTimeCause8": "string",
"withdrawPerTimeCause9": "string",
"nbPilots": int,
"nbAcdServedCalls": int,
"nbAcdInServedCalls": int,
"nbInCallsReceivedByPilot": int,
"nbAcdOutServedCalls": int,
"nbTotNonServedCalls": int,
"nbInNonServedCalls": int,
"nbPickedupCalls": int,
"nbRefusedCalls": int,
"nbAcdOutNonServedCalls": int,
"nbTotNonAcdreceivedCalls": int,
"nbInNonAcdCalls": int,
"nbOutNonAcdCalls": int,
"assignedNotWithdrawDur": "string",
"withdrawDur": "string",
"manuWrapupDur": "string",
"unreachableDur": "string",
"nonAcdWorkTDur": "string",
"nonAcdWorkADur": "string",
"acdWorkTDur": "string",
"acdWorkADur": "string",
"acdWorkInTDur": "string",
"acdWorkInADur": "string",
"acdWorkInConvTDur": "string",
"acdWorkInConvADur": "string",
"acdWorkInRingTDur": "string",
"acdWorkInRingADur": "string",
"acdWorkInWrapupTDur": "string",
"acdWorkInWrapupADur": "string",
"acdWorkOutTDur": "string",
"acdWorkOutADur": "string",
"acdWorkOutConvTDur": "string",
"acdWorkOutConvADur": "string",
"acdWorkOutWrapupTDur": "string",
"acdWorkOutWrapupADur": "string",
"acdInConvTDur": "string",
"acdInConvADur": "string",
"acdOutConvTDur": "string",
"acdOutConvADur": "string",
"pilotAgentStatsRows": [ {
"pilotNumber": "string",
"pilotName": "string",
"nbCallsReceived": int,
"nbCallsTransfIn": int,
"nbCallsServed": int,
"nbCallsServedTooQuickly": int,
"nbCallsWithEnquiry": int,
"nbCallsWithHelp": int,
"nbCallsTransf": int,
"nbCallsTransfToAgent": int,
"nbCallsInWrapup": int,
"maxCallProcDur": "string",
"maxConvDur": "string",
"maxWrapupDur": "string",
"callProcTDur": "string",
"callProcADur": "string",
"convTDur": "string",
"convADur": "string",
"wrapupTDur": "string",
"wrapupADur": "string",
"convInWrapupTDur": "string",
"busyTimeInWrapupTDur": "string",
"onHoldTDur": "string",
"onHoldADur": "string",
"transTDur": "string",
"transADur": "string",
"pauseTDur": "string",
"pauseADur": "string"
} ]
} ]
} ],
"pilotsStats": [ {
"timeSlot": "string",
"selectedPeriod": {
"periodType": "oneDay | onSeveralDays",
"slotType": "aQuarterOfAnHour | halfAnHour | anHour",
"beginDate": "string",
"endDate": "string"
},
"rows": [ {
"date": "string",
"year": "string",
"month": "string",
"day": "string",
"hour": "string",
"minute": "string",
"queueName": "string",
"pilotName": "string",
"pilotNumber": "string",
"nbCallsOpen": int,
"nbCallsBlocked": int,
"nbCallsForward": int,
"nbCallsByTransfer": int,
"nbCallsByMutualAid": int,
"maxNbSimultCalls": int,
"nbOverflowInQueue": int,
"NbOverflowInRinging": int,
"nbCallsWOQueuing": int,
"nbCallsAfterQueuing": int,
"nbCallsSentInMutualAidQueue": int,
"nbCallsRedirectedOutACDArea": int,
"nbCallsDissuaded": int,
"nbCallsDissuadedAfterTryingMutualAid": int,
"nbCallsVGTypePG": int,
"nbCallsSentToPG": int,
"nbCallsRejectedLackOfRes": int,
"nbCallsServedByAgent": int,
"nbCallsServedInTime": int,
"nbCallsServedTooQuick": int,
"nbCallsWithoutTransCode": int,
"nbCallsWithTransCode": int,
"nbCallsRedistrib": int,
"nbCallsBeforeTS1": int,
"percentCallsBeforeTS1": "string",
"nbCallsBeforeTS2": int,
"percentCallsBeforeTS2": "string",
"nbCallsBeforeTS3": int,
"percentCallsBeforeTS3": "string",
"nbCallsBeforeTS4": int,
"percentCallsBeforeTS4": "string",
"nbCallsAfterTS4": int,
"percentCallsAfterTS4": "string",
"nbAbandonsOnGreetingsVG": int,
"nbAbandonsOn1WaitingVG": int,
"nbAbandonsOn2WaitingVG": int,
"nbAbandonsOn3WaitingVG": int,
"nbAbandonsOn4WaitingVG": int,
"nbAbandonsOn5WaitingVG": int,
"nbAbandonsOn6WaitingVG": int,
"nbAbandonsOnRinging": int,
"nbAbandonsOnGenFwdVG": int,
"nbAbandonsOnBlockedVG": int,
"nbAbandonsOnAgentBusy": int,
"nbAbandons": int,
"nbAbandonsBeforeTS1": int,
"percentAbandonsBeforeTS1": "string",
"nbAbandonsBeforeTS2": int,
"percentAbandonsBeforeTS2": "string",
"nbAbandonsBeforeTS3": int,
"percentAbandonsBeforeTS3": "string",
"nbAbandonsBeforeTS4": int,
"percentAbandonsBeforeTS4": "string",
"nbAbandonsAfterTS4": int,
"percentAbandonsAfterTS4": "string",
"callProcTDur": "string",
"callProcADur": "string",
"greetingListenTDur": "string",
"greetingListenADur": "string",
"beforeQueuingTDur": "string",
"waitServedCallsTDur": "string",
"waitServedCallsADur": "string",
"waitAbandonnedCallsTDur": "string",
"waitAbandonnedCallsADur": "string",
"ringingTDur": "string",
"ringingADur": "string",
"convTDur": "string",
"convADur": "string",
"holdCallsTDur": "string",
"holdCallsADur": "string",
"wrapupTDur": "string",
"wrapupADur": "string",
"longestWaitingDur": "string",
"serviceLevel": "string",
"efficiency": "string",
"inServiceState": "string",
"genFwdState": "string",
"blockedState": "string",
"dnbTotReceivedCalls": int,
"dnbCallsOpen": int,
"dnbCallsBlocked": int,
"dnbCallsForward": int,
"dnbDirectRoute": int,
"dnbIndirectRoute": int,
"dnbTotServedCalls": int,
"defficiency": "string",
"dnbCallsWOQueuing": int,
"dnbCallsAfterQueuing": int,
"dnbCallsBeforeTS1": int,
"dnbCallsBeforeTS2": int,
"dnbCallsBeforeTS3": int,
"dnbCallsBeforeTS4": int,
"dnbCallsAfterTS4": int,
"dwaitServedCallsADur": "string",
"dnbAbandons": int,
"dnbAbandonsOnGreetingsVG": int,
"dnbAbandonsOnWaitingVG": int,
"dnbAbandonsBeforeTS1": int,
"dnbAbandonsBeforeTS2": int,
"dnbAbandonsBeforeTS3": int,
"dnbAbandonsBeforeTS4": int,
"dnbAbandonsAfterTS4": int,
"dnbCallsRejectedLackOfRes": int,
"dnbCallsDissuaded": int,
"dnbTotCallsRedirected": int,
"dnbCallsRedirectedOutACDArea": int,
"dnbCallsSentInMutualAidQueue": int,
"dnbCallsSentToPG": int,
"dserviceLevel": "string",
"defficiency2": "string",
"dcallProcADur": "string",
"dconvADur": "string",
"dwrapupADur": "string",
"dholdCallsADur": "string",
"dringingADur": "string",
"dwaitingADur": "string",
"dlongestWaitingDur": "string"
} ]
} ]
} |
Associated method :
StatsAgentFilterAgent filter: contains list of numbers and list of attributes for statistics
Name | Type | Cardinality | Description |
---|
numbers | string | [0..*] | List of Agent numbers |
agentAttributes | AgentAttribute | [0..*] | List of Agent statistics attributes |
pilotAttributes | AgentPilotStatsAttribute | [0..*] | List of pilot statistics attributes |
[+] : JSON Example{
"numbers": [ "string" ],
"agentAttributes": [ "nbRotating | nbPickedUp | nbPickup | nbLocalOutNonAcd | nbExtOutNonacd | ..." ],
"pilotAttributes": [ "nbCallsReceived | nbCallsTransfIn | nbCallsServed | nbCallsServedTooQuickly | ..." ]
} |
StatsAgentFilterRespAgent filter: contains list of numbers and list of attributes for statistics
[+] : JSON Example{
"agentsDetails": [ {
"number": "string",
"loginName": "string",
"firstName": "string",
"lastName": "string",
"groupName": "string"
} ],
"agentAttrExts": [ {
"dto": "nbRotating | nbPickedUp | nbPickup | nbLocalOutNonAcd | nbExtOutNonacd | ...",
"ref": "string",
"transl": "string",
"descr": "string",
"detailed": boolean
} ],
"pilotAttrExts": [ {
"dto": "nbCallsReceived | nbCallsTransfIn | nbCallsServed | nbCallsServedTooQuickly | ...",
"ref": "string",
"transl": "string",
"descr": "string"
} ]
} |
StatsContextStatistics context with period and filters for agent and pilot objects.
The context may specify:
- a filter (selected agents and pilots with their respective data fields),
- an observation period (limited to 31 days),
- schedule informations(generation and sending of regular reports)
if the context already exists, it is updated with the present attributes.
Name | Type | Cardinality | Description |
---|
ctxId | string | [0..1] | identifier of the context.
Return in result, ignored when creating or modifying a new context |
supervisorId | string | [0..1] | Supervisor identifier, i.e. its number.
Return in result, ignored when creating or modifying a new context |
label | string | [0..1] | context label |
description | string | [0..1] | description |
isScheduled | boolean | [0..1] | is this context scheduled (at least once) |
filter | StatsFilter | [1] | Filter on objects(agents or(exclusive) pilots) |
[+] : JSON Example{
"ctxId": "string",
"supervisorId": "string",
"label": "string",
"description": "string",
"isScheduled": boolean,
"filter": {
"agentFilter": {
"numbers": [ "string" ],
"agentAttributes": [ "nbRotating | nbPickedUp | nbPickup | nbLocalOutNonAcd | nbExtOutNonacd | ..." ],
"pilotAttributes": [ "nbCallsReceived | nbCallsTransfIn | nbCallsServed | nbCallsServedTooQuickly | ..." ]
},
"pilotFilter": {
"numbers": [ "string" ],
"attributes": [ "nbCallsOpen | nbCallsBlocked | nbCallsForward | nbCallsByTransfer | ..." ]
}
}
} |
Associated methods :
StatsContextsList of stats contexts
Name | Type | Cardinality | Description |
---|
contexts | StatsContext | [0..*] | List of contexts |
[+] : JSON Example{
"contexts": [ {
"ctxId": "string",
"supervisorId": "string",
"label": "string",
"description": "string",
"isScheduled": boolean,
"filter": {
"agentFilter": {
"numbers": [ "string" ],
"agentAttributes": [ "nbRotating | nbPickedUp | nbPickup | nbLocalOutNonAcd | nbExtOutNonacd | ..." ],
"pilotAttributes": [ "nbCallsReceived | nbCallsTransfIn | nbCallsServed | nbCallsServedTooQuickly | ..." ]
},
"pilotFilter": {
"numbers": [ "string" ],
"attributes": [ "nbCallsOpen | nbCallsBlocked | nbCallsForward | nbCallsByTransfer | ..." ]
}
}
} ]
} |
Associated method :
StatsFilterStatistics attribute filters for agents or(exclusive) pilots.
Agent filter and pilot filter must not be present at the same time in a create/modify context.
Name | Type | Cardinality | Description |
---|
agentFilter | StatsAgentFilter | [0..1] | Filter on agents (if present, the pilot filter will be ignored) |
pilotFilter | StatsPilotFilter | [0..1] | Filter on pilots (only considered if agent filter is absent) |
[+] : JSON Example{
"agentFilter": {
"numbers": [ "string" ],
"agentAttributes": [ "nbRotating | nbPickedUp | nbPickup | nbLocalOutNonAcd | nbExtOutNonacd | ..." ],
"pilotAttributes": [ "nbCallsReceived | nbCallsTransfIn | nbCallsServed | nbCallsServedTooQuickly | ..." ]
},
"pilotFilter": {
"numbers": [ "string" ],
"attributes": [ "nbCallsOpen | nbCallsBlocked | nbCallsForward | nbCallsByTransfer | ..." ]
}
} |
StatsFilterRespStatistics attribute filters for agents or(exclusive) pilots.
[+] : JSON Example{
"agentFilter": {
"agentsDetails": [ {
"number": "string",
"loginName": "string",
"firstName": "string",
"lastName": "string",
"groupName": "string"
} ],
"agentAttrExts": [ {
"dto": "nbRotating | nbPickedUp | nbPickup | nbLocalOutNonAcd | nbExtOutNonacd | ...",
"ref": "string",
"transl": "string",
"descr": "string",
"detailed": boolean
} ],
"pilotAttrExts": [ {
"dto": "nbCallsReceived | nbCallsTransfIn | nbCallsServed | nbCallsServedTooQuickly | ...",
"ref": "string",
"transl": "string",
"descr": "string"
} ]
},
"pilotFilter": {
"pilots": [ {
"number": "string",
"name": "string"
} ],
"attrExts": [ {
"dto": "nbCallsOpen | nbCallsBlocked | nbCallsForward | nbCallsByTransfer | ...",
"ref": "string",
"transl": "string",
"descr": "string",
"detailed": boolean
} ]
}
} |
Associated method :
StatsPilotFilterPilot filter: contains list of numbers and list of attributes for statistics
Name | Type | Cardinality | Description |
---|
numbers | string | [0..*] | List of pilot numbers |
attributes | PilotStatsAttribute | [0..*] | List of pilot statistics attributes |
[+] : JSON Example{
"numbers": [ "string" ],
"attributes": [ "nbCallsOpen | nbCallsBlocked | nbCallsForward | nbCallsByTransfer | ..." ]
} |
StatsPilotFilterRespPilot filter: contains list of numbers and list of attributes for statistics
Name | Type | Cardinality | Description |
---|
pilots | PilotData | [0..*] | List of pilot data |
attrExts | PilotStatsAttrExt | [0..*] | List of pilot statistics attributes extended |
[+] : JSON Example{
"pilots": [ {
"number": "string",
"name": "string"
} ],
"attrExts": [ {
"dto": "nbCallsOpen | nbCallsBlocked | nbCallsForward | nbCallsByTransfer | ...",
"ref": "string",
"transl": "string",
"descr": "string",
"detailed": boolean
} ]
} |
StatsScheduleStatistics scheduling context to receive the reports
Name | Type | Cardinality | Description |
---|
name | string | [1] | Name of the report: the name must be unique. |
description | string | [0..1] | Description of the report |
obsPeriod | ScheduledSelPeriod | [1] | Period of observation |
frequency | ReportFrequency | [1] | Frequency of the reports |
recipients | string | [1..*] | Destination of the report (list of mail addresses) |
state | ScheduledState | [0..1] | State of execution of the report (only set by server) |
enable | boolean | [0..1] | Is this schedule enable (false if not present) |
lastExecDate | string | [0..1] | Last execution date |
fileType | FileType | [0..1] | Since version 2.7.4 Type of the result file |
[+] : JSON Example{
"name": "string",
"description": "string",
"obsPeriod": {
"periodType": "currentDay | currentWeek | currentMonth | lastDays | lastWeeks | lastMonth | ...",
"lastNb": int,
"beginDate": "string",
"endDate": "string"
},
"frequency": {
"periodicity": "once | daily | weekly | monthly",
"daysInWeek": [ "monday | tuesday | wednesday | thursday | friday | saturday | sunday" ],
"dayInMonth": int
},
"recipients": [ "string" ],
"state": "Not_executed | Executed | Failed_On_Get_Data | Failed_On_Send_Mail | ...",
"enable": boolean,
"lastExecDate": "string",
"fileType": "csv | xls"
} |
Associated methods :
StatsSchedulesList of stats schedules
Name | Type | Cardinality | Description |
---|
schedules | StatsSchedule | [0..*] | List of contexts |
[+] : JSON Example{
"schedules": [ {
"name": "string",
"description": "string",
"obsPeriod": {
"periodType": "currentDay | currentWeek | currentMonth | lastDays | lastWeeks | lastMonth | ...",
"lastNb": int,
"beginDate": "string",
"endDate": "string"
},
"frequency": {
"periodicity": "once | daily | weekly | monthly",
"daysInWeek": [ "monday | tuesday | wednesday | thursday | friday | saturday | sunday" ],
"dayInMonth": int
},
"recipients": [ "string" ],
"state": "Not_executed | Executed | Failed_On_Get_Data | Failed_On_Send_Mail | ...",
"enable": boolean,
"lastExecDate": "string",
"fileType": "csv | xls"
} ]
} |
Associated method :
StatsScopeSupervisor scope defines the list of agent numbers amongs which the supervisor can define a filter context
[+] : JSON Example{
"supervisor": {
"identifier": "string",
"language": "EN | FR | DE",
"timezone": "string"
},
"agents": [ {
"number": "string",
"loginName": "string",
"firstName": "string",
"lastName": "string",
"groupName": "string"
} ]
} |
Associated method :
StatsScopeAnswerName | Type | Cardinality | Description |
---|
Associated method :
string'string' represents character strings.
SupervisedDataSupervised agent information
Name | Type | Cardinality | Description |
---|
number | string | [1] | Supervised phone number |
loginName | string | [0..1] | application loginName |
firstName | string | [0..1] | firstName |
lastName | string | [0..1] | lastName |
groupName | string | [0..1] | groupName |
SupervisorDataSupervisor information (identifier, language, timezone)
Name | Type | Cardinality | Description |
---|
identifier | string | [1] | Supervisor identifier |
language | Language | [0..1] | language |
timezone | string | [0..1] | time zone used by the supervisor:
a string containing a valid UTC offset from "-11:00" to "+12:00" |
[+] : JSON Example{
"identifier": "string",
"language": "EN | FR | DE",
"timezone": "string"
} |
Associated method :