Introduction

Overview

This package is not embedded in OXE, and it is able to address the installed OXE(s).
A subscriber will be considered and so monitored, only if its A4980 (ClickAndPh) attribut if different of "NONE".
Note: Some types can't have the right A4980(Example: ANALOG).

Each resource can be accessed through the following kind of URL:
http(s)://<host>:<port>/api/rest/<version>/<resource _name>
Where: 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.3",
		        "minor": "000.041"
		    },
		    "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"
	  	} ]
}

History

2.2.12.22.12.01.0.1

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 authentication is a HTTP basic authentication based for the users on the login(QMCDU)/secret code of the user.
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 must contain the Cookie header containing the content of the Set-Cookie received in authentication response :
Example:
  Request
	POST /api/rest/1.0/sessions HTTP/1.1

Content-Type: application/json
Host: 
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
	{ 
		"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"
		} ] 
	} 
  

  The response contains a Cookie provided by the Tomcat server.
  
  Important: All the subsequent requests invoked by the session MUST contain this cookie.
  Example with a subscription request:
  
  POST /api/rest/1.0/subscriptions HTTP/1.1
  Content-Type: application/json
  Host: 
  ...
  Cookie: JSESSIONID=88C00EA2B3C482E19825F1184D0BB50E.tomcat;
  
  

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:
typecodehelpMessagecanRetry
NOT_READY1000The server is not yet available. Please retry later if the initialization is not finished.true
INVALID_SESSION1001No valid session found for the given identifier. Please logout and login with correct credentials.true
NOT_ALLOWED1002The operation is not allowed, because of insufficient rights or bad credential. Please contact the administrator to fix the problem.false
NOT_FOUND1003Missing or bad parameter sent by a request on a service. Fix the problem and retry.true
NOT_EXPECTED1004The request can not be performed due to current user's state.Check the state or fix your request before sending it back.true
NOT_SUPPORTED1005This operation is not supported. Please check the documentation.false
BAD_PARAMETER1006Request parameters are not correct. Please fix the problem and send the request back.true
SERVER_PROBLEM1007Server 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.

Client code samples

Representations

boolean
'boolean' is a data type, having two values (true and false).
DestinationType
Lists the different types of a destination.
ValueDescription
OFFICEDestination is office device.
MOBILEDestination is mobile device.
VOICEMAILDestination is the voice mail of the user.
NUMBERDestination is a number.
Only for a standard user.
Used in forward routes.
UNKNOWNUnknown destination type.
HttpStatus
List of all HTTP status.
ValueDescription
CONTINUE100 Continue
SWITCHING_PROTOCOLS101 Switching Protocols
PROCESSING102 Processing
OK200 OK
CREATED201 Created
ACCEPTED202 Accepted
NON_AUTHORITATIVE_INFORMATION203 Non-Authoritative Information
NO_CONTENT204 No Content
RESET_CONTENT205 Reset Content
PARTIAL_CONTENT206 Partial Content
MULTI_STATUS207 Multi-Status
ALREADY_REPORTED208 Already Reported
IM_USED226 IM Used
MULTIPLE_CHOICES300 Multiple Choices
MOVED_PERMANENTLY301 Moved Permanently
FOUND302 Found
MOVED_TEMPORARILY302 Moved Temporarily
SEE_OTHER303 See Other
NOT_MODIFIED304 Not Modified
USE_PROXY305 Use Proxy
TEMPORARY_REDIRECT307 Temporary Redirect
BAD_REQUEST400 Bad Request
UNAUTHORIZED401 Unauthorized
PAYMENT_REQUIRED402 Payment Required
FORBIDDEN403 Forbidden
NOT_FOUND404 Not Found
METHOD_NOT_ALLOWED405 Method Not Allowed
NOT_ACCEPTABLE406 Not Acceptable
PROXY_AUTHENTICATION_REQUIRED407 Proxy Authentication Required
REQUEST_TIMEOUT408 Request Timeout
CONFLICT409 Conflict
GONE410 Gone
LENGTH_REQUIRED411 Length Required
PRECONDITION_FAILED412 Precondition failed
REQUEST_ENTITY_TOO_LARGE413 Request Entity Too Large
REQUEST_URI_TOO_LONG414 Request-URI Too Long
UNSUPPORTED_MEDIA_TYPE415 Unsupported Media Type
REQUESTED_RANGE_NOT_SATISFIABLE416 Requested Range Not Satisfiable
EXPECTATION_FAILED417 Expectation Failed
INSUFFICIENT_SPACE_ON_RESOURCE419 Insufficient Space on Resource
METHOD_FAILURE420 Method Failure
DESTINATION_LOCKED421 Destination Locked
UNPROCESSABLE_ENTITY422 Unprocessable Entity
LOCKED423 Locked
FAILED_DEPENDENCY424 Failed Dependency
UPGRADE_REQUIRED426 Upgrade Required
INTERNAL_SERVER_ERROR500 Internal Server Error
NOT_IMPLEMENTED501 Not Implemented
BAD_GATEWAY502 Bad Gateway
SERVICE_UNAVAILABLE503 Service Unavailable
GATEWAY_TIMEOUT504 Gateway Timeout
HTTP_VERSION_NOT_SUPPORTED505 HTTP Version Not Supported
VARIANT_ALSO_NEGOTIATES506 Variant Also Negotiates
INSUFFICIENT_STORAGE507 Insufficient Storage
LOOP_DETECTED508 Loop Detected
NOT_EXTENDED510 Not Extended
int
'int' is a 32-bit number (-2147483648 to 2147483647).
ProductVersion
Give information about the version installed on the server.
NameTypeCardinalityDescription
majorstring[0..1]Major version of the product. This field should help to identify the release of a product.
minorstring[0..1]Minor revision of the product. This field is for internal needs.
[+] : JSON Example
RestErrorInfo
Contains all information from errors sent while invoking REST operations on resources.
NameTypeCardinalityDescription
httpStatusHttpStatus[0..1]The HTTP status.
codeint[0..1]A REST API error code, linked with the above type, to help the user's application to quickly differentiate possible errors.
helpMessagestring[0..1]A help message, associated with the above type and code, providing a more detailed cause of the error.
typestring[0..1]A REST API error type, which group all possible underlying errors in a finite number of possibilities.
innerMessagestring[0..1]This message contains relevant information to help an administrator or support team to find the cause of the problem.
canRetryboolean[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.
routingRoutingErrorInfo[0..1]

Since version 2.1

Extra details if errors are generated by a routing service request.
telephonyTelephonyErrorInfo[0..1]

Since version 2.1

Extra details if errors are generated by a telephony service request.
userPreferencesUserPreferencesErrorInfo[0..1]

Since version 2.1

Extra details if errors are generated by a userPreferences service request.
[+] : JSON Example
RoutingErrorCause
Lists the different routing error causes.
ValueDescription
UNKNOWNUnknown routing error cause.
BAD_PHONE_NUMBER_FORMATThe 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_DEVICEThe 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_ROUTEThe 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_ROUTEThe 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_PARAMETERParameter must not be null nor empty.
NULL_PARAMETERParameter must not be null.
UNAUTHORIZED_CANCEL_OVERFLOWCancel overflow has been rejected because of barring rules.
UNAUTHORIZED_NOT_A_USERThe destination type is set to USER, but the number does not correspond to a user.
UNAUTHORIZED_OVERFLOWOverflow has been rejected because of barring rules.
UNAUTHORIZED_PHONE_NUMBERThe 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.
RoutingErrorInfo
Complementary information for routing errors.
NameTypeCardinalityDescription
errorTypeRoutingErrorType[0..1]The routing error type.
destinationTypeDestinationType[0..1]The routing destination for which the error occurred.
errorCauseRoutingErrorCause[0..1]The probable routing error cause.
messagestring[0..1]An additional textual error information provided by the routing service.
[+] : JSON Example
RoutingErrorType
Lists the different routing error types.
ValueDescription
UNKNOWNUnknown routing error.
BAD_PARAMETER_VALUEThe routing service has rejected the request for a bad or missing parameter reason.
UNAUTHORIZEDRouting 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_OPERATIONRequested operation is not supported by the routing service.
INCOMPLETE_PHONE_NUMBERThe 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_NUMBERThe provided phone number can not be resolved in the current dial plan. Example:
  • Setting route with a destination type NUMBER, containing an unknown number.
RoxeRestApiDescriptor
High level information of the server and supported REST API versions.
NameTypeCardinalityDescription
serverInfoServerInfo[0..1]Provide extra information about the server hosting the REST API.
versionsVersion[1..*]List of the versions supported on the server.
custoFeaturesstring[0..*]List of customized feature (informative) added on the server.
[+] : JSON Example
ServerInfo
Provide information on the server.
NameTypeCardinalityDescription
productNamestring[1]Friendly description of the product.
productTypestring[1]Short name of the product.
productVersionProductVersion[0..1]Version of the product.
haModeboolean[0..1]Indicate if the server is in High Availability mode.
[+] : JSON Example
string
'string' represents character strings.
TelephonyErrorCause
Lists the different telephony error causes.
ValueDescription
UNKNOWNUnknown telephony error cause.
INVALID_CALLINGThe call server can not process the request because the calling device is not an acceptable one.
INVALID_DESTINATIONDestination is not a correct number.
INVALID_CALL_IDThe referenced call identifier is not valid.
INVALID_CONNECTION_STATEThe current state of the call does not permit
DEVICE_OUT_OF_SERVICEThe device is not in service.
INVALID_DEVICEThe device is not in valid.
INVALID_DEVICE_STATEThe device state is incompatible with the request.
INVALID_DATAThe data parameter has invalid value.
RESOURCE_BUSYThe destination is busy. All the user phone lines are already engaged.
TelephonyErrorInfo
Complementary information for telephony errors.
NameTypeCardinalityDescription
errorTypeTelephonyErrorType[0..1]The telephony error type.
errorCauseTelephonyErrorCause[0..1]The probable telephony error cause.
messagestring[0..1]An additional textual error information provided by the telephony service.
[+] : JSON Example
TelephonyErrorType
Lists the different telephony error types.
ValueDescription
UNKNOWNUnknown telephony error.
CALL_REFERENCE_NOT_FOUNDAny operations involving an invalid call reference.
LEG_NOT_FOUNDThe 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_VALUESome 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_STATEThe 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_PROVIDEDThe telephony service can not execute the request because the corresponding service is not provided in this context.
SERVICE_UNAVAILABLEThe 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.
INITIALIZATIONThe telephony service is starting up and has not finished its initialization.
UNAUTHORIZEDTelephony 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_ERRORTelephony service request failed because of an error generated by the call server. More details can be provided by the call server TelephonyErrorCause.
REQUEST_TIMEOUTAn operation invoked on the telephony service has exceeded the expected response timeout (default 5 seconds).
UserPreferencesErrorInfo
Complementary information for userPreferences errors.
NameTypeCardinalityDescription
errorTypeUserPreferencesErrorTypeDTO[0..1]Precision on error
parameterUserPreferencesParameterDTO[0..1]Parameter name
[+] : JSON Example
UserPreferencesErrorTypeDTO
ValueDescription
UNKNOWNUnexpected error
WRONG_VALUEValue not expected
WRONG_NUMBER_FORMATWrong number format
UserPreferencesParameterDTO
ValueDescription
GUI_LANGUAGEUser GUI language
Version
NameTypeCardinalityDescription
idstring[1]Identifier of the version (e.g. '1.0').
statusstring[1]Status of the given version. 'CURRENT' means this is the latest version on the server.
publicUrlstring[1]Authentication URL to use from public (i.e. internet) access.
internalUrlstring[1]Authentication URL to use from private (i.e. intranet) access.
[+] : JSON Example

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.

Resources summary

ResourceMethodDescription
/sessionsGETGets information of the opened session.
POSTOpen a session for a user or an administrator.
DELETECloses a Session.
/sessions/keepalivePOSTRestarts the session timer.

Resources

/sessions

Methods
GET/sessions
Gets information of the opened session.
Licenses
No license required.
Request
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200SessionInfoapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
POST/sessions
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 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).
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. The session timer can be managed through this service (HEAD operation). It conveys this authentication key as a cookie which will be used to identify the previously authenticated user.

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
No license required.
Request
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
SessionRequestapplication/json
This element is used to open a Session.
Response
codetypemedia typesdescription
200SessionInfoapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Creation of a user session

[+] : Creation of an administrator session

[+] : Creation of a supervised user session

[+] : Creation of a session with a token

DELETE/sessions
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
No license required.
Request
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content (The session is closed)
400application/json
Bad Request
403application/json
Forbidden (The session is already closed)
500application/json
Internal Server Error (The session doesn't exist)
503application/json
Service Unavailable

/sessions/keepalive

Methods
POST/sessions/keepalive
Restarts the session timer.
To keep the session open, if there is no request before session timeout.

Each Session is limited in time.
By default, the duration of a Session is the one defined in administration.
Each time a Session is used 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
No license required.
Request
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200SessionTokenInfoapplication/json
OK (in case a secure token has been used to create the session)}
204application/json
No Content (The session timer has been correctly refreshed)
400application/json
Bad Request
403application/json
Forbidden (The session doesn't exist)
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : KeepaLive of a session with a token

Representations

boolean
'boolean' is a data type, having two values (true and false).
int
'int' is a 32-bit number (-2147483648 to 2147483647).
Service
This value contains all available information about a local service.
NameTypeCardinalityDescription
serviceNamestring[1]This value contains the name of the service.
serviceVersionstring[0..1]This value contains the version of the service, which allows an application to check its compatibility with the service.
relativeUrlstring[1]This value contains the relative URL of the service, which allows a consumer to access it.
[+] : JSON Example
SessionInfo
Session information.
NameTypeCardinalityDescription
adminboolean[0..1]Indicate if the session has been opened by an administrator.
timeToLiveint[0..1]The duration of the Session in seconds.
publicBaseUrlstring[0..1]This value contains the public base URL which must be used by a consumer to access services from the Internet.
privateBaseUrlstring[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.
servicesService[0..*]All information available about the local services provided by public API for the current user.
expirationDatestring[0..1]in case of secured token used to create the session, the expiration date of the token
[+] : JSON Example
Associated methods :
SessionRequest
This element is used to open a Session.
NameTypeCardinalityDescription
applicationNamestring[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).
applicationAddressstring[0..1]Application address.
supervisedAccountSupervisedAccount[0..1]Identifier used to retrieve the supervised user (Administrator authentication but user session).
[+] : JSON Example
Associated method :
SessionTokenInfo
Session information on Keep alive when a secured token is used
NameTypeCardinalityDescription
expirationDatestring[0..1]in case of secured token used to create the session, the expiration date of the token
[+] : JSON Example
Associated method :
string
'string' represents character strings.
SupervisedAccount
The supervised user description.
NameTypeCardinalityDescription
idstring[1]The identifier itself. The type of this value is given by the SupervisedAccountType attribute.
typeSupervisedAccountType[1]Gives the type of the identifier.
[+] : JSON Example
SupervisedAccountType
The supervised account type values.
ValueDescription
LOGIN_NAMEThe identifier is a login name.
PHONE_NUMBERThe identifier is a phone number.

User information

Presentation

The User service allows

Resources summary

ResourceMethodDescription
/loginsGETAn administrator can get the list of the users (login name).
/usersGETFind information about a user from a company phone.
/users/{loginName}GETGets information about a user account.
/users/{loginName}/passwordPUTChange user's password.
/users/{loginName}/preferencesGETGets information about user's preferences.
POSTUpdates information about user's preferences.
/users/{loginName}/preferences/supportedLanguagesGETGets information about supported languages for user's GUI language preference:
  • Supported languages
  • ...

Notifications summary

NotificationDescription
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).

OnUserInfoChangedThis event is sent on any change on the user's data.

Resources

/logins

Methods
GET/logins
An administrator can get the list of the users (login name).
For a user, only personal information (login name) is returned.
Licenses
No license required.
Request
query parameters
parametertypedescription
nodeIdsstringThis 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).
onlyACDbooleanThis 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).
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200LoginsResponseapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get information with a user role. The session was opened by a user.

[+] : Get all user's logins with an administrator role. The session was opened by an administrator.

[+] : Get all user's logins belonging to OXE node 7 or 8. The session was opened by an administrator.

[+] : Get all user's logins corresponding to ACD operators (agents or supervisors) The session was opened by an administrator.

[+] : 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.

/users

Methods
GET/users
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
No license required.
Request
query parameters
parametertypedescription
companyPhonestringCompany phone of the user to retrieve the account description.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the result code and, if the code is SUCCESS, information about the concerned user User
codetypemedia typesdescription
200Userapplication/json
Returns the result code and, if the code is SUCCESS, information about the concerned user User
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get information about another user's account.

/users/{loginName}

Methods
GET/users/{loginName}
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
No license required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user to retrieve the account description.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the result code and, if the code is SUCCESS, information about the concerned user User
codetypemedia typesdescription
200Userapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get information about the user's account for which the session is opened.

Associated notifications

/users/{loginName}/password

Methods
PUT/users/{loginName}/password
Change user's password.
This operation allows a user or an administrator to change its password
Licenses
No license required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user to change the password.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
ChangePasswordRequestcontaining the old and the new passwords
Response
Returns the result code and
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable

/users/{loginName}/preferences

Methods
GET/users/{loginName}/preferences
Gets information about user's preferences.
This operation provides useful information to the application:
  • User's GUI language
  • ...
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
No license required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user to retrieve the preferences.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the result code and, if the code is SUCCESS, preferences about the concerned user UserPreferences
codetypemedia typesdescription
200UserPreferencesapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get user's preferences for which the session is opened.

POST/users/{loginName}/preferences
Updates information about user's preferences.
This operation provides useful information to the application:
Licenses
No license required.
Request
path parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
UserPreferencesapplication/json
Response
Returns the result code.
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : set user's preferences for which the session is opened.

Associated notifications
OnPreferencesChanged

/users/{loginName}/preferences/supportedLanguages

Methods
GET/users/{loginName}/preferences/supportedLanguages
Gets information about supported languages for user's GUI language preference:
  • Supported languages
  • ...
Licenses
No license required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user to retrieve the supported languages.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the result code and, if the code is SUCCESS, supported languages about the concerned user
codetypemedia typesdescription
200SupportedLanguagesapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get user's supported languages for which the session is opened.

Representations

ChangePasswordRequest
Request to change password of the user
NameTypeCardinalityDescription
oldPasswordstring[1]Old password
newPasswordstring[1]New password
[+] : JSON Example
Associated method :
Device
Describe a device.
NameTypeCardinalityDescription
typeDeviceType[0..1]Device's type.
idstring[0..1]Device identifier which is used to identify the device in telephony requests and events.
subTypestring[0..1]Device's subtype : For a DESKPHONE type, we could have : ANALOG, NOE_C_Color_IP, ...
[+] : JSON Example
Associated method :
DeviceType
The device type values.
ValueDescription
DECTA wireless phone set used within the enterprise.
DESKPHONEA phone set on an office's desk.
MOBILEA mobile phone.
SOFTPHONEA phone started from a computer with VOIP.
LoginsResponse
The get logins response.
NameTypeCardinalityDescription
loginNamesstring[1..*]List of logins matching the request.
[+] : JSON Example
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).

NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnUserCreated'
userUser[1]The created user object.
[+] : JSON Example
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).

NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnUserDeleted'
loginNamestring[1]The login name of the deleted user.
[+] : JSON Example
OnUserInfoChanged
This event is sent on any change on the user's data.
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnUserInfoChanged'
loginNamestring[0..1]Login name of the user receiving the event.
userUser[1]The changed user object.
[+] : JSON Example
Associated method :
string
'string' represents character strings.
SupportedLanguages
The get supported languages.
NameTypeCardinalityDescription
supportedLanguagesstring[1..*]List of supported languages.
supportedGuiLanguagesstring[0..*]

Since version 2.2.1

Gets the value of the GUI supported languages list.
[+] : JSON Example
Associated method :
User
The description of a user
NameTypeCardinality*1Description
companyPhonestring[0..1]User's company phone number.
firstNamestring[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.
lastNamestring[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.
loginNamestring[0..1]Login name which identifies the User Account.
voicemailVoicemail[0..1]User's voicemail description.
devicesDevice[0..*]XUser's devices.
nodeIdstring[0..1]Node Id on which user is attached
*1 : attribute only provided if the user is the session's owner or for an administrator session.

[+] : JSON Example
Associated methods :
UserPreferences
The preferences of a user
NameTypeCardinalityDescription
guiLanguagestring[0..1]GUI Language of the User or the Administrator.
oxeLanguagestring[0..1]

Since version 2.2.1

OXE Language of the User or the Administrator.
[+] : JSON Example
Associated methods :
Voicemail
Describes user's voicemail.
NameTypeCardinalityDescription
numberstring[1]Voicemail number.
typeVoicemailType[1]Voicemail type.
[+] : JSON Example
VoicemailType
Voicemail type values
ValueDescription
VM_4635Integrated 46x5 voice mail system
VM_4645Integrated 46x5 voice mail system
EXTERNALExternal 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:

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:

To declare these events or packages in a subscription request, one or several selectors must be used (at least one per event package).

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:

A subscription response will provide following information to the user:

The following remarks must be taken in consideration while designing a REST client using Http chunk mode:


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:

Resources summary

ResourceMethodDescription
/subscriptionsPOSTCreate a subscription for event notification.
PUTUpdate an existing subscription for event notification.
/subscriptions/{subscriptionId}DELETERemove a subscription.

Resources

/subscriptions

Methods
POST/subscriptions
Create a subscription for event notification.
Licenses
The license(s) required on subscription depend on the features asked in the filter.
Request
cookie parameters
parametertypedescription
AlcUserIdstringThe user framework session Identifier, received as a cookie.
body parameter
typemedia typesdescription
SubscriptionRequestapplication/json
Response
Returns the subscription response (which contains the subscription state).
codetypemedia typesdescription
200Subscriptionapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Create a subscription to all events of the telephony, eventSummary event packages, for user userA.

[+] : Create a refused subscription to all events of the telephony, eventSummary and user event packages, for userA, userB, userC. This subscription will be refused because of exceeded license check. for user userA.

[+] : Create a subscription to telephony event packages, for all users of the system.

[+] : Create a subscription to system event package.

[+] : Create a subscription to pbxManagement event package.

[+] : Create a subscription with webhook on https address (and port=8091)

PUT/subscriptions
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
The license(s) required on subscription depend on the features asked in the filter.
Request
cookie parameters
parametertypedescription
AlcUserIdstringThe user framework session Identifier, received as a cookie.
body parameter
typemedia typesdescription
Filterapplication/json
The filter to update. Filter
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Update a subscription for all events of the telephony, eventSummary event packages, for user userA and userB.

/subscriptions/{subscriptionId}

Methods
DELETE/subscriptions/{subscriptionId}
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
No license required.
Request
path parameters
parametertypedescription
subscriptionIdstringThe identifier of the subscription.
cookie parameters
parametertypedescription
AlcUserIdstringThe user framework session Identifier, received as a cookie.
Response
The result code.
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
Examples

[+] : Delete an existing subscription. Associated notification channel will be closed, if already opened.

Representations

Filter
High level container of event selector.
NameTypeCardinalityDescription
selectorsSelector[0..*]List of selectors.
[+] : JSON Example
Associated method :
int
'int' is a 32-bit number (-2147483648 to 2147483647).
Selector
A 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.
NameTypeCardinalityDescription
idsstring[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).
namesstring[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.
[+] : JSON Example
string
'string' represents character strings.
Subscription
Contains the status returned by the server on a subscription request.
NameTypeCardinalityDescription
subscriptionIdstring[0..1]The identifier of the subscription, if this one has been accepted.
messagestring[0..1]Contains a relevant message, especially in case of error or failure.
publicPollingUrlstring[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).
privatePollingUrlstring[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).
statusSubscriptionState[1]Status of the subscription returned by the server.
[+] : JSON Example
Associated method :
SubscriptionRequest
Contains all information needed for subscription to event notification.
NameTypeCardinalityDefaultDescription
filterFilter[0..1]List of selector used to filter events.
sessionIdstring[0..1]

Reserved: DO NOT USE.

versionstring[1]The version of the events the user wants to subscribe to.
timeoutint[0..1]10Default 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.

[+] : JSON Example
Associated method :
SubscriptionState
Defines the response status of the server on a subscription request.
ValueDescription
UNKNOWNSubscription state is unknown.
ACCEPTEDFull subscription has been accepted.
REFUSEDThe subscription has been refused.

Call control

Presentation

The Telephony service allows a user to initiate a call and to activate any kind of pbx telephony service.

Resources summary

ResourceMethodDescription
/telephony/basicCallPOSTInitiates a call to another user (the callee).
/telephony/basicCall/answerPOSTResponds to the incoming ringing call.
/telephony/basicCall/dropmePOSTExits 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/callsGETGet information on all the calls in progress.
POSTInitiates a new call to another user (the callee).
/telephony/calls/{callRef}GETReturns a description of a call.
DELETEHangs on an active call, all the parties are released.
/telephony/calls/{callRef}/alternatePOSTPuts on hold the active call and retrieve a call that has been previously put in hold.
/telephony/calls/{callRef}/answerPOSTResponds to an incoming ringing call.
/telephony/calls/{callRef}/attachdataPOSTAssociates data to a call, following a previously established call.
/telephony/calls/{callRef}/blindtransferPOSTTransfers a specified active call to another user, without knowing if this user will answer and without keeping control on this call.
/telephony/calls/{callRef}/callbackPOSTRequests for call back during a call.
/telephony/calls/{callRef}/deviceLegsGETReturns the legs involved in the call
/telephony/calls/{callRef}/deviceLegs/{legId}GETReturns the leg whose Id is legId
POSTTranslates the call from a user device to another device.
/telephony/calls/{callRef}/dropmePOSTExits 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}/holdPOSTHolds a specified active call.
/telephony/calls/{callRef}/mergePOSTMakes a n-party conference with a specified active call and a specified held call.
/telephony/calls/{callRef}/overflowToVoiceMailPOSTRedirects an outgoing ringing call to the voice mail of the called user.
/telephony/calls/{callRef}/parkPOSTPark a specified active call to a target device.
/telephony/calls/{callRef}/participantsGETReturns the list of participants in a call.
/telephony/calls/{callRef}/participants/{participantId}GETReturns information about a participant in a call.
DELETEDrops 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}/reconnectPOSTRelease a current call (active or ringing) to retrieve a previously put in hold call (cancel a consultation call).
/telephony/calls/{callRef}/recordingPOSTStarts, stops, pauses or resumes the recording of a call.
/telephony/calls/{callRef}/redirectPOSTRedirects an incoming ringing call to another user or number, instead of responding to it.
/telephony/calls/{callRef}/retrievePOSTRetrieves a call that has been previously put in hold.
/telephony/calls/{callRef}/sendDtmfPOSTSends DTMF in an active call.
/telephony/calls/{callRef}/sendaccountinfoPOSTSend the account info.
/telephony/calls/{callRef}/transferPOSTTransfers a specified active call to a specified held call.
/telephony/deskSharingPOSTLog the user (DSU) on a specified device (DSS).
DELETELogoff the DSU user.
/telephony/devicesGETGets states of all user devices
/telephony/devices/{deviceId}GETGets a user device state
/telephony/devices/{deviceId}/pickupPOSTPicks up an incoming call on another user.
/telephony/devices/{deviceId}/unparkPOSTUnPark a call from a target device.
/telephony/huntingGroupLogOnGETGet the user status in its current hunting group: logged on or not
POSTLog the user in its current hunting group.
DELETELogout the user from its current hunting group.
/telephony/huntingGroupMember/{hgNumber}POSTSet the user as member of a Hunting group.
DELETERemove the user from a Hunting group.
/telephony/huntingGroupsGETGet the Hunting groups of the node and eventually the current one the user belongs to.
/telephony/incomingCallbacksGETReturns the whole list of callback requests.
DELETEDeletes all callback requests.
/telephony/incomingCallbacks/{callbackId}DELETEDeletes a callback request.
/telephony/miniMessagesGETReturns the current new message.
POSTSend a mini message.
/telephony/outgoingCallbacksPOSTRequests for call back from an idle device.
/telephony/stateGETAsks for the user telephonic state and capabilities.
/telephony/state/snapshotPOSTAsk a snapshot event on user call state.

Notifications summary

NotificationDescription
OnCallCreatedThis notification indicates that a new call has been created.
OnCallModifiedThis notification indicates that an existing call has been modified.
OnCallRemovedThis notification indicates that a call has been removed (hang up, transfer...).
OnDeviceStateModifiedThis notification indicates that device's state has been modified.
OnDynamicStateChangedThis notification indicates the user's dynamic state change.
OnTelephonyStateThis notification indicates the telephonic state (calls[] and deviceCapabilities[]) of a user
OnUserStateModifiedThis notification indicates that user's state has been modified (FREE, BUSY ...).

Resources

/telephony/basicCall

Methods
POST/telephony/basicCall
Initiates a call to another user (the callee). Also used to initiate a call from any connected set which is not associated to an OpenTouch user.
Licenses
The license TELEPHONY_BASIC or TELEPHONY_ADVANCED is required.
Request
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
MakeBasicCallRequestapplication/json
MakeBasicCallRequest
Response
codetypemedia typesdescription
201stringapplication/json
CREATED
204application/json
No Content Only for a call from a connected set which is not associated to an OpenTouch user
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Initiates a call to another user (the callee)

[+] : Initiates a call from any connected set which is not associated to an OpenTouch user.

Associated notifications

/telephony/basicCall/answer

Methods
POST/telephony/basicCall/answer
Responds to the incoming ringing call.
Licenses
The license TELEPHONY_BASIC or TELEPHONY_ADVANCED is required.
Request
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
AnswerRequestapplication/json
AnswerRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

/telephony/basicCall/dropme

Methods
POST/telephony/basicCall/dropme
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
The license TELEPHONY_BASIC or TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

/telephony/calls

Methods
GET/telephony/calls
Get information on all the calls in progress.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200Callsapplication/json
OK
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
POST/telephony/calls
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 OpenTouch user, don't fill the bypass, associatedData, pin, secretCode or businessCode parameters.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
MakeCallRequestapplication/json
MakeCallRequest
Response
codetypemedia typesdescription
201stringapplication/json
CREATED
204application/json
No Content Only for a call from a connected set which is not associated to an OpenTouch user
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Initiates a call to another user (the callee)

[+] : Initiates a Private call.

[+] : Initiates a Business call.

[+] : Initiates an ACD call from an agent to a supervisor (no callee)

Associated notifications

/telephony/calls/{callRef}

Methods
GET/telephony/calls/{callRef}
Returns a description of a call.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringCall reference.
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200Callapplication/json
OK
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
DELETE/telephony/calls/{callRef}
Hangs on an active call, all the parties are released.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringCall reference.
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

/telephony/calls/{callRef}/alternate

Methods
POST/telephony/calls/{callRef}/alternate
Puts on hold the active call and retrieve a call that has been previously put in hold.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringreference of the held call.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
AlternateRequestapplication/json
AlternateRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

/telephony/calls/{callRef}/answer

Methods
POST/telephony/calls/{callRef}/answer
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
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringCall reference.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
AnswerRequestapplication/json
AnswerRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

/telephony/calls/{callRef}/attachdata

Methods
POST/telephony/calls/{callRef}/attachdata
Associates data to a call, following a previously established call. Associates data can be encoded as clear string or binary encoded string
History
Since version 2.1
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringCall reference.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
SendAssociatedDataRequestapplication/json
SendAssociatedDataRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : during incoming call (ringing state), 70125 attaches clear string data to the call

[+] : during incoming call (ringing state), 70125 attaches binary encoded data to the call

/telephony/calls/{callRef}/blindtransfer

Methods
POST/telephony/calls/{callRef}/blindtransfer
Transfers a specified active call to another user, without knowing if this user will answer and without keeping control on this call.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringReference of the active call.
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
BlindTransferRequestapplication/json
BlindTransferRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

/telephony/calls/{callRef}/callback

Methods
POST/telephony/calls/{callRef}/callback
Requests for call back during a call.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringReference of the active call.
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable

/telephony/calls/{callRef}/deviceLegs

Methods
GET/telephony/calls/{callRef}/deviceLegs
Returns the legs involved in the call
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringCall reference.
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200Legsapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable

/telephony/calls/{callRef}/deviceLegs/{legId}

Methods
GET/telephony/calls/{callRef}/deviceLegs/{legId}
Returns the leg whose Id is legId
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringCall reference.
legIdstringLeg reference
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200Legapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
POST/telephony/calls/{callRef}/deviceLegs/{legId}
Translates the call from a user device to another device.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringCall reference.
legIdstringLeg reference
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
SwitchDeviceRequestapplication/json
SwitchDeviceRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : switch the call from the device 70123 to the device 70125

Associated notifications

/telephony/calls/{callRef}/dropme

Methods
POST/telephony/calls/{callRef}/dropme
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
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringCall reference.
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

/telephony/calls/{callRef}/hold

Methods
POST/telephony/calls/{callRef}/hold
Holds a specified active call.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringCall reference.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
HoldRequestapplication/json
HoldRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

/telephony/calls/{callRef}/merge

Methods
POST/telephony/calls/{callRef}/merge
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
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringReference of the active call.
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
MergeRequestapplication/json
MergeRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

/telephony/calls/{callRef}/overflowToVoiceMail

Methods
POST/telephony/calls/{callRef}/overflowToVoiceMail
Redirects an outgoing ringing call to the voice mail of the called user.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringCall reference.
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

/telephony/calls/{callRef}/park

Methods
POST/telephony/calls/{callRef}/park
Park a specified active call to a target device. If the device is not provided (in the ParkRequestDTO), the call will be parked on the current device.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringReference of the active call to park.
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
ParkRequestapplication/json
ParkRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

/telephony/calls/{callRef}/participants

Methods
GET/telephony/calls/{callRef}/participants
Returns the list of participants in a call.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringCall reference.
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200Participantsapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable

/telephony/calls/{callRef}/participants/{participantId}

Methods
GET/telephony/calls/{callRef}/participants/{participantId}
Returns information about a participant in a call.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringCall reference.
participantIdstringReference of the participant
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200Participantapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
DELETE/telephony/calls/{callRef}/participants/{participantId}
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
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringCall reference.
participantIdstringReference of the participant
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

/telephony/calls/{callRef}/reconnect

Methods
POST/telephony/calls/{callRef}/reconnect
Release a current call (active or ringing) to retrieve a previously put in hold call (cancel a consultation call).
History
Since version 2.2.1
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringReference of the held call to reactive.
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
ReconnectRequestapplication/json
ReconnectRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : cancel the enquiry call ref2 and reconnect the call ref1 from the device 60113

Associated notifications

/telephony/calls/{callRef}/recording

Methods
POST/telephony/calls/{callRef}/recording
Starts, stops, pauses or resumes the recording of a call.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringReference of the active call.
query parameters
parametertypedescription
loginNamestringLogin 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.
actionstringMandatory parameter. Possible values are start, stop, pause, resume.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Start a record

[+] : Pause a record

[+] : Resume a record

[+] : Stop a record

Associated notifications

/telephony/calls/{callRef}/redirect

Methods
POST/telephony/calls/{callRef}/redirect
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. If redirectTo is equal to DVA Redirect an incoming ringing call to DVA.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringCall reference.
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
RedirectRequestapplication/json
RedirectRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Redirect an incoming ringing call to DVA

Associated notifications

/telephony/calls/{callRef}/retrieve

Methods
POST/telephony/calls/{callRef}/retrieve
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
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringCall reference.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
RetrieveRequestapplication/json
RetrieveRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

/telephony/calls/{callRef}/sendDtmf

Methods
POST/telephony/calls/{callRef}/sendDtmf
Sends DTMF in an active call.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringCall reference.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
SendDtmfRequestapplication/json
SendDtmfRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable

/telephony/calls/{callRef}/sendaccountinfo

Methods
POST/telephony/calls/{callRef}/sendaccountinfo
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)
History
Since version 2.1
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringCall reference.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
SendAccountInfoRequestapplication/json
SendAccountInfoRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : during incoming call (ringing state), agent 70125 sends an account information associated to the call

/telephony/calls/{callRef}/transfer

Methods
POST/telephony/calls/{callRef}/transfer
Transfers a specified active call to a specified held call.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callRefstringReference of the active call
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
TransferRequestapplication/json
TransferRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

/telephony/deskSharing

Methods
POST/telephony/deskSharing
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.
History
Since version 2.1
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
DSLogOnRequestapplication/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
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Log-on the DSU user onto the DSS device "xxxx"

DELETE/telephony/deskSharing
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.

History
Since version 2.1
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Log-off the DSU user

/telephony/devices

Methods
GET/telephony/devices
Gets states of all user devices
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200DeviceStatesapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable

/telephony/devices/{deviceId}

Methods
GET/telephony/devices/{deviceId}
Gets a user device state
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
deviceIdstringDevice 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 parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200DeviceStateapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable

/telephony/devices/{deviceId}/pickup

Methods
POST/telephony/devices/{deviceId}/pickup
Picks up an incoming call on another user.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
deviceIdstringDevice 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
PickupRequestapplication/json
PickupRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

/telephony/devices/{deviceId}/unpark

Methods
POST/telephony/devices/{deviceId}/unpark
UnPark a call from a target device. If the call has been parked on the current device, the target device (contained in the ParkRequestDTO) should be omitted.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
deviceIdstringdevice from where the unpark request is requested.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
UnParkRequestapplication/json
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

/telephony/huntingGroupLogOn

Methods
GET/telephony/huntingGroupLogOn
Get the user status in its current hunting group: logged on or not
History
Since version 2.2
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200HuntingGroupStatusapplication/json
Ok
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get the user status in its hg group

POST/telephony/huntingGroupLogOn
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.
History
Since version 2.2
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Log the user into its current hg group

Associated notifications
DELETE/telephony/huntingGroupLogOn
Logout the user from its current hunting group.
NB: The user must belong to a group.
History
Since version 2.2
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Logout the user from its hg group

Associated notifications

/telephony/huntingGroupMember/{hgNumber}

Methods
POST/telephony/huntingGroupMember/{hgNumber}
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
History
Since version 2.2
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
hgNumberstringstring : the hunting group number
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found if the group doesn't exist
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Set the user member of the hg group number 10001

DELETE/telephony/huntingGroupMember/{hgNumber}
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
History
Since version 2.2
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
hgNumberstringstring : the hunting group number
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found if the group doesn't exist
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Remove the user member from the hg group number 10001

/telephony/huntingGroups

Methods
GET/telephony/huntingGroups
Get the Hunting groups of the node and eventually the current one the user belongs to.
History
Since version 2.2
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200HuntingGroupResultapplication/json
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get the hg list (the user belongs to the hg 10001)

/telephony/incomingCallbacks

Methods
GET/telephony/incomingCallbacks
Returns the whole list of callback requests.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200Callbacksapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
DELETE/telephony/incomingCallbacks
Deletes all callback requests.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable

/telephony/incomingCallbacks/{callbackId}

Methods
DELETE/telephony/incomingCallbacks/{callbackId}
Deletes a callback request.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
callbackIdstringidentifier of the callback to delete
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable

/telephony/miniMessages

Methods
GET/telephony/miniMessages
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.
History
Since version 2.2
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200MiniMessageapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get the last received minimessage

POST/telephony/miniMessages
Send a mini message.
History
Since version 2.2
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
MiniMessageRequestapplication/json
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Send a minimessage to another user (the recipient)

Associated notifications

/telephony/outgoingCallbacks

Methods
POST/telephony/outgoingCallbacks
Requests for call back from an idle device.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
CallbackRequestapplication/json
call back information
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable

/telephony/state

Methods
GET/telephony/state
Asks for the user telephonic state and capabilities.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200TelephonicStateapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable

/telephony/state/snapshot

Methods
POST/telephony/state/snapshot
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.
History
Since version 2.0
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

Representations

AcdCallData
Describes data related to an ACD call.
NameTypeCardinalityDescription
callInfoAcdCallInfo[0..1]info related to the call
queueDataQueueData[0..1]state of the queue
pilotNumberstring[0..1]pilot number if it is an acd call
rsiNumberstring[0..1]rsi number if it is an rsi call
supervisedTransferboolean[0..1]if the transfer from the pilot has been supervised or not
pilotTransferInfoPilotTransferInfo[0..1]in case of enquiry call only, information related to the transfer of the call to the pilot
[+] : JSON Example
AcdCallInfo
Describes data related to the distributed ACD call.
NameTypeCardinalityDescription
queueWaitingTimeint[0..1]waiting time in the queue
globalWaitingTimeint[0..1]global waiting time in the distribution
agentGroupstring[0..1]agent group
localboolean[0..1]if the acd call is local or not
[+] : JSON Example
AcdCallParam
Describes parameter related to an ACD call request.
NameTypeCardinalityDescription
supervisedTransferboolean[0..1]If true in a consultation call, force the Pilot or RSI consultation mode
skillsACRSkills[0..1]Skills associated to the new call
callToSupervisorboolean[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
ACRSkill
Describes an ACR skill.
NameTypeCardinalityDescription
skillNumberint[0..1]skill number
acrStatusboolean[0..1]skill activation status
expertEvalLevelint[0..1]expert evaluation level
[+] : JSON Example
ACRSkills
List of ACR skills.
NameTypeCardinalityDescription
skillsACRSkill[0..*]skill list.
[+] : JSON Example
AlternateRequest
Request to switch between an active call and a held call.
NameTypeCardinalityDescription
deviceIdstring[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.
[+] : JSON Example
Associated method :
AnswerRequest
Request to answer a ringing incoming call.
NameTypeCardinalityDescription
deviceIdstring[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.
[+] : JSON Example
Associated methods :
BlindTransferRequest
Request to transfer an incoming call.
NameTypeCardinalityDescription
transferTostring[1]Phone number to which the call is transferred.
anonymousboolean[0..1]Anonymous call (secret identity). This parameter is optional. If it is omitted, anonymous is not set for this call.
[+] : JSON Example
Associated method :
boolean
'boolean' is a data type, having two values (true and false).
Call
Describes an user's call.
NameTypeCardinalityDescription
callRefstring[1]Reference of the call.
callDataCallData[0..1]Call data.
legsLeg[0..*]User's devices.
participantsParticipant[0..*]Participants.
[+] : JSON Example
Associated method :
Callback
Describes a callback.
NameTypeCardinalityDescription
callbackIdstring[1]Callback identifier
partyInfoPartyInfo[1]Participant identity card.
[+] : JSON Example
CallbackRequest
Callback Sender Message request data.
NameTypeCardinalityDescription
calleestring[1]Callee phone number of the called party for which a call back is requested.
[+] : JSON Example
Associated method :
Callbacks
Container for the callbacks.
NameTypeCardinalityDescription
callbacksCallback[0..*]List of callbacks
[+] : JSON Example
Associated method :
CallCapabilities
Describes the capabilities available on a call : the action that can be carried out on the call according to its state.
NameTypeCardinalityDescription
addDeviceboolean[0..1]Capability to add a participant or a user's device to this call.
addParticipantboolean[0..1]Capability to add a participant.
intrudedboolean[0..1]Capability to intrude this call by another user.
transferboolean[0..1]Capability to transfer this call with another one.
blindTransferboolean[0..1]Capability to blind transfer this call to an user, device, ...
mergeboolean[0..1]Capability to merge this call with another one.
redirectboolean[0..1]Capability to redirect this call to another user, device, ...
pickedUpboolean[0..1]Capability to pick up this call by another user.
redirectToVoiceMailboolean[0..1]Capability to redirect this call to the voice mail.
redirectToDVAboolean[0..1]Capability to redirect this call to the DVA.
overflowToVoiceMailboolean[0..1]Capability to overflow to the voice mail of the called user.
dropMeboolean[0..1]Capability to drop me from this call.
terminateboolean[0..1]Capability to terminate this call: call termiated on all users.
rejectboolean[0..1]Capability to reject this call.
callBackboolean[0..1]Capability to invoke a call back.
parkboolean[0..1]Specifies whether the call can be parked.
startRecordboolean[0..1]Capability to start the record of the call.
stopRecordboolean[0..1]Capability to stop the record of the call.
pauseRecordboolean[0..1]Capability to pause the record of the call.
resumeRecordboolean[0..1]Capability to resume the record of the call.
dropParticipantboolean[0..1]Capability to drop a participant.
muteParticipantboolean[0..1]Capability to mute/unMute a participant.
holdParticipantboolean[0..1]Capability to hold/retrieve a participant.
[+] : JSON Example
CallCause
Lists the different call causes.
ValueDescription
ABANDONEDCaller in a two-party call has disconnected before the call was answered.
ALL_TRUNK_BUSYThe call is receiving the network congestion tone.
BUSYThe call is receiving the busy tone.
CLEAREDOne party in a two-party call has disconnected after the call was answered.
PARTICIPANT_LEFT

Since version 2.2.1

One party has left the conference call.
CONFERENCEDThis is a multi-party call.
INVALID_NUMBERThe call is receiving the invalid number tone.
DESTINATION_NOT_OBTAINABLEThe destination cannot be reached.
FORWARDEDThe call has been forwarded.
PICKED_UPThe call has been picked up.
REDIRECTEDThe call has been redirected.
TRANSFERREDThis is a transferred call.
UNKNOWNUnknown cause.
PICKED_UP_TANDEMPicked up tandem.
CALL_BACKThe call is a call back.
RECALLThe call is recall (e.g. on HELD call indicates that device rings back).
DISTRIBUTED CCD context: call distribution
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
CallData
Describes data associated to a call.
NameTypeCardinalityDescription
initialCalledPartyInfo[0..1]Initial user called for this call.
deviceCallboolean[0..1]If true it's a device call else if not specified or false it's a user call.
anonymousboolean[0..1]If true it's a anonymous call.
callUUIDstring[0..1]CallUUID associated to this call (used to correlate RTSM events with SIP events for multimedia users only).
stateMediaState[0..1]Call state (computed from media state).
recordStateRecordState[0..1]Record state (only if recording is active).
tagsTag[0..*]Tags associated to this call.
capabilitiesCallCapabilities[0..1]Capabilities available on this call.
associateDatastring[0..1] Associated data (or Correlator data).
accountInfostring[0..1] Account info associated to the call.
acdCallDataAcdCallData[0..1]

Since version 2.1

ACD info associated to the call.
[+] : JSON Example
Calls
Container for the calls.
NameTypeCardinalityDescription
callsCall[0..*]List of call
[+] : JSON Example
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).
DeviceCapabilities
Describes an user's device capabilities.
NameTypeCardinalityDescription
deviceIdstring[1]Device phone number.
makeCallboolean[0..1]Specifies whether a new call can be initiated.
makeBusinessCallboolean[0..1]Specifies whether a business call can be initiated.
makePrivateCallboolean[0..1]Specifies whether a personal call can be initiated.
unParkCallboolean[0..1]Specifies whether a call can be an unparked call.
[+] : JSON Example
DeviceState
Describes a user's device state.
NameTypeCardinalityDescription
deviceIdstring[1]Device phone number.
stateOperationalState[1]Device state.
[+] : JSON Example
Associated method :
DeviceStates
Container for device state.
NameTypeCardinalityDescription
deviceStatesDeviceState[0..*]List of DeviceState
[+] : JSON Example
Associated method :
DSLogOnRequest
Request to logg on an acd agent.
NameTypeCardinalityDescription
dssDeviceNumberstring[1]DSS phone number on which the operation is invoked.
[+] : JSON Example
Associated method :
HoldRequest
Request to put an active call on hold.
NameTypeCardinalityDescription
deviceIdstring[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.
[+] : JSON Example
Associated method :
HuntingGroupResult
Hunting group param used for user management.
NameTypeCardinalityDescription
hgListstring[0..*]the existing hunting group list in the pbx node of user may be null if none
currentHgstring[0..1]the current hunting group number which the user is a member: may be null if none
[+] : JSON Example
Associated method :
HuntingGroupStatus
Describes the user's hunting group logon status .
NameTypeCardinalityDescription
logonboolean[1]Device phone number.
[+] : JSON Example
Associated method :
Identifier
Key information to help retrieving a participant.
NameTypeCardinalityDescription
loginNamestring[0..1]Login name.
phoneNumberstring[0..1]Company phone number.
[+] : JSON Example
int
'int' is a 32-bit number (-2147483648 to 2147483647).
Leg
Describes a leg. A leg represents the user's device involved in a call for a dedicated media (audio or video).
NameTypeCardinalityDescription
deviceIdstring[1]Device phone number.
stateMediaState[0..1]Media state.
ringingRemoteboolean[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).
capabilitiesLegCapabilities[0..1]Capabilities for this leg.
[+] : JSON Example
Associated method :
LegCapabilities
Describes the capabilities of a leg : The action that can be carried out on the leg according to its state.
NameTypeCardinalityDescription
answerboolean[0..1]Capability to answer to an incoming call.
dropboolean[0..1]Capability to drop this media device.
holdboolean[0..1]Capability to hold this call in order to retrieve it later.
retrieveboolean[0..1]Capability to retrieve an hold call.
reconnectboolean[0..1]Capability to retrieve an hold call and releasing the current active call.
muteboolean[0..1]Capability to enable mute for this leg.
unMuteboolean[0..1]Capability to disable mute for this device.
sendDtmfboolean[0..1]Capability to send DTMF codes for this leg.
switchDeviceboolean[0..1]Capability to switch this device to another one.
[+] : JSON Example
Legs
Container for Legs.
NameTypeCardinalityDescription
legsLeg[0..*]List of Leg.
[+] : JSON Example
Associated method :
MainType
Main participant type
ValueDescription
USERThe participant is a user of the system.
DEVICEThe participant is a device of the system.
SERVICEThe participant is a service of the system.
EXTERNALThe participant is not a user of the system.
UNKNOWNThe main participant type is unknown.
MakeBasicCallRequest
Request to initiate a new call.
NameTypeCardinality*1*2Description
deviceIdstring[1]XXDevice 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.
calleestring[1]XXCalled phone number.
autoAnswerboolean[0..1]XAutomatic 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.

[+] : JSON Example
Associated method :
MakeCallRequest
Request to initiate a new call.
NameTypeCardinality*1*2*3*4*5Description
deviceIdstring[0..1]XXXXXDevice 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.

calleestring[1]XXXXXCalled phone number. This parameter is always mandatory except in case of agent supervisor call (see acdCallParam) where it is ignored and should be absent.
autoAnswerboolean[0..1]XXAutomatic 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.
inhibitProgressToneboolean[0..1]XX

Since version 2.2.1

Inhibit Progress Tone. If this parameter is set to "true" Inhibit the progress tone on the current external call.
associatedDatastring[0..1]XXThis 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. Don't use in conjonction with pin, secretCode, or businessCode parameter
pinstring[0..1]XPrivate identity number (Mandatory when making a Private Call). Don't use in conjonction with associatedData or businessCode parameter
secretCodestring[0..1]XSecret code (Mandatory when making a Private Call). Don't use in conjonction with associatedData or businessCode parameter
businessCodestring[0..1]XThe 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
callingNumberstring[0..1]XX

Since version 2.1

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.
acdCallAcdCallParam[0..1]X

Since version 2.1

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
Associated method :
MediaState
Lists the different media states.
ValueDescription
UNKNOWNUnknown 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
IDLECall is in idle state.
RELEASINGCall release is in progress.
DIALINGAn attempt to make a call is in progress.
HELDThe call has been placed on hold.
RINGING_INCOMINGThe incoming call is ringing.
RINGING_OUTGOINGThe outgoing call is ringing.
ACTIVEThe call is active (means in conversation).
MergeRequest
Request to merge two calls, the active one and the held one.
NameTypeCardinalityDescription
heldCallRefstring[1]Reference of the held call.
[+] : JSON Example
Associated method :
MiniMessage
Describes a mini message.
NameTypeCardinalityDescription
senderstring[0..1]Sender tel number.
datedateTime[0..1]Date of the message: the date is in UTC format
messagestring[0..1]the mini message text.
[+] : JSON Example
Associated method :
MiniMessageRequest
Send a mini Message request data to a recipient.
NameTypeCardinalityDescription
recipientstring[1]the phone number recipient.
messagestring[1]the mini message text.
[+] : JSON Example
Associated method :
OnCallCreated
This notification indicates that a new call has been created.
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnCallCreated'
loginNamestring[1]Login name of the user (identifier which can be used for filtering).
callRefstring[1]Reference of the call.
causeCallCause[0..1]Cause of the event.
callDataCallData[0..1]Call data.
initiatorstring[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.
legsLeg[0..*]Legs associated to this call.
participantsParticipant[0..*]Participants associated to this call.
deviceCapabilitiesDeviceCapabilities[0..*]Devices capabilities (if not specified, it means there is no modification).
[+] : JSON Example
Associated methods :
OnCallModified
This 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, ...
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnCallModified'
loginNamestring[1]Login name of the user (identifier which can be used for filtering).
callRefstring[1]Reference of the call.
causeCallCause[0..1]Cause of the event.
previousCallRefstring[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)
replacedByCallRefstring[0..1]This call reference appears when a call is released, the replacedByCallRef if present indicates that the "callRef" is replaced by this one.
callDataCallData[0..1]Call data modified (if not specified, it means there is no modification).
modifiedLegsLeg[0..*]Legs modified (if not specified, it means there is no modification).
addedLegsLeg[0..*]Legs added (if not specified, it means there is no added leg).
removedLegsLeg[0..*]Legs removed (if not specified, it means there is no removed leg).
modifiedParticipantsParticipant[0..*]Participants modified (if not specified, it means there is no modification).
addedParticipantsParticipant[0..*]Participants added (if not specified, it means there is no added participant).
removedParticipantIdsstring[0..*]Participants removed (if not specified, it means there is no removed participant).
deviceCapabilitiesDeviceCapabilities[0..*]Devices capabilities modified (if not specified, it means there is no modification).
[+] : JSON Example
Associated methods :

OnCallRemoved
This notification indicates that a call has been removed (hang up, transfer...).
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnCallRemoved'
loginNamestring[1]Login name of the user (identifier which can be used for filtering).
callRefstring[1]Reference of the call.
causeCallCause[0..1]Cause of the event.
newDestinationstring[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.
deviceCapabilitiesDeviceCapabilities[0..*]Devices capabilities (if not specified, it means there is no modification).
[+] : JSON Example
Associated methods :
OnDeviceStateModified
This notification indicates that device's state has been modified.
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnDeviceStateModified'
loginNamestring[1]Login name of the user (identifier which can be used for filtering).
deviceStatesDeviceState[1..*]Device state modified.
[+] : JSON Example
OnDynamicStateChanged
This notification indicates the user's dynamic state change. (hunting group logon state)
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnDynamicStateChanged'
loginNamestring[1]Login name of the user (identifier which can be used for filtering).
huntingGroupStateHuntingGroupStatus[0..1]User hg state.
[+] : JSON Example
Associated methods :
OnTelephonyState
This notification indicates the telephonic state (calls[] and deviceCapabilities[]) of a user
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnTelephonyState'
loginNamestring[1]Login name of the user (identifier which can be used for filtering).
stateTelephonicState[0..1]telephonic state of the user.
[+] : JSON Example
Associated method :
OnUserStateModified
This notification indicates that user's state has been modified (FREE, BUSY ...).
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnUserStateModified'
loginNamestring[1]Login name of the user (identifier which can be used for filtering).
stateUserState[1]User state.
[+] : JSON Example
Associated methods :
OperationalState
List the different operational states.
ValueDescription
IN_SERVICEOperational state is in service.
OUT_OF_SERVICEOperational state is out of service.
UNKNOWNOperational state is unknown.
ParkRequest
Request to park an active call on a target device. If the call shall be parked on the current device, just omit the target device
NameTypeCardinalityDescription
parkTostring[0..1]Phone number device where to park the call .
[+] : JSON Example
Associated method :
Participant
Detail about a kind of participant.
NameTypeCardinalityDescription
participantIdstring[1]Participant identifier (Should not be displayed).
identityPartyInfo[0..1]Participant identity card.
anonymousboolean[0..1]Participant identity is secret
undroppableboolean[0..1]If true this participant can not be dropped.
stateMediaState[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
Associated method :
Participants
Container for Participants.
NameTypeCardinalityDescription
participantsParticipant[0..*]Container for Participants.
[+] : JSON Example
Associated method :
ParticipantType
Participant type description
NameTypeCardinalityDescription
mainMainType[1]Gives the main type of the participant: "user", "device", ...
subTypestring[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
PartyInfo
Full description of a party involved in a call log record.
NameTypeCardinalityDescription
idIdentifier[1]Identifier of the party.
firstNamestring[0..1]First name.
lastNamestring[0..1]Last name.
displayNamestring[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
typeParticipantType[0..1]Type of participant.
[+] : JSON Example
PickupRequest
Request to pickup a call.
NameTypeCardinalityDescription
otherCallRefstring[0..1]Reference of the call to pickup (on the remote user).
otherPhoneNumberstring[1]Phone number on which the call is to pickup.
autoAnswerboolean[0..1]True to automatically chain an answer call request after this pickup request (if omitted default value is false).
[+] : JSON Example
Associated method :
PilotStatus
Lists the different ACD pilot status.
ValueDescription
OPEN
BLOCKED
BLOCKED_ON_RULE
BLOCKED_ON_BLOCKED_RULE
GENERAL_FORWARDING
GENERAL_FORWARDING_ON_RULE
BLOCKED_ON_GENERAL_FORWARDING_RULE
OTHER
PilotTransferInfo
Describes data relative to an ACD Queue Pilot.
NameTypeCardinalityDescription
transferPossibleboolean[0..1]true means the transfer to pilot or RSI is possible.
pilotStatusPilotStatus[0..1]Status of the pilot.
[+] : JSON Example
QueueData
Describes data relative to an ACD Queue Pilot.
NameTypeCardinalityDescription
waitingTimeint[0..1]estimated waiting time in the queue(in seconds).
saturatedboolean[0..1]true means the queue is saturated.
[+] : JSON Example
ReconnectRequest
Request to reconnect a calls after cancelling an enquiry call(in active or ringing state).
NameTypeCardinalityDescription
deviceIdstring[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.
enquiryCallRefstring[1]Reference of the enquiryCallRef call to cancel.
[+] : JSON Example
Associated method :
RecordState
Lists the different state when recording.
ValueDescription
PAUSEDRecording is paused.
RECORDINGRecording is in progress.
RedirectRequest
Request to redirect a call.
NameTypeCardinalityDescription
redirectTostring[1]Phone number of the target of the redirection
anonymousboolean[0..1]Anonymous call (secret identity). This parameter is optional. If it is omitted, anonymous is not set for this call.
[+] : JSON Example
Associated method :
RetrieveRequest
[Tel]: Request to redirect a call.
NameTypeCardinalityDescription
deviceIdstring[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.
[+] : JSON Example
Associated method :
SendAccountInfoRequest
Request to send the account info. For a CCD agent, this is the mean to send the transaction code at the end of a call.
NameTypeCardinalityDescription
deviceIdstring[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.
accountInfostring[1]This is used by the application to provide the transaction code.
[+] : JSON Example
Associated method :
SendAssociatedDataRequest
Request to send associated data.
NameTypeCardinalityDescription
deviceIdstring[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.
associatedDatastring[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.
[+] : JSON Example
Associated method :
SendDtmfRequest
Request to send DTMF
NameTypeCardinalityDescription
deviceIdstring[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.
numberstring[1]DTMF codes.
[+] : JSON Example
Associated method :
string
'string' represents character strings.
SwitchDeviceRequest
Request to switch between two devices.
NameTypeCardinalityDescription
otherDeviceIdstring[1]Device phone number on which to switch.
[+] : JSON Example
Associated method :
Tag
Describes a Tag (a defined name and a value).
NameTypeCardinalityDescription
namestring[1]Tag name.
valuestring[0..1]Tag value.
visibilitiesstring[0..*]Visibility of this tag : list of login name.
[+] : JSON Example
TelephonicState
Snapshot of the user's telephonic state.
NameTypeCardinalityDescription
callsCall[0..*]Gives the list of current calls.
deviceCapabilitiesDeviceCapabilities[0..*]Gives the list of device's capabilities.
userStateUserState[0..1]

Since version 2.2.1

state of the user: is only used in case the user is busy unknown at monitoring
[+] : JSON Example
Associated method :
TransferRequest
Request to transfer the held call to a new destination.
NameTypeCardinalityDescription
heldCallRefstring[1]Reference of the held call.
[+] : JSON Example
Associated method :
UnParkRequest
Request 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.
NameTypeCardinalityDescription
unParkFromstring[0..1]Phone number of the device where the call has been parked.
[+] : JSON Example
Associated method :
UserState
Lists the different types of user state.
ValueDescription
FREEUser is free.
BUSYUser is busy.
UNKNOWNThe 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 directory search is a set of 2 or more sequential operations:

Resources summary

ResourceMethodDescription
/directory/searchPOSTInitiates a search
GETGets the next available results for the current search.
DELETEDeletes (stops) search query
/directory/searchbydtmfPOSTInitiates a search by dtmf, giving the phoneset keyboard corresponding digits

Resources

/directory/search

Methods
POST/directory/search
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
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
SearchRequestapplication/json
SearchRequest
Response
codetypemedia typesdescription
201stringapplication/json
CREATED
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Initiates a search

GET/directory/search
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
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200SearchResultapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Gets the next available results

DELETE/directory/search
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
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Deletes search query

/directory/searchbydtmf

Methods
POST/directory/searchbydtmf
Initiates a search by dtmf, giving the phoneset keyboard corresponding digits
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
SearchByDtmfRequestapplication/json
SearchByDtmfRequest
Response
codetypemedia typesdescription
201stringapplication/json
CREATED
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Initiates a search by dtmf for user whose lastname begins with "L"

Representations

Attribute
Lists the different types of attributes.
ValueDescription
lastNameLast name.
firstNameFirst 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.loginNameLogin name.
Criterion
Criterion descriptor.
NameTypeCardinalityDescription
fieldAttribute[0..1]Field name.
operationOperation[1]Operation.
operandstring[1]Operand.
Criterion[1..*]

[+] : JSON Example 1

[+] : JSON Example 2

[+] : JSON Example 3

Identifier
Description of Identifier
NameTypeCardinalityDescription
loginNamestring[0..1]Login name
phoneNumberstring[0..1]Phone number
[+] : JSON Example
int
'int' is a 32-bit number (-2147483648 to 2147483647).
KeyboardType
ValueDescription
CCITT
ITU
Operation
The types of operation
ValueDescription
OROR operation.
ANDAND operation.
EQUAL_IGNORE_CASEEQUAL_IGNORE operation.
BEGIN_WITHBEGIN_WITH operation.
CONTAINCONTAIN operation.
END_WITHEND_WITH operation.
PartyInfo
Description of PartyInfo
NameTypeCardinalityDescription
idIdentifier[0..1]PartyInfo identifier object
firstNamestring[0..1]First name
lastNamestring[0..1]Last name
[+] : JSON Example
ResultCode
This code is returned each time you try to retrieve responses after a search has been started (getNextResults operation).
ValueDescription
OKResponses are provided this time. You will have to continue to invoke getNextResults periodically to get the next response.
NOKNo responses this time. You will have to continue to invoke getNextResults periodically to get the next response.
FINISHSearch is finished. You no longer need to invoke getNextResults, there are no more responses.
TIMEOUTSearch is ended for timeout reason. You no longer need to invoke getNextResults, there are no more responses.
ResultElement
Gives a result which matches the criterion given in search operation. The records are obtained by periodically invoking the getNextResults operation.
NameTypeCardinalityDescription
contactsPartyInfo[0..*]Array of ContactDTO objects
[+] : JSON Example
SearchByDtmfRequest
This element is used to start an advanced search.
NameTypeCardinalityDescription
lastNamestring[1]The value of lastname to search in DTMF format
firstNamestring[0..1]The value of firstname to search in DTMF format
keyboardTypeKeyboardType[1]The keyboard type
limitint[0..1]Maximum number of results. Default value is 100. The range of supported values is [1 .. 100].
[+] : JSON Example
Associated method :
SearchRequest
This element is used to start an advanced search.
NameTypeCardinalityDescription
limitint[0..1]Maximum number of results. Default value is 100. The range of supported values is [1 .. 100].
filterCriterion[1]searching criterion.
[+] : JSON Example
Associated method :
SearchResult
The result of a search
NameTypeCardinalityDescription
resultCodeResultCode[0..1]Search result status code.
resultElementsResultElement[0..*]Search result elements.
[+] : JSON Example
Associated method :
string
'string' represents character strings.

Routing management

Presentation

The Routing service allows a user to manage its presentation route, to activate forward or overflow on other destinations like other users or voicemail.

Terminologies:


Presentation Route: List of destinations on which incoming calls will be presented (if they are selected by the user and if the system finds them as being acceptable).

Forward Route: One destination is ringing at a time. When destination is a user, the routing management of this user is applied.

Overflow Route: One destination is ringing at a time, with busy or no answer condition.

Destination: It identifies where the calls are routed. It may be one of:

- A number
- The voicemail

Route: Set of destinations. It may be one of:

- Presentation
- Forward
- Overflow

Routing state: Set of routes applied to the calls for a user.

loginName: the loginName always corresponds to the main QMCDU of the user.


Routes management:


Route Destination Parameter
Presentation OFFICE
MOBILE
Forward VOICEMAIL
NUMBER
Forward type
Overflow VOICEMAIL
ASSOCIATE
Overflow type

Destination type:


OFFICE Deskphone device.
Used in presentation routes.
MOBILE MOBILE destination is associated to a Remote Extension device.
VOICEMAIL Used in forward and overflow routes.
NUMBER Number destination permits to set the forward destination (internal and external numbers are authorized).
Used in forward routes.
.
ASSOCIATE Associate destination permits to update the associate.
Used in overflow routes.
.

Resources summary

ResourceMethodDescription
/routingGETAllows an application to know what the user is allowed to do.
POSTSets 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/dndGETRetrieves the current dnd state.
POSTSet the dnd state.
DELETECancel the dnd.
/routing/forwardrouteGETRetrieves the forward route.
DELETECancels the forward route.
POSTSet the forward route.
/routing/overflowrouteGETRetrieves the overflow route.
POSTSets the specified overflow routes.
DELETECancels the overflow routes.
/routing/stateGETRetrieves the routing context state.
/routing/state/snapshotPOSTAsk a snapshot event on user dynamic state.

Notification summary

NotificationDescription
OnRoutingStateChangedThis notification indicate that routing state is changed.

Resources

/routing

Methods
GET/routing
Allows an application to know what the user is allowed to do.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200Capabilitiesapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get the routing capabilities of a user.

POST/routing
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
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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.
sipNomadicboolean
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
SetRoutesRequestapplication/json
SetRoutesRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/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.)

[+] : Make a conditional forward (BUSY) to my voicemail. All routing profiles are automatically disabled.

[+] : Activate the remote extension.

[+] : DeActivate the remote extension.

Associated notifications

/routing/dnd

Methods
GET/routing/dnd
Retrieves the current dnd state.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200DNDStateapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Retrieves the current dnd state.

POST/routing/dnd
Set the dnd state.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Activate DND

Associated notifications
DELETE/routing/dnd
Cancel the dnd.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Deactivate DND

Associated notifications

/routing/forwardroute

Methods
GET/routing/forwardroute
Retrieves the forward route.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200ForwardRouteapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : A forward on BUSY is activated to the user voicemail.

DELETE/routing/forwardroute
Cancels the forward route.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Cancels the forward routes.

Associated notifications
POST/routing/forwardroute
Set the forward route.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
SetForwardRouteRequestapplication/json
SetForwardRouteRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/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.)

[+] : Make a conditional forward (BUSY) to my voicemail. All routing profiles are automatically disabled.

[+] : Make an immediate forward to a number.

[+] : Make a conditional forward (BUSY) on a number ("forwardType" parameter is necessary)

Associated notifications

/routing/overflowroute

Methods
GET/routing/overflowroute
Retrieves the overflow route.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200OverflowRouteapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : An overflow on BUSY is activated to the user voicemail.

POST/routing/overflowroute
Sets the specified overflow routes.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
SetOverflowRoutesRequestapplication/json
SetOverflowRoutesRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : If the user is busy, route the new calls to the voicemail.

Associated notifications
DELETE/routing/overflowroute
Cancels the overflow routes.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Cancels the overflow routes.

Associated notifications

/routing/state

Methods
GET/routing/state
Retrieves the routing context state.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200RoutingStateapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/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.

/routing/state/snapshot

Methods
POST/routing/state/snapshot
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.
History
Since version 2.0
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

Representations

boolean
'boolean' is a data type, having two values (true and false).
Capabilities
Describes the routing management capabilities.
NameTypeCardinalityDescription
presentationRouteboolean[0..1]If true, the user is allowed to manage presentation routes.
forwardRouteboolean[0..1]If true, the user is allowed to manage forward routes.
overflowRouteboolean[0..1]If true, the user is allowed to manage overflow routes.
dndboolean[0..1]If true, the user is allowed to manage the doNotDisturb.
[+] : JSON Example
Associated method :
Destination

Describes a destination.

NameTypeCardinalityDescription
typeDestinationType[1]Key used to identify the device or other destinations.
deviceIdstring[0..1]Filled by the system in routing state.
numberstring[0..1]Defines the phone number of an external device.

NOTE: the number must be filled if the destination type is OTHER.
Otherwise, it will be set up by the server.

selectedboolean[0..1]To select or not the destination, only for presentation route .
[+] : JSON Example
DestinationType
Lists the different types of a destination.
ValueDescription
OFFICEDestination is office device.
MOBILEDestination is mobile device.
VOICEMAILDestination is the voice mail of the user.
NUMBERDestination is a number.
Only for a standard user.
Used in forward routes.
UNKNOWNUnknown destination type.
DNDState

Describes a DoNotDisturb state.

The possible state for the DoNotDisturb is activate or not.

NameTypeCardinalityDescription
activateboolean[0..1]DnD is activate or not
[+] : JSON Example
Associated method :
ForwardRoute

Describes a forward route.

The possible destination type for a forward route are:

  • VOICEMAIL
  • USER
  • NUMBER

NameTypeCardinalityDescription
forwardTypeForwardType[0..1]Optional condition to forward route. If this parameter is not provided forward is unconditional: i.e immediate.
destinationsDestination[0..*]List of destinations where calls can be forwarded: Only one destination is acceptable.
[+] : JSON Example
Associated method :
ForwardType
Lists 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.
ValueDescription
BUSYIncoming calls are diverted to the destination when the phone is busy.
NO_ANSWERIncoming calls are diverted to the destination after a ringing duration.
BUSY_NO_ANSWERIncoming calls are diverted to the destination when the phone is busy or after a ringing duration.
OnRoutingStateChanged
This notification indicate that routing state is changed.
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnRoutingStateChanged'
loginNamestring[1]Login name of the user (identifier which can be used for filtering).
routingStateRoutingState[1]Current routing state.
[+] : JSON Example
Associated methods :
OverflowRoute

Describes an overflow route.

The possible destination type for an overflow route are:

  • OTHER
  • VOICEMAIL
  • USER
  • UNKNOWN
  • ASSOCIATE

NOTE: - If UNKNOWN is selected, it will be changed to either OTHER, VOICEMAIL or USER depending on the value set in number attribute.

NameTypeCardinalityDescription
overflowTypeOverflowType[1]The overflow type.
destinationsDestination[1..*]List of destinations where calls can be forwarded.
Calls can not be forked to several acceptable overflow routes.
NOTE: this type of route can not be specified in a profile.
[+] : JSON Example
Associated method :
OverflowType
Lists the different types of overflow
ValueDescription
BUSYIncoming calls are diverted to the destination when the phone is busy.
NO_ANSWERIncoming calls are diverted to the destination after a ringing duration.
BUSY_NO_ANSWERIncoming calls are diverted to the destination when the phone is busy or after a ringing duration.
PresentationRoute

Describes 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.

NameTypeCardinalityDescription
destinationsDestination[1..*]List of destinations where calls can be presented simultaneously: Calls can be forked to OFFICE or OFFICE + MOBILE destinations.
[+] : JSON Example
RoutingState
Describes the routing state.
NameTypeCardinalityDescription
presentationRoutesPresentationRoute[1..*]List of presentation routes.
forwardRoutesForwardRoute[0..*]List of forward routes.
overflowRoutesOverflowRoute[0..*]List of overflow routes.
dndStateDNDState[0..1]Do not disturb state
[+] : JSON Example
Associated method :
SetForwardRouteRequest
Request to activate or cancel the forward of the incoming calls.
NameTypeCardinalityDescription
forwardRouteForwardRoute[0..1]New forward route.
[+] : JSON Example
Associated method :
SetOverflowRoutesRequest
Request to set the overflow routes.
NameTypeCardinalityDescription
overflowRoutesOverflowRoute[1..*]New overflow routes (only one overflow route can be set).
[+] : JSON Example
Associated method :
SetRoutesRequest
Request to select current routes for the user.
NameTypeCardinalityDescription
presentationRoutesPresentationRoute[0..*]

List of presentation routes (only one presentation route can be set).

forwardRoutesForwardRoute[0..*]

Calls are prior forwarded to the selected destinations (only one forward route can be set).

[+] : JSON Example
Associated method :
string
'string' represents character strings.

Communication log

Presentation

The Communication log service allows

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.

Resources summary

ResourceMethodDescription
/comlog/recordsPUTEither Acknowledge/Unacknowledge the incoming missed communication records specified by their IDs.
GETGet all the communication log records.
DELETEDelete all (or only the specified) communication log records.
/comlog/records/recordIdsGETGet the whole list of communication log record Ids.
/comlog/records/{recordId}GETGet a communication log record.
DELETEDelete a record.

Notifications summary

NotificationDescription
OnComRecordCreatedNotification sent when a new comlog entry has been created.
OnComRecordModifiedNotification sent when one or more records have been modified.
OnComRecordsAckNotification sent when one or more unanswered comlog records have been acknowledged.
OnComRecordsDeletedNotification sent when one or more call log records have been destroyed.
OnComRecordsUnAckNotification sent when one or more unanswered comlog records have been unacknowledged.

Resources

/comlog/records

Methods
PUT/comlog/records
Either Acknowledge/Unacknowledge the incoming missed communication records specified by their IDs.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
acknowledgestringtrue to acknowledge the list of communication records, false to unacknowledge.
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
UpdateComRecordsRequestapplication/json
UpdateComRecordsRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications
GET/comlog/records
Get all the communication log records.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
recordIdListstringThis 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.
unansweredbooleanThis 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.
unacknowledgedbooleanThis 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.
afterDatestringThis 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.
beforeDatestringThis 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.
roleRoleThis 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.
comRefstringThis parameter is optional. The comref of the com we want to retrieve.
remotePartyIdstringThis parameter is optional. Ask to apply the operation on the records in which the user is engaged with this remote party.
offsetintThis 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.
limitintThis 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).
optimizedbooleanThis 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.
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200ComHistoryRecordsapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get all unanswered communication log records.

DELETE/comlog/records
Delete all (or only the specified) communication log records.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
recordIdListstringThis 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.
unansweredstringThis 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.
unacknowledgedstringThis 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.
afterDatestringThis 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.
beforeDatestringThis 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.
rolestringThis 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.
comRefstringThis parameter is optional. The comref of the com we want to delete.
remotePartyIdstringThis parameter is optional. Ask to apply the operation on the records in which the user is engaged with this remote party.
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

/comlog/records/recordIds

Methods
GET/comlog/records/recordIds
Get the whole list of communication log record Ids.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200ComHistoryRecordIdsapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable

/comlog/records/{recordId}

Methods
GET/comlog/records/{recordId}
Get a communication log record.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
recordIdstringIdentifier of the record
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200ComHistoryRecordapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
DELETE/comlog/records/{recordId}
Delete a record.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
path parameters
parametertypedescription
recordIdstringIdentifier of the record
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

Representations

boolean
'boolean' is a data type, having two values (true and false).
ComHistoryRecord
Communication history ticket (ComLog).
NameTypeCardinalityDescription
recordIdlong[0..1]unique identifier of the record.
comRefstring[1]Communication reference identifier.
acknowledgedboolean[0..1]False indicates that the ticket corresponds to a non answered incoming call that has not been later acknowledged.
participantsParticipant[0..*]List of participants involved in the communication. The list may be null for a scheduled conference that has not yet started.
beginDatedateTime[0..1]Begin date of the communication (when the call is launched).
endDatedateTime[0..1]End date of the conversation (when the call is terminated or canceled).
mediasMediaType[1..*]The list of medias involved in the communication.
extensionsTagValuePair[0..*]For evolution of this element, can contain supplementary information (tag/value pair).
[+] : JSON Example
Associated method :
ComHistoryRecordIds
Container for the list of history record ids (ComLog).
NameTypeCardinalityDescription
recordIdslong[0..*]The list the IDs of the com log records.
[+] : JSON Example
Associated method :
ComHistoryRecords
List of ComHistoryRecord (ComLog).
NameTypeCardinalityDescription
comHistoryRecordsComHistoryRecord[0..*]List of ComHistoryRecord.
offsetint[0..1]The offset of the first record which is returned.
limitint[0..1]Defines the maximum number of records returned.
totalCountint[0..1]Defines the total number of records without pagination.
[+] : JSON Example
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).
Identifier
Key information to help retrieving a participant (ComLog).
NameTypeCardinalityDescription
loginNamestring[0..1]Login name.
phoneNumberstring[0..1]Company phone number.
[+] : JSON Example
int
'int' is a 32-bit number (-2147483648 to 2147483647).
long
'long' is a 64-bit number (-9223372036854775808 to 9223372036854775807).
MainType
Main participant type.
ValueDescription
USERThe participant is a user of the system.
DEVICEThe participant is a device of the system.
SERVICEThe participant is a service of the system.
EXTERNALThe participant is not a user of the system.
UNKNOWNThe main participant type is unknown.
MediaType
A media can be:
ValueDescription
AUDIOThe media is an audio.
UNKNOWNThe media is unknown.
OnComRecordCreated
Notification sent when a new comlog entry has been created.
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnComRecordCreated'
loginNamestring[1]Login name of the user (identifier which can be used for filtering).
recordComHistoryRecord[1]Contains all the fields of a call log record.
[+] : JSON Example
OnComRecordModified
Notification 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)

NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnComRecordModified'
loginNamestring[1]Login name of the user (identifier which can be used for filtering).
recordComHistoryRecord[1]Contains all or part of the modified fields of a modified com log record.(example: acknowledged).
[+] : JSON Example
OnComRecordsAck
Notification sent when one or more unanswered comlog records have been acknowledged.
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnComRecordsAck'
loginNamestring[1]Login name of the user (identifier which can be used for filtering).
recordIdslong[0..*]A list of IDs of records which have been acknowledged.
[+] : JSON Example
Associated method :
OnComRecordsDeleted
Notification sent when one or more call log records have been destroyed.
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnComRecordsDeleted'
loginNamestring[1]Login name of the user (identifier which can be used for filtering).
recordIdslong[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.
[+] : JSON Example
Associated methods :
OnComRecordsUnAck
Notification sent when one or more unanswered comlog records have been unacknowledged.
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnComRecordsUnAck'
loginNamestring[1]Login name of the user (identifier which can be used for filtering).
recordIdslong[0..*]A list of IDs of records which have been acknowledged.
[+] : JSON Example
Associated method :
Participant

Describes 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.

NameTypeCardinalityDescription
roleRole[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).
answeredboolean[0..1]defines whether the participant has really entered in the conversation. Can be omitted if the value is not known.
identityPartyInfo[1]Full description of a party involved in an history record.
anonymousboolean[0..1]Indicate if the participant identity is anonymous or not.
initialCalledPartyInfo[0..1]The number that has been initially called when this participant has been entered in the call.
reasonReason[0..1]The reason why the call has been established, rerouted, terminated ...
[+] : JSON Example
ParticipantType
Detail about a kind of participant (ComLog).
NameTypeCardinalityDescription
mainMainType[1]Gives the main type of the participant: "user", "device", ...
subTypestring[0..1]The subType string gives a supplementary information and can contain "voicemail",...
[+] : JSON Example
PartyInfo
Full description of a party involved in an history record (ComLog).
NameTypeCardinalityDescription
idIdentifier[1]Key information to help retrieving a participant.
firstNamestring[0..1]First name.
lastNamestring[0..1]Last name.
displayNamestring[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.
typeParticipantType[0..1]Participant's type.
[+] : JSON Example
Reason
indicates 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 ...
ValueDescription
ALL_TRUNK_BUSYThe call was released because all trunk are busy.
INVALID_NUMBERThe call was refused because the dialed number is not valid.
ABANDONEDThe call was canceled by the caller.
BUSYThe call failed because the called party is busy.
CONFERENCEDThe call was set to be a conference.
PICKUPThe call was picked up.
FORWARDEDThe call was forwarded to another destination.
REDIRECTEDThe call was redirected to another destination.
RELEASED_ON_REDIRECTThe call was released since redirection to another destination fails.
TRANSFERREDThe call was transferred.
RELEASED_ON_TRANSFERThe call was released since transfer to another destination fails.
VOICEMAILThe call ended on voicemail.
NORMALThe call normally ended.
UNKNOWNThe reason is unknown.
Role
role of a participant in the communication.
ValueDescription
CALLERThe participant is a caller party.
CALLEEThe participant is a called party.
UNKNOWNThe role is unknown.
string
'string' represents character strings.
TagValuePair
Key / value structure.
NameTypeCardinalityDescription
namestring[1]Key
valuestring[1]Value
[+] : JSON Example
UpdateComRecordsRequest
Request sent for updating communication history records (ComLog).
NameTypeCardinalityDescription
recordIdslong[0..*]The list the IDs of the com log records to update.
[+] : JSON Example
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

ResourceMethodDescription
/eventSummaryGETRetrieves main counters of the user's event log.

Notification summary

NotificationDescription
OnEventSummaryUpdatedNotification sent each time the user's counters have changed.

Resource

/eventSummary

Methods
GET/eventSummary
Retrieves main counters of the user's event log.
Licenses
The license TELEPHONY_ADVANCED is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200EventSummaryapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Retrieves main counters of the user's event log.

Representations

boolean
'boolean' is a data type, having two values (true and false).
EventSummary
Describes an event summary.
NameTypeCardinalityDescription
missedCallsNbnonNegativeInteger[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.
voiceMessagesNbnonNegativeInteger[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.
callBackRequestsNbnonNegativeInteger[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.
faxNbnonNegativeInteger[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.
newTextNbnonNegativeInteger[0..1]

Since version 2.2

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.
oldTextNbnonNegativeInteger[0..1]

Since version 2.2

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.
eventWaitingboolean[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.
[+] : JSON Example
Associated method :
nonNegativeInteger
'nonNegativeInteger' is all positive integer numbers and zero. Negative integers are excluded.
OnEventSummaryUpdated
Notification sent each time the user's counters have changed.
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnEventSummaryUpdated'
loginNamestring[1]Login name of the user (identifier which can be used for filtering).
eventSummaryEventSummary[1]The new event summary.
[+] : JSON Example
Associated methods :
string
'string' represents character strings.

Maintenance

Presentation

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

ResourceMethodDescription
/system/licensesGETGet license availability.
/system/statusGETGet information about system status.

Notifications summary

NotificationDescription
OnCtiLinkDownNotification sent when CTI link is down.
OnCtiLinkUpNotification sent when CTI link is up
OnLicenseExpirationNotification sent when the license file will soon expire or has recently expired
OnPbxLoadedNotification sent when datas are fully loaded from an OXE

Resources

/system/licenses

Methods
GET/system/licenses
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.
History
Since version 2.2
Licenses
No license required.
Request
query parameters
parametertypedescription
licstring
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the result code
codemedia typesdescription
204application/json
No content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get ROXE_API_CLOUD_CONNECTIVITY license availability

[+] : Get ROXE_HA license availability

/system/status

Methods
GET/system/status
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
No license required.
Request
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the result code and, if the code is SUCCESS, system information corresponding to the concerned user SystemStatus
codetypemedia typesdescription
200SystemStatusapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get information about the system status

Representations

boolean
'boolean' is a data type, having two values (true and false).
ConfigurationTypeDTO
Type of O2G configuration
ValueDescription
PBX_MANAGEMENTPbx management only
FULL_SERVICESPbx management + all services
CTILinkState
Lists the different OXE CTI link state
ValueDescription
CONNECTED_MAINconnected to main Call server
CONNECTED_SECONDARYconnected to secondary Call server
DISCONNECTEDnot 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).
int
'int' is a 32-bit number (-2147483648 to 2147483647).
License
License
NameTypeCardinalityDescription
namestring[0..1]Name
totalint[0..1]total number
currentUsedint[0..1]current used number. For the ROXE_API_MANAGEMENT particular case, it corresponds to the total network OXE Subscriber number
expirationstring[0..1] expiration date
[+] : JSON Example
LicenseStatus
License status
NameTypeCardinalityDescription
licsLicense[0..*]Licenses information
[+] : JSON Example
long
'long' is a 64-bit number (-9223372036854775808 to 9223372036854775807).
OnCtiLinkDown
Notification sent when CTI link is down. This event is sent with a 30 s minimum and 60 s maximum delay
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnCtiLinkDown'
nodeIdstring[1]the nodeId which CTI link is down
[+] : JSON Example
OnCtiLinkUp
Notification sent when CTI link is up
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnCtiLinkUp'
nodeIdstring[1]the nodeId which CTI link is back to normal
[+] : JSON Example
OnLicenseExpiration
Notification sent when the license file will soon expire or has recently expired
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnLicenseExpiration'
messagestring[1]alarm message
nbDayslong[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
[+] : JSON Example
OnPbxLoaded
Notification sent when datas are fully loaded from an OXE
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnPbxLoaded'
nodeIdstring[1]node identifier
[+] : JSON Example
PbxStatus
Pbx description
NameTypeCardinalityDescription
namestring[0..1]PBX name
nodeIdint[0..1]PBX nodeId
mainAddressServerAddress[0..1]PBX address
secondaryAddressServerAddress[0..1]PBX address
versionstring[0..1]PBX version
connectedboolean[0..1]PBX CMIS connection state
loadedboolean[0..1] Is PBX's users load completed
ctiLinkStateCTILinkState[0..1] PBX CSTA connection state
securedboolean[0..1]is PBX secured connection
monitoredUserNumberint[0..1]Number of monitored PBX Users
[+] : JSON Example
ServerAddress
Address of a server
NameTypeCardinalityDescription
fqdnstring[0..1]FQDN
ipstring[0..1]IP
[+] : JSON Example
string
'string' represents character strings.
SystemStatus
System description Management package
NameTypeCardinalityDescription
logicalAddressServerAddress[0..1]System logical address
startDatedateTime[0..1]

Since version 2.2

Start date (UTC).
haboolean[0..1]is System in HA mode
primarystring[0..1]if System is in HA mode, fqdn of the current active system
primaryVersionstring[0..1]

Since version 2.2.1

version of the current active system
secondarystring[0..1]if System is in HA mode, fqdn of the backup system
secondaryVersionstring[0..1]

Since version 2.2.1

version of the backup system
pbxsPbxStatus[0..*]PBXs information
licenseLicenseStatus[0..1] The total number of each license type available for the system
configurationTypeConfigurationTypeDTO[0..1] Type of configuration
[+] : JSON Example
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

ResourceMethodDescription
/messaging/mailboxesGETGet all the user's mailboxes.
/messaging/mailboxes/{mailboxId}POSTConnect to a mailbox and retrieve the information.
/messaging/mailboxes/{mailboxId}/voicemailsGETRetrieve all user's voicemails, or only those specified by the filter parameters offset / limit / newOnly.
DELETEDelete several or all voicemails .
/messaging/mailboxes/{mailboxId}/voicemails/{voicemailId}DELETE

Delete the specified voicemail.

GET

Retrieve a given user's voicemail wav file.

Notification summary

NotificationDescription
OnEventSummaryUpdatedNotification sent each time the user's counters have changed.

Resources

/messaging/mailboxes

Methods
GET/messaging/mailboxes
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
The license MESSAGING is required.
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200MailBoxesapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get the user's mailbox

/messaging/mailboxes/{mailboxId}

Methods
POST/messaging/mailboxes/{mailboxId}
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
The license MESSAGING is required.
Request
path parameters
parametertypedescription
mailboxIdstringIdentifier of the mailbox.
query parameters
parametertypedescription
loginNamestringLogin 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.
withUserPwdstring 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
ConnectRequestapplication/json
ConnectRequest
Response
codetypemedia typesdescription
200MailBoxInfoapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Connect to the mailbox

[+] : Connect to the mailbox with the user password

/messaging/mailboxes/{mailboxId}/voicemails

Methods
GET/messaging/mailboxes/{mailboxId}/voicemails
Retrieve all user's voicemails, or only those specified by the filter parameters offset / limit / newOnly.
Licenses
The license MESSAGING is required.
Request
path parameters
parametertypedescription
mailboxIdstringIdentifier of the mailbox.
query parameters
parametertypedescription
offsetintthe offset from which to start retrieving the voicemail list (Default value is 0).
limitintthe maximum number of items to return (Default value is -1: no limit).
newOnlybooleanfilter only unread voicemail if set to 'true' (Default value is 'false').
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200Voicemailsapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get all the voicemails id in the mailbox

DELETE/messaging/mailboxes/{mailboxId}/voicemails
Delete several or all voicemails .
NOTE To be able to do this operation, a previous call to the following resources must be done: null

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
The license MESSAGING is required.
Request
query parameters
parametertypedescription
msgIdsstringlist of voice message Ids to delete (comma separated list of voicemailIds).
or null if all messages must be deleted.
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : delete all the voicemails

[+] : delete 2 voicemails

Associated notifications

/messaging/mailboxes/{mailboxId}/voicemails/{voicemailId}

Methods
DELETE/messaging/mailboxes/{mailboxId}/voicemails/{voicemailId}

Delete the specified voicemail.


NOTE To be able to do this operation, a previous call to the following resources must be done: null

NOTE: If successfull, OnEventSummaryUpdated OnEventSummaryUpdated event will be generated to refresh the counters.

Licenses
The license MESSAGING is required.
Request
path parameters
parametertypedescription
voicemailIdstringIdentifier of the message.
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : delete the voicemail

Associated notifications
GET/messaging/mailboxes/{mailboxId}/voicemails/{voicemailId}

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: null

Licenses
The license MESSAGING is required.
Request
path parameters
parametertypedescription
mailboxIdstringIdentifier of the mailbox.
voicemailIdstringIdentifier of the message.
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
200application/octet-stream
OK
400Bad Request
403Forbidden
500Internal Server Error
503Service Unavailable
Examples

[+] : get the voicemail

Representations

boolean
'boolean' is a data type, having two values (true and false).
ConnectRequest
Voice mail connection request data.
NameTypeCardinalityDescription
passwordstring[0..1]voice mail account password.
[+] : JSON Example
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).
EventSummary
Describes an event summary.
NameTypeCardinalityDescription
missedCallsNbnonNegativeInteger[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.
voiceMessagesNbnonNegativeInteger[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.
callBackRequestsNbnonNegativeInteger[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.
faxNbnonNegativeInteger[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.
newTextNbnonNegativeInteger[0..1]

Since version 2.2

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.
oldTextNbnonNegativeInteger[0..1]

Since version 2.2

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.
eventWaitingboolean[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.
[+] : JSON Example
Associated method :
Identifier
Key information to help retrieving a participant.
NameTypeCardinalityDescription
loginNamestring[0..1]Login name.
phoneNumberstring[0..1]Company phone number.
instantMessagingIdstring[0..1]Instant messaging identity.
companyEmailstring[0..1]Company email.
[+] : JSON Example
int
'int' is a 32-bit number (-2147483648 to 2147483647).
MailBox
Descriptor of a mailbox.
NameTypeCardinalityDescription
idstring[0..1]Identifier of the mailbox.
namestring[0..1]Name of the mailbox.
capabilitiesMailBoxCapabilities[0..1]Capabilities supported by the mailbox.
[+] : JSON Example
MailBoxCapabilities
List the capabilities supported by a mailbox.
NameTypeCardinalityDescription
listMessagesboolean[0..1]Voicemail server can return the list of messages.
getMessagesboolean[0..1]Voice messages can be downloaded.
getRecordboolean[0..1]Recorded message can be downloaded.
playboolean[0..1]Voicemail server is capable of playing voice messages.
pauseboolean[0..1]Playing voice message can be paused and resumes from the position it has been paused.
hangupboolean[0..1]Media session can be terminate.
recordboolean[0..1]The voicemail server is capable of recording voice messages.
resumeboolean[0..1]Voice message recording can be resumed after being stopped.
cancelboolean[0..1]The current recording can be cancelled.
forwardboolean[0..1]The voicemail server is capable of forwarding voice messages.
callbackboolean[0..1]The voicemail server can call back the originator of the voice message.
sendboolean[0..1]Voice message or record can be sent to recipients.
eventsboolean[0..1]Voicemail server is capable to send events in case of message deposit / removal.
[+] : JSON Example
MailBoxes
Container for a list of Mailbox
NameTypeCardinalityDescription
mailboxesMailBox[0..*]List of user mailboxes.
[+] : JSON Example
Associated method :
MailBoxInfo
Descriptor of a MailboxInfo.
NameTypeCardinalityDescription
totalVoiceMsgint[0..1]Number of voice messages.
newVoiceMsgint[0..1]Number of new (unread) voice messages.
storageUsageint[0..1]Threshold indicating mailbox usage ratio. 100 mean 100% full. No more message deposit is allowed. -1 means information not available.
[+] : JSON Example
Associated method :
nonNegativeInteger
'nonNegativeInteger' is all positive integer numbers and zero. Negative integers are excluded.
OnEventSummaryUpdated
Notification sent each time the user's counters have changed.
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnEventSummaryUpdated'
loginNamestring[1]Login name of the user (identifier which can be used for filtering).
eventSummaryEventSummary[1]The new event summary.
[+] : JSON Example
Associated methods :
PartyInfo
Full description of a party (i.e. participant's description).
NameTypeCardinalityDescription
idIdentifier[1]Key information to help retrieving a participant.
firstNamestring[0..1]First name of the participant.
lastNamestring[0..1]Last name of the participant.
displayNamestring[0..1]Display name of the participant.
[+] : JSON Example
string
'string' represents character strings.
Voicemail
Descriptor of a voice message.
NameTypeCardinalityDescription
voicemailIdstring[1]Identifier of the voicemail.
fromPartyInfo[0..1]Originator of the voicemail.
durationint[1]Duration, in seconds, of the voicemail.
datedateTime[1]Date and time (ISO-8601) of the message.
unreadboolean[1]Indicates if this message has been read or not.
highPriorityboolean[1]Indicate if the message has been tagged as urgent or not.
[+] : JSON Example
Voicemails
List of voicemails.
NameTypeCardinalityDescription
voicemailsVoicemail[0..*]List of voicemails.
[+] : JSON Example
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

ResourceMethodDescription
/users/{loginName}/devicesGETGet all the devices of a user
/users/{loginName}/devices/{deviceId}GETGet one device of a user
/users/{loginName}/devices/{deviceId}/REActivePUTActivate or deactivate the remote extension device of a user
/users/{loginName}/devices/{deviceId}/REActiveStateGETGet the remote extension activation state of a user
/users/{loginName}/devices/{deviceId}/addonsGETGet the addons module types associated to a device of a user
/users/{loginName}/devices/{deviceId}/associatePUTSet the associate of a device of a user
/users/{loginName}/devices/{deviceId}/camponPUTSet or reset the campon state of a device of a user
/users/{loginName}/devices/{deviceId}/dynamicStateGETGet the dynamic state (lock/campon/associate) of a device of a user
/users/{loginName}/devices/{deviceId}/lockPUTSet or reset the lock state of a device of a user
/users/{loginName}/devices/{deviceId}/pinGETGet the PIN configuration associated to a device of a user
PUTSet the PIN configuration associated to a device of a user
/users/{loginName}/devices/{deviceId}/programmeableKeysGETGet the programmeable keys (already programmed and not affected) associated to a device of a user
/users/{loginName}/devices/{deviceId}/programmeableKeys/{position}PUTSet a programmeable key associated to a device of a user
DELETEErase a programmeable key associated to a device of a user
/users/{loginName}/devices/{deviceId}/programmedKeysGETGet the already programmed keys associated to a device of a user
/users/{loginName}/devices/{deviceId}/softKeysGETGet the soft keys associated to a device of a user
/users/{loginName}/devices/{deviceId}/softKeys/{position}PUTSet a soft key associated to a device of a user
DELETEErase a soft key associated to a device of a user
/users/{loginName}/prefixesGETGet a pbx prefix related to a user.

Resources

/users/{loginName}/devices

Methods
GET/users/{loginName}/devices
Get all the devices of a user
Licenses
The license API_PHONESETPROG is required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user to retrieve the devices.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the result code and, if the code is SUCCESS, the list of devices Devices
codetypemedia typesdescription
200Devicesapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get the devices of the user1

/users/{loginName}/devices/{deviceId}

Methods
GET/users/{loginName}/devices/{deviceId}
Get one device of a user
Licenses
The license API_PHONESETPROG is required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user to retrieve the device.
deviceIdstringidentifier of the device to retrieve.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the result code and, if the code is SUCCESS, the list of devices Device
codetypemedia typesdescription
200Deviceapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get the device 1234 of the user1

/users/{loginName}/devices/{deviceId}/REActive

Methods
PUT/users/{loginName}/devices/{deviceId}/REActive
Activate or deactivate the remote extension device of a user
History
Since version 1.0.1
Licenses
The license API_PHONESETPROG is required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user.
deviceIdstringidentifier of the RE device to activate/deactivate.
query parameters
parametertypedescription
activatebooleanactivation or deactivationboolean.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the result code
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : activate the RE device 1234 of the user1

/users/{loginName}/devices/{deviceId}/REActiveState

Methods
GET/users/{loginName}/devices/{deviceId}/REActiveState
Get the remote extension activation state of a user
History
Since version 1.0.1
Licenses
The license API_PHONESETPROG is required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user.
deviceIdstringidentifier of the RE to get the activation state.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the activation state
codetypemedia typesdescription
200REActivationStateapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get the activation state of the RE 1234 of the user1

/users/{loginName}/devices/{deviceId}/addons

Methods
GET/users/{loginName}/devices/{deviceId}/addons
Get the addons module types associated to a device of a user
Licenses
The license API_PHONESETPROG is required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user.
deviceIdstringidentifier of the device to retrieve the soft keys.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the result code and, if the code is SUCCESS, the list of soft keys Addons
codetypemedia typesdescription
200Addonsapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable

/users/{loginName}/devices/{deviceId}/associate

Methods
PUT/users/{loginName}/devices/{deviceId}/associate
Set the associate of a device of a user
History
Since version 1.0.1
Licenses
The license API_PHONESETPROG is required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user.
deviceIdstringidentifier of the device to set the associate.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
Associateapplication/json
Response
Returns the result code
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : update the associate for the device 1234 of the user1

/users/{loginName}/devices/{deviceId}/campon

Methods
PUT/users/{loginName}/devices/{deviceId}/campon
Set or reset the campon state of a device of a user
Licenses
The license API_PHONESETPROG is required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user.
deviceIdstringidentifier of the device to set or reset the campon.
query parameters
parametertypedescription
activatebooleanactivation or deactivationboolean.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the result code
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : activate the lock for the device 1234 of the user1

/users/{loginName}/devices/{deviceId}/dynamicState

Methods
GET/users/{loginName}/devices/{deviceId}/dynamicState
Get the dynamic state (lock/campon/associate) of a device of a user
Licenses
The license API_PHONESETPROG is required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user.
deviceIdstringidentifier of the device to get the dynamic state.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the dynamic state
codetypemedia typesdescription
200DynamicStateapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get the dynamic state of the device 1234 of the user1

/users/{loginName}/devices/{deviceId}/lock

Methods
PUT/users/{loginName}/devices/{deviceId}/lock
Set or reset the lock state of a device of a user
Licenses
The license API_PHONESETPROG is required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user.
deviceIdstringidentifier of the device to lock or unlock.
query parameters
parametertypedescription
activatebooleanactivation or deactivationboolean.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the result code
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : activate the lock for the device 1234 of the user1

/users/{loginName}/devices/{deviceId}/pin

Methods
GET/users/{loginName}/devices/{deviceId}/pin
Get the PIN configuration associated to a device of a user
History
Since version 1.0.1
Licenses
The license API_PHONESETPROG is required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user.
deviceIdstringidentifier of the device.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the result code and, if the code is SUCCESS, the PIN information Pin
codetypemedia typesdescription
200Pinapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get the PIN information of the device 1234 of the user1

PUT/users/{loginName}/devices/{deviceId}/pin
Set the PIN configuration associated to a device of a user
History
Since version 1.0.1
Licenses
The license API_PHONESETPROG is required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user.
deviceIdstringidentifier of the device to set.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
Pinapplication/json
Response
Returns the result code
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : update PIN information for the device 1234 of the user1

/users/{loginName}/devices/{deviceId}/programmeableKeys

Methods
GET/users/{loginName}/devices/{deviceId}/programmeableKeys
Get the programmeable keys (already programmed and not affected) associated to a device of a user
Licenses
The license API_PHONESETPROG is required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user to retrieve the pKeys.
deviceIdstringidentifier of the device to retrieve the programmeable keys.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the result code and, if the code is SUCCESS, the list of programmeable keys (programmed and not affected) ProgrammeableKeys
codetypemedia typesdescription
200ProgrammeableKeysapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get the pkeys of the device 1234 of the user1

/users/{loginName}/devices/{deviceId}/programmeableKeys/{position}

Methods
PUT/users/{loginName}/devices/{deviceId}/programmeableKeys/{position}
Set a programmeable key associated to a device of a user
Licenses
The license API_PHONESETPROG is required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user.
deviceIdstringidentifier of the device where to modify the programmeable key.
positionintthe position of the pKey to set(MUST be the same value that the key object attribute one).
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
ProgrammeableKeyapplication/json
Response
Returns the result code
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Set the pkey nbr 3 of the device 1234 of the user1

DELETE/users/{loginName}/devices/{deviceId}/programmeableKeys/{position}
Erase a programmeable key associated to a device of a user
Licenses
The license API_PHONESETPROG is required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user.
deviceIdstringidentifier of the device where to delete the programmeable key.
positionintthe position of the pKey to delete.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the result code
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Delete the pkey nbr 3 of the device 1234 of the user1

/users/{loginName}/devices/{deviceId}/programmedKeys

Methods
GET/users/{loginName}/devices/{deviceId}/programmedKeys
Get the already programmed keys associated to a device of a user
Licenses
The license API_PHONESETPROG is required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user to retrieve the pKeys.
deviceIdstringidentifier of the device to retrieve the programmeable keys.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the result code and, if the code is SUCCESS, the list of programmed keys ProgrammeableKeys
codetypemedia typesdescription
200ProgrammeableKeysapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get the pkeys of the device 1234 of the user1

/users/{loginName}/devices/{deviceId}/softKeys

Methods
GET/users/{loginName}/devices/{deviceId}/softKeys
Get the soft keys associated to a device of a user
Licenses
The license API_PHONESETPROG is required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user.
deviceIdstringidentifier of the device to retrieve the soft keys.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the result code and, if the code is SUCCESS, the list of soft keys SoftKeys
codetypemedia typesdescription
200SoftKeysapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get the softkeys of the device 1234 of the user1

/users/{loginName}/devices/{deviceId}/softKeys/{position}

Methods
PUT/users/{loginName}/devices/{deviceId}/softKeys/{position}
Set a soft key associated to a device of a user
Licenses
The license API_PHONESETPROG is required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user.
deviceIdstringidentifier of the device where to modify the soft key.
positionintthe position of the softKey to set(MUST be the same value that the key object attribute one).
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
SoftKeyapplication/json
the pKey to create or setSoftKey.
Response
Returns the result code
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Set the softkey nbr 3 of the device 1234 of the user1

DELETE/users/{loginName}/devices/{deviceId}/softKeys/{position}
Erase a soft key associated to a device of a user
Licenses
The license API_PHONESETPROG is required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user.
deviceIdstringidentifier of the device where to erase the soft key.
positionintthe position of the pKey to delete.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the result code
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Delete the softkey nbr 3 of the device 1234 of the user1

/users/{loginName}/prefixes

Methods
GET/users/{loginName}/prefixes
Get a pbx prefix related to a user.
A prefix may be used to activate a service directly through a telephony make call.
History
Since version 1.0.1
Licenses
The license API_PHONESETPROG is required.
Request
path parameters
parametertypedescription
loginNamestringLogin name of the user to retrieve the pbx prefix.
query parameters
parametertypedescription
typestringMandatory prefix type (See example below) .
valuestringMandatory 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
Returns the result code and, if the code is SUCCESS, the prefix number Prefix
codetypemedia typesdescription
200Prefixapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : For the user1, get the pbx prefix "Overflow on busy on associated"

Representations

Addons
List of addons of a device.
NameTypeCardinalityDescription
addonTypesAddonType[0..*]List of the soft Keys.
[+] : JSON Example
Associated method :
AddonType
Phone Set addon type values.
ValueDescription
NO_EXTENSIONSno extension module
ADDON_10_KEYSTen keys extension module
ADDON_20_KEYSTwenty keys extension module
ADDON_40_KEYSForty keys extension module
ADDON_EL_14_KEYSFourteen electronic keys extension module
Associate
Associate number
NameTypeCardinalityDescription
numberstring[0..1]associate number.
[+] : JSON Example
Associated method :
boolean
'boolean' is a data type, having two values (true and false).
Device
Describe a device.
NameTypeCardinalityDescription
typeDeviceType[0..1]Device's type.
idstring[0..1]Device identifier which is used to identify the device in telephony requests and events.
subTypestring[0..1]Device's subtype : For a DESKPHONE type, we could have : ANALOG, NOE_C_Color_IP, ...
[+] : JSON Example
Associated method :
Devices
List of the devices for a given user.
NameTypeCardinalityDescription
devicesDevice[0..*]List of the devices for a given user.
[+] : JSON Example
Associated method :
DeviceType
The device type values.
ValueDescription
DECTA wireless phone set used within the enterprise.
DESKPHONEA phone set on an office's desk.
MOBILEA mobile phone.
SOFTPHONEA phone started from a computer with VOIP.
DynamicState
Describe the dynamic state of the device.
NameTypeCardinalityDescription
lockboolean[0..1]Device's lockState.
camponboolean[0..1]Device's camponState.
associatestring[0..1] Device's associate
[+] : JSON Example
Associated method :
int
'int' is a 32-bit number (-2147483648 to 2147483647).
Pin
The 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.
NameTypeCardinalityDescription
Pin_Numberstring[0..1]PIN number. The number of digits must agree with the PBX configuration
With_Secret_Codeboolean[0..1]Select TRUE to force the device to dial the set's secret code before accessing private calls
Pin_Type_Of_Controlstring[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_Groupint[0..1]PIN group number
[+] : JSON Example
Associated methods :
Prefix
Pbx Prefix value and number
NameTypeCardinalityDescription
valuestring[0..1]String prefix value, example "Group_call_pick_up".
numberstring[0..1]String prefix number, example "56".
[+] : JSON Example
Associated method :
ProgrammeableKey
The description of a programmeable Key
NameTypeCardinalityDescription
positionint[0..1]key position.
numberstring[0..1]phone number associated to the key
mnemonicstring[0..1]mnemonic associated to the key
lockedboolean[0..1]Is the key locked
[+] : JSON Example
Associated method :
ProgrammeableKeys
List of the programmeable Keys of a device.
NameTypeCardinalityDescription
pkeysProgrammeableKey[0..*]List of the programmeable keys.
[+] : JSON Example
Associated methods :
REActivationState
Describe the dynamic state of the device.
NameTypeCardinalityDescription
activeboolean[0..1]is Remote Extension active.
[+] : JSON Example
Associated method :
SoftKey
The description of a soft Key
NameTypeCardinalityDescription
positionint[0..1]key position.
numberstring[0..1]phone number associated to the key
mnemonicstring[0..1]mnemonic associated to the key
[+] : JSON Example
Associated method :
SoftKeys
List of the soft Keys of a device.
NameTypeCardinalityDescription
skeysSoftKey[0..*]List of the soft Keys.
[+] : JSON Example
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

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

ResourceMethodDescription
/pbxsGETGet the lists of all PBX instances.
/pbxs/{nodeId}GETGet PBX information.
/pbxs/{nodeId}/instancesGETGet 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.
/pbxs/{nodeId}/instances/{objectName}/{objectId}GETGet an 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..
PUTChange one or more attribute values of a PBX object or execute an allowed actions (ReinitMemory,...)
DELETEDelete a PBX Object.
/pbxs/{nodeId}/instances/{objectName}GETGet the list of PBX object instances, the instances are shown by its attribute Id.
POSTCreate a PBX Object.
/pbxs/{nodeId}/modelGETGet the description of the data model of one PBX.
/pbxs/{nodeId}/model/{objectName}GETGet the PBX Model by name.

Notifications summary

NotificationDescription
OnPbxObjectInstanceCreatedNotification sent when a PBX object instance is created Only Object Subscriber is concerned by this event
OnPbxObjectInstanceDeletedNotification sent when a PBX object instance is deleted Only Object Subscriber is concerned by this event
OnPbxObjectInstanceModifiedNotification 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/pbxs
Get the lists of all PBX instances.
Licenses
The license MANAGEMENT is required.
Request
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200Pbxsapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : get the list of the PBX managed by this O2G.

/pbxs/{nodeId}

Methods
GET/pbxs/{nodeId}
Get PBX information.
Licenses
The license MANAGEMENT is required.
Request
path parameters
parametertypedescription
nodeIdstring
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200Pbxapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : get the information about the PBX with the nodeId equals 101.

/pbxs/{nodeId}/instances

Methods
GET/pbxs/{nodeId}/instances
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
The license MANAGEMENT is required.
Request
path parameters
parametertypedescription
nodeIdstringPBX Node.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200PbxObjectapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Retrieves the node 101 object contain (attribute list and sub-object name list).

/pbxs/{nodeId}/instances/{objectName}/{objectId}

Methods
GET/pbxs/{nodeId}/instances/{objectName}/{objectId}
Get an 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
The license MANAGEMENT is required.
Request
path parameters
parametertypedescription
nodeIdstringPBX Node.
objectName/objectIdstringFull description of object Id with the following syntax: {object1Name}/{object1Id}/{object2Name}/{object2Id}/..../{objectxName}/{objectxId}.
query parameters
parametertypedescription
attributesstring 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200PbxObjectapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
405application/json
Method Not Allowed
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get the 4722 Subscriber.

[+] : Get a pilot with one given attribute.

PUT/pbxs/{nodeId}/instances/{objectName}/{objectId}
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
The license MANAGEMENT is required.
Request
path parameters
parametertypedescription
nodeIdstringPBX Node.
objectName/objectIdstringThe full identifier of the PBX object ({object1Name}/{object1Id}/{object2Name}/{object2Id}/..../{objectxName}/{objectxId}).
query parameters
parametertypedescription
actionstringSpecial 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
PbxAttributesapplication/json
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
405application/json
Method Not Allowed
409application/json
Conflict
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Change the attributes values of the Subscriber_Alias, instance 5 for the Subscriber 70300.

[+] : Execute 'ReinitMemory' action on the 4722 Subscriber instance.

[+] : Set a list attribute value: erase the associated multidevices of the 70123.

[+] : Set a list attribute value: set the 2 associated multidevices of the 70123.

[+] : Set a complex attribute value: set 2 skills(1 and 2) in the skill sets of an ccd operator 70025.

[+] : Add 2 skills(3 and 4) in the skill sets of an ccd operator 70025.

[+] : Remove 1 skill from the skill sets of an ccd operator 70025.

[+] : Add 2 devices(1 and 2) in the attached devices of a Subscriber 60002.

[+] : Remove a simple attribute value: remove 1 device from the attached devices of a Subscriber 60002.

DELETE/pbxs/{nodeId}/instances/{objectName}/{objectId}
Delete a PBX Object.
Licenses
The license MANAGEMENT is required.
Request
path parameters
parametertypedescription
nodeIdstringPBX Node.
objectName/objectIdstringThe full identifier of the PBX object ({object1Name}/{object1Id}/{object2Name}/{object2Id}/..../{objectxName}/{objectxId}).
query parameters
parametertypedescription
forcestringUse 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
405application/json
Method Not Allowed
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Delete the Subscriber_Alias, instance 5 for the 4722 Subscriber

[+] : Delete the 4722 Subscriber by using the FORCED_DELETE.

/pbxs/{nodeId}/instances/{objectName}

Methods
GET/pbxs/{nodeId}/instances/{objectName}
Get the list of PBX object instances, the instances are shown by its attribute Id.
Licenses
The license MANAGEMENT is required.
Request
path parameters
parametertypedescription
nodeIdstringPBX Node.
objectNamestringFull description of the object name with the following syntax: {objectName}/{objectId}/{object1Name}/{object1Id}/..../{objectxName}
query parameters
parametertypedescription
filterstringThe 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:
  • and
  • or
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.
attributesstring 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200PbxObjectIdsapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
405application/json
Method Not Allowed
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get all instances of the "Subscriber_Alias" objects for the 4722 Subscriber.

[+] : Get with simple filter: Get all instances of the Subscriber objects which Annu_Name begin with "Jz".

[+] : Get with simple filter: Get all instances of the Subscriber objects with Analog Station_Type.

[+] : Get with composed "OR" filter: Get all instances of the Subscriber objects with Station_Type is Analog or Remote_Extension.

[+] : Get the Free_Range_List (under System_Parameters)

[+] : 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.

POST/pbxs/{nodeId}/instances/{objectName}
Create a PBX Object.
Licenses
The license MANAGEMENT is required.
Request
path parameters
parametertypedescription
nodeIdstringPBX Node.
objectNamestringThe full identifier of the PBX object ({object1Name}/{object1Id}/{object2Name}/{object2Name}/..../{objectxName}).
query parameters
parametertypedescription
actionstring
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
PbxAttributesapplication/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
codemedia typesdescription
201application/json
Created
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
405application/json
Method Not Allowed
409application/json
Conflict
500application/json
Internal Server Error
503application/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).

[+] : 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).

[+] : Create a free range of number with name "range1", begin range=2000 and end range=3000

/pbxs/{nodeId}/model

Methods
GET/pbxs/{nodeId}/model
Get the description of the data model of one PBX.
Licenses
The license MANAGEMENT is required.
Request
path parameters
parametertypedescription
nodeIdstringPBX Node.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200ObjectModelapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get the model's tree of one PBX.

/pbxs/{nodeId}/model/{objectName}

Methods
GET/pbxs/{nodeId}/model/{objectName}
Get the PBX Model by name.
Licenses
The license MANAGEMENT is required.
Request
path parameters
parametertypedescription
nodeIdstringPBX Node.
objectNamestring
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200ObjectModelapplication/json
OK
400application/json
Bad Request
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Retrieve Subscriber model.

Representations

AttributeModel
Information about PBX object attributes
NameTypeCardinalityDescription
namestring[0..1]name of the attribute
mandatoryboolean[0..1]Attribute is mandatory, Attribute is the identifier (ID) of the object
typeValuestring[0..1]Type of the attribute, (octetString,integer,boolean,..)
multiValueboolean[0..1]Multi value, value is a list or not a list
allowedValuesstring[0..*]Allowed values for the attribute
lengthValuestring[0..1]Max length for the attribute value. Only used for the octetString type
defautValuestring[0..1]Default value of the attribute
filteringboolean[0..1]Attribute can be filtering
usedWhenstring[0..1]UsedWhen expression of the attribute
[+] : JSON Example
boolean
'boolean' is a data type, having two values (true and false).
int
'int' is a 32-bit number (-2147483648 to 2147483647).
ObjectModel
Information about PBX object
NameTypeCardinalityDescription
objectNamestring[0..1]Name of the object.
attributesAttributeModel[0..*]List of attribute for this object.
objectsObjectModel[0..*]List of sub-objects
hiddenboolean[0..1]Object is hidden
createboolean[0..1]Object can be created
deleteboolean[0..1]Object can be deleted
setboolean[0..1]Object can be updated
getboolean[0..1]Object can be read
otherActionsstring[0..*]Allowed actions
[+] : JSON Example
Associated methods :
OnPbxObjectInstanceCreated
Notification sent when a PBX object instance is created Only Object Subscriber is concerned by this event
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnPbxObjectInstanceCreated'
objectNamestring[1]Object name
objectIdstring[1]Object instance Id
nodeIdstring[1]Node Id which houses object instance
fatherPbxObjectFather[0..1]

Since version 2.1

Object father if instance is a subObject
[+] : JSON Example
OnPbxObjectInstanceDeleted
Notification sent when a PBX object instance is deleted Only Object Subscriber is concerned by this event
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnPbxObjectInstanceDeleted'
objectNamestring[1]Object name
objectIdstring[1]Object instance Id
nodeIdstring[1]Node Id which houses object instance
fatherPbxObjectFather[0..1]

Since version 2.1

Object father if instance is a subObject
[+] : JSON Example
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.
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnPbxObjectInstanceModified'
objectNamestring[1]Object name
objectIdstring[1]Object instance Id
nodeIdstring[1]Node Id which houses object instance
fatherPbxObjectFather[0..1]

Since version 2.1

Object father if instance is a subObject
[+] : JSON Example

Pbx
PBX data.
NameTypeCardinalityDescription
nodeIdint[0..1]Node of the PBX.
fqdnstring[0..1]FQDN of the PBX.
[+] : JSON Example
Associated method :
PbxAttribute
PBX attribute data
NameTypeCardinalityDescription
namestring[0..1]Name of property
valuestring[0..*]Value of property for simple strings
complexValuePbxComplexAttribute[0..*] Value of property for complex objects
[+] : JSON Example
PbxAttributes
NameTypeCardinalityDescription
attributesPbxAttribute[0..*]Attribute data list for PBX object
[+] : JSON Example
Associated methods :
PbxComplexAttribute
PBX attribute data
NameTypeCardinalityDescription
namestring[0..1]Name of object
attributesPbxAttribute[0..*]Value = set of attributes
[+] : JSON Example
PbxObject
PBX object data.
NameTypeCardinalityDescription
objectNamestring[0..1]Name of the object.
objectIdstring[0..1]Attribute value of the object used as Identifier.
attributesPbxAttribute[0..*]attributes list of the object.
objectNamesstring[0..*]List of the sub-object names
createboolean[0..1]Object can be created
deleteboolean[0..1]Object can be deleted
setboolean[0..1]Object can be updated
getboolean[0..1]Object can be read
otherActionsstring[0..*]Allowed actions
[+] : JSON Example
Associated methods :
PbxObjectFather
Represent father if instance is a sub object (ex: ACD2_Attaching_List) CRO2G-106: Extend eventing for PBX management
NameTypeCardinalityDescription
objectNamestring[1]Father object instance Id
objectIdstring[1]Father object instance Id
[+] : JSON Example
PbxObjectIds
PBX object identifier list (with optional attributes)
NameTypeCardinalityDescription
objectNamestring[0..1]Object Name
objectIdsstring[0..*]List of object Id
objectsPbxShortObject[0..*] Optional list of selected attributes for each object
[+] : JSON Example
Associated method :
Pbxs
list of PBX identifier
NameTypeCardinalityDescription
nodeIdsstring[0..*]List of nodeId.
[+] : JSON Example
Associated method :
PbxShortObject
PBX short object description.
NameTypeCardinalityDescription
objectIdstring[0..1]Attribute value of the object used as Identifier.
attributesPbxAttribute[0..*]attributes list of the object.
[+] : JSON Example
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:

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:

History

Since version 2.0

Resources summary

ResourceMethodDescription
/acd/agent/configGETGet the ACD agent configuration(type, proacd, processing groups, headset).
/acd/agent/enterPGPOSTEnter a Supervisor in a PG (2 step logon).
/acd/agent/exitPGPOSTExit a Supervisor from a PG (2 step logoff).
/acd/agent/intrusionPOSTAllow an ACD Supervisor agent to request an intrusion on an agent call, according to 3 modes(normal or restricted intrusion or just discrete listening).
PUTAllow 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).
/acd/agent/logoffPOSTLogOff an agent or a Supervisor (one step logoff).
/acd/agent/logonPOSTLogOn an agent or a supervisor.
/acd/agent/pausePOSTPut an ACD agent in Pause.
/acd/agent/permanentListeningPOSTAllow an ACD Supervisor agent to request a permanent listening on an agent.
/acd/agent/readyPOSTPut an agent in READY state.
/acd/agent/stateGETGet the ACD agent state.
/acd/agent/state/snapshotPOSTAsk a snapshot event on agent state.
/acd/agent/supervisorHelpPOSTAllow an ACD agent to request the supervisor help.
DELETEAllow an ACD agent to cancel or its supervisor to reject the request of supervisor help.
/acd/agent/withdrawPOSTWithdraw an agent.
/acd/agent/withdrawReasonsGETGet the PG withdraw reason list.
/acd/agent/wrapUpPOSTPut an ACD agent in WrapUp.

Notifications summary

NotificationDescription
OnAgentStateChangedEvent sent when ACD agent state is modified
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.
OnSupervisorHelpRequestedEvent sent when an ACD agent requests the assistance of its supervisor

Resources

/acd/agent/config

Methods
GET/acd/agent/config
Get the ACD agent configuration(type, proacd, processing groups, headset).
Licenses
API_CONTACTCENTER_AGENT
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200AgentConfigapplication/json
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get the configuration of agent

/acd/agent/enterPG

Methods
POST/acd/agent/enterPG
Enter a Supervisor in a PG (2 step logon). The Supervisor must be already logged on
History
Since version 2.1
Licenses
API_CONTACTCENTER_AGENT
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
PGRequestapplication/json
PGRequest: Processing Group number to enter in
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Enter a Supervisor in PG 60121

Associated notifications

/acd/agent/exitPG

Methods
POST/acd/agent/exitPG
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.
History
Since version 2.1
Licenses
API_CONTACTCENTER_AGENT
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
PGRequestapplication/json
PGRequest: Processing Group number to exit from
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Exit a Supervisor from PG 60121

Associated notifications

/acd/agent/intrusion

Methods
POST/acd/agent/intrusion
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
API_CONTACTCENTER_AGENT
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
IntrusionRequestapplication/json
IntrusionRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : the supervisor asks a restricted intrusion on an agent call

Associated notifications
telephony, eventing
PUT/acd/agent/intrusion
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
History
Since version 2.1
Licenses
API_CONTACTCENTER_AGENT
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
ChangeIntrusionModeRequestapplication/json
ChangeIntrusionModeRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : the supervisor asks a restricted intrusion on an agent call

Associated notifications
telephony, eventing

/acd/agent/logoff

Methods
POST/acd/agent/logoff
LogOff an agent or a Supervisor (one step logoff).
Licenses
API_CONTACTCENTER_AGENT
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Log-off the agent

Associated notifications

/acd/agent/logon

Methods
POST/acd/agent/logon
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
API_CONTACTCENTER_AGENT
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
LoggOnAgentRequestapplication/json
LoggOnAgentRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Log-on the agent onto the pro-acd phone device "xxxx" and in the processing group "60121"

[+] : Log-on the agent onto the pro-acd phone device "xxxx" (the pg group is not given in this case)

Associated notifications

/acd/agent/pause

Methods
POST/acd/agent/pause
Put an ACD agent in Pause.
Licenses
API_CONTACTCENTER_AGENT
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Put the agent in pause

Associated notifications

/acd/agent/permanentListening

Methods
POST/acd/agent/permanentListening
Allow an ACD Supervisor agent to request a permanent listening on an agent.
Licenses
API_CONTACTCENTER_AGENT
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
PermanentListeningRequestapplication/json
PermanentListeningRequest
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : the supervisor asks a permanent listening on the agent 123

Associated notifications

/acd/agent/ready

Methods
POST/acd/agent/ready
Put an agent in READY state.
Licenses
API_CONTACTCENTER_AGENT
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Put the agent in READY state

Associated notifications

/acd/agent/state

Methods
GET/acd/agent/state
Get the ACD agent state.
Licenses
API_CONTACTCENTER_AGENT
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200AgentStateapplication/json
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get the agent state of an agent loged in idle state

[+] : Get the agent state of an agent loged off

/acd/agent/state/snapshot

Methods
POST/acd/agent/state/snapshot
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.
History
Since version 2.1
Licenses
API_CONTACT_CENTER_AGENT
Request
query parameters
parametertypedescription
loginNamestringLogin 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. CAUTION!: this request is immediately acknowledged but the processing may take a long time if the number of users is huge.
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Associated notifications

/acd/agent/supervisorHelp

Methods
POST/acd/agent/supervisorHelp
Allow an ACD agent to request the supervisor help.
Licenses
API_CONTACTCENTER_AGENT
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : the agent asks its supervisor help

Associated notifications
DELETE/acd/agent/supervisorHelp
Allow an ACD agent to cancel or its supervisor to reject the request of supervisor help.
Licenses
API_CONTACTCENTER_AGENT
Request
query parameters
parametertypedescription
loginNamestringLogin 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.
otherstring
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Cancel Supervisor help by the Agent (supervisor = 1000)

[+] : Reject Supervisor help by the supervisor (agent = 1001)

Associated notifications

/acd/agent/withdraw

Methods
POST/acd/agent/withdraw
Withdraw an agent.
Licenses
API_CONTACTCENTER_AGENT
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
WithdrawAgentRequestapplication/json
Reason of the withdraw
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Withdraw the agent with the reason nbr 1

Associated notifications

/acd/agent/withdrawReasons

Methods
GET/acd/agent/withdrawReasons
Get the PG withdraw reason list.
Licenses
API_CONTACTCENTER_AGENT
Request
query parameters
parametertypedescription
loginNamestringLogin 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.
pgNumberstring
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200WithdrawReasonsapplication/json
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get the withdraw reasons of agent for the processingGroup xxx

/acd/agent/wrapUp

Methods
POST/acd/agent/wrapUp
Put an ACD agent in WrapUp.
Licenses
API_CONTACTCENTER_AGENT
Request
query parameters
parametertypedescription
loginNamestringLogin 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 parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codemedia typesdescription
204application/json
No Content
400application/json
Bad Request
401application/json
Unauthorized
403application/json
Forbidden
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : WrapUp normal of the agent

Associated notifications

Representations

AgentConfig
Agent configuration parameters.
NameTypeCardinalityDescription
typeAgentType[1]agent/supervisor.
proacdstring[0..1]associated proacd if the agent is fixed.
processingGroupsProcessingGroups[0..1]processing groups of the agent
skillsAgentSkills[0..1]agent skills
selfAssignboolean[0..1]is the operator allowed to choose his PG
headsetboolean[0..1]has the agent a headset
helpboolean[0..1]

Since version 2.1

Has the supervisor a help capability
multilineboolean[0..1]

Since version 2.2

is multiline : true if at least one multiline programmable key is declared on the set
[+] : JSON Example
Associated method :
AgentMainState
Main agent state (loggedOn/loggedOff)
ValueDescription
UNKNOWNthe state of the agent is unknown
LOG_ONThe agent is logged on a pro-acd device
LOG_OFFThe agent is not logged
ERRORError status
AgentSkill
ACD Agent Skill.
NameTypeCardinalityDescription
numberint[0..1]skill number.
levelint[0..1]skill level.
activeboolean[0..1]is the skill active.
[+] : JSON Example
AgentSkills
List of skills of an agent.
NameTypeCardinalityDescription
skillsAgentSkill[0..*]skill list.
[+] : JSON Example
AgentState
Agent State.
NameTypeCardinalityDescription
mainStateAgentMainState[1]Main state of the agent (logged on or logged off).
subStateAgentSubState[0..1]Sub state of the agent when it is logged.
proAcdDeviceNumberstring[0..1]Pro-acd Device phone number on which the operation is invoked.
pgNumberstring[0..1]Processing group number.
withdrawReasonint[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
withdrawnboolean[0..1]

Since version 2.2

The withdrawn Boolean is present and true if the agent initial state is withdrawn
[+] : JSON Example
Associated method :
AgentSubState
Agent state when logged on
ValueDescription
READYThe agent is ready
OUT_OF_PGThe agent is logged on, but outside its pre-affected processing group
BUSYThe agent is busy
TRANSACTION_CODE_INPUTThe agent is in transaction code input step
WRAPUPThe agent is in wrap up
PAUSEThe agent is in pause
WITHDRAWThe agent is in withdraw
WRAPUP_IM
WRAPUP_EMAIL
WRAPUP_EMAIL_INTERRUPTIBLE
WRAPUP_OUTBOUND
WRAPUP_CALLBACK
AgentType
Type of agent (simple agent/supervisor)
ValueDescription
AGENTsimple agent
SUPERVISORThe agent is a SUPERVISOR
boolean
'boolean' is a data type, having two values (true and false).
ChangeIntrusionModeRequest
Request 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
NameTypeCardinalityDescription
modeIntrusionMode[1]mode of the operation normal intrusion / restricted intrusion / discrete listening
[+] : JSON Example
Associated method :
int
'int' is a 32-bit number (-2147483648 to 2147483647).
IntrusionMode
3 types of call agent intrusion by the supervisor
ValueDescription
NORMALThe supervisor can talk to both the agent and the remote client
RESTRICTEDThe supervisor can only talk to the agent but listen to the remote client
DISCRETEThe supervisor only listens to the conversation between agent and client
IntrusionRequest
Request 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
NameTypeCardinalityDescription
agentNumberstring[1]Agent phone number on which the operation is invoked.
modeIntrusionMode[0..1]mode of the operation: (default is normal) normal intrusion / restricted intrusion / discrete listening
[+] : JSON Example
Associated method :
LoggOnAgentRequest
Request to log on an acd agent or to enter a supervisor in a Processing Group.
NameTypeCardinalityDescription
proAcdDeviceNumberstring[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.
pgGroupNumberstring[0..1]Processing group number. Optional: pg number may be omitted (depends on the configuration)
headsetboolean[0..1]Headset mode. Optional: allow the operator to select the headset mode
[+] : JSON Example
Associated method :
OnAgentStateChanged
Event sent when ACD agent state is modified
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnAgentStateChanged'
loginNamestring[1]Login name of the user receiving the event.
stateAgentState[1]ACD state.
[+] : JSON Example
Associated methods :
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.
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnSupervisorHelpCancelled'
loginNamestring[1]Login name of the user receiving the event.
agentNumberstring[0..1]on the agent, the number of the supervisor which the help has been initially requested.
[+] : JSON Example
Associated method :
OnSupervisorHelpRequested
Event sent when an ACD agent requests the assistance of its supervisor
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnSupervisorHelpRequested'
loginNamestring[1]Login name of the user receiving the event.
agentNumberstring[0..1]on the agent, the number of the supervisor which the help has been requested.
[+] : JSON Example
Associated methods :
PermanentListeningRequest
Request to logg on an acd agent.
NameTypeCardinalityDescription
agentNumberstring[1]Agent phone number on which the operation is invoked.
[+] : JSON Example
Associated method :
PGRequest
Parameter used to enter/exit in/out a Processing Group.
NameTypeCardinalityDescription
pgGroupNumberstring[1]Processing group number. Optional: pg number may be omitted (depends on the configuration)
[+] : JSON Example
Associated methods :
ProcessingGroups
List of Processing groups number attached to an agent.
NameTypeCardinalityDescription
preferredstring[0..1]preferred processing group number.
groupsstring[0..*]processing group number list.
[+] : JSON Example
string
'string' represents character strings.
WithdrawAgentRequest
Request to withdraw an acd agent.
NameTypeCardinalityDescription
reasonIndexint[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
[+] : JSON Example
Associated method :
WithdrawReason
ACD withdraw reason definition.
NameTypeCardinalityDescription
indexint[1]reason index from 1 to N, maximum of N is 9.
labelstring[0..1]label of the reason.
[+] : JSON Example
WithdrawReasons
List of ACD withdraw reasons of an agent in a group.
NameTypeCardinalityDescription
numberint[1]Number of withdraw reasons for this agent, from 0 to 9.
reasonsWithdrawReason[0..*]reason list. each reason is indexed from 1 to number
[+] : JSON Example
Associated method :