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.
(*) In that case, OXE users are OXE subscribers for whom the A4980 attribute (ClickAndPh) has been set to a value that differs from the NONE value.
Notes:
- Some OXE subscribers types can't have the right A4980 (Example: ANALOG devices).
- 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
(regardless of the value of their A4980 attribute) 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
History
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 '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 login is:
- For a user, the QMCDU of the OXE subscriber prefixed by "oxe" (Ex: oxe70120)
- For an administrator, a login found (managed) in the configuration file
The password is:
- For a user, the secret code of the OXE subscriber
- For an administrator, a password found (managed) in the configuration file
The credentials (login and password) are first checked to see if they correspond to an O2G administrator or an OXE subscriber.
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"
}
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 administrator 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 administrator 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 administrator 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. |
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 | |
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 | |
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. |
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,
"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). |
[+] : JSON Example{
"applicationName": "string",
"applicationAddress": "string",
"supervisedAccount": {
"id": "string",
"type": "LOGIN_NAME | PHONE_NUMBER"
}
} |
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
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 method :
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 | 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 | 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.
[+] : 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 |
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]
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 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 10 minutes 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 | |
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.
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 |
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
Associated notifications
/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 |
---|
PilotTransfertParam | 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": [ {
"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 |
/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"
},
"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"
},
"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"
},
"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"
},
"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. |
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. |
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"
},
"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"
},
"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"
},
"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.
[+] : JSON Example{
"deviceId": "string",
"state": "IN_SERVICE | OUT_OF_SERVICE | UNKNOWN"
} |
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"
} ]
} |
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. |
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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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"
} ]
} |
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"
},
"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"
},
"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"
},
"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"
},
"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"
},
"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 :
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 | ..."
} |
PilotTransfertParamDescribes transfer 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 but must be present if skills are given |
skills | ACRSkills | [0..1] | Skills associated to the call profile. Optional: the skills may be absent but if present, the agentNumber must be provided |
priorityTransfer | boolean | [0..1] | In case the transfer will a be priority one |
supervisedTransfer | boolean | [0..1] | In case the transfer will be supervised |
[+] : JSON Example{
"agentNumber": "string",
"skills": {
"skills": [ {
"skillNumber": int,
"acrStatus": boolean,
"expertEvalLevel": int
} ]
},
"priorityTransfer": boolean,
"supervisedTransfer": boolean
} |
Associated method :
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..*] | Gives the 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"
},
"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"
},
"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). |
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 | ..."
} ],
"beginDate": "dateTime",
"endDate": "dateTime",
"convDate": "dateTime",
"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 | ..."
} ],
"beginDate": "dateTime",
"endDate": "dateTime",
"convDate": "dateTime",
"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 | ..."
} ],
"beginDate": "dateTime",
"endDate": "dateTime",
"convDate": "dateTime",
"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 | ..."
} ],
"beginDate": "dateTime",
"endDate": "dateTime",
"convDate": "dateTime",
"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 ... |
[+] : 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 | ..."
} |
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 |
nbRecordedDevices | int | [0..1] | number of recorded devices |
recordedDevices | RecordedDevice | [0..*] | list of recorded devices |
[+] : JSON Example{
"identifier": "string",
"nbRecordedDevices": int,
"recordedDevices": [ {
"number": "string",
"recorded": boolean,
"recordingResource": "string",
"ip": boolean,
"sentFlowPort": int,
"receivedFlowPort": int
} ]
} |
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 |
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",
"nbRecordedDevices": int,
"recordedDevices": [ {
"number": "string",
"recorded": boolean,
"recordingResource": "string",
"ip": boolean,
"sentFlowPort": int,
"receivedFlowPort": int
} ]
} ]
} |
RecordedDeviceRecorded device identification with it recording resource
Name | Type | Cardinality | Description |
---|
number | string | [0..1] | device number |
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) |
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 |
string'string' represents character strings.
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 |
license | LicenseStatus | [0..1] | The total number of each license type available for the system |
configurationType | ConfigurationTypeDTO | [0..1] | Type of configuration |
[+] : 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",
"nbRecordedDevices": int,
"recordedDevices": [ {
"number": "string",
"recorded": boolean,
"recordingResource": "string",
"ip": boolean,
"sentFlowPort": int,
"receivedFlowPort": int
} ]
} ]
} ],
"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"
} |
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).
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
/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
/acd/agent/wrapUpMM
Methods
Put an ACD agent in WrapUp multi-media.
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.
|
multimedia | MultiMediaState | parameter to select which multi-media wrapUp: im, email, email interruptible, outbound or callback |
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 multimedia in im of the agent
request :POST https://server/api/rest/1.0/acd/agent/wrapUpMM?multimedia=IM
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 | |
WRAPUP_EMAIL | |
WRAPUP_EMAIL_INTERRUPTIBLE | |
WRAPUP_OUTBOUND | |
WRAPUP_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"
} |
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 |
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"
} |
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 :
MultiMediaStateMulti Media state: im, email, email interruptible, outbound, callback
Value | Description |
---|
IM | multimedia IM |
EMAIL | multimedia Email |
EMAIL_INTERRUPTIBLE | multimedia email interruptible |
OUTBOUND | multimedia OUTBOUND |
CALLBACK | multimedia CALLBACK |
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
}
]}
}
/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
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 |
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",
"waitingTime": int,
"saturation": boolean,
"rules": {
"ruleList": [ {
"ruleNumber": "string",
"name": "string",
"active": boolean
} ]
},
"possibleTransfer": boolean,
"supervisedTransfer": boolean
} |
Associated method :
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 |
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",
"waitingTime": int,
"saturation": boolean,
"rules": {
"ruleList": [ {
"ruleNumber": "string",
"name": "string",
"active": boolean
} ]
},
"possibleTransfer": boolean,
"supervisedTransfer": boolean
} ]
} |
Associated method :
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
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
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 60104 in node 1.
request :POST https://server/api/rest/1.0/acd/pilotmonitoring/1/60104
response :204 No Content
Associated notifications
Stop the monitoring 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 | 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 60104 in node 1.
request :DELETE https://server/api/rest/1.0/acd/pilotmonitoring/1/60104
response :204 No Content
Representations
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. |
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 |
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. |
[+] : JSON Example{
"eventName": "string",
"pilot": "string",
"caller": "string",
"callRef": "string",
"cause": "ABANDONED | ALL_TRUNK_BUSY | BUSY | CLEARED | PARTICIPANT_LEFT | CONFERENCED | ..."
} |
Associated method :
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 method :
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 method :
string'string' represents character strings.