Introduction

Overview

First of all, if necessary, ALE can offer you a quote for a Mentoring Service Pack
which will help you with O2G deployment and the use of O2G APIs with the support of dedicated ALE experts.
Contact your ALE representative for more details.

This package is not embedded in OXE, and it is able to address the installed OXE(s).
This configuration is exclusively dedicated to the RECORDING feature, all types of OXE subscriber will be considered (including ANALOG).
In the opposite of the main O2G "All Services" configuration, each device to be recorded MUST be first monitored on demand on the right link.
Each device asked to be monitored is dynamically created in the O2G cache and is associated to a user.
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.7",
			"minor": "001.000"
			},
		"haMode": true	
		},
	"versions" : [{
		"id" : "1.0",
		"status" : "CURRENT",
		"publicUrl" : "https://public-server/api/rest/authenticate?version=1.0",
		"internalUrl" : "https://server/api/rest/authenticate?version=1.0"
		}]
}

History

2.7.12.7

Change logs

Complete changes history can be found here.

Authentication mechanism

All resources are protected by the authentication mechanism.
A dedicated resource is provided to perform user/administrator authentication :
http(s)://<host>:<port>/api/rest/authenticate?version=1.0

The first action for an application is to authenticate on O2G.
Authentication is basic HTTPS authentication, based on a login and password.
The login is:
The password is:
The credentials (login and password) are first checked to see if they correspond to an O2G administrator or an OXE subscriber. JWT authentication is implemented to provide an identifier based on credentials. This identifier must be passed in a cookie (AlcUserId) in all subsequent HTTPS requests, so that O2G can check their validity. See below a sequence diagram for a Basic authentication
No picture Example:
  Request
	GET http://server/api/rest
  Response :
	200 OK
	Content-Type:  application/json
	{ 
		"versions" : [ {
		"id" : "1.0",
		"status" : "CURRENT",
		"publicUrl" : "https://public-server/api/rest/authenticate?version=1.0",
		"internalUrl" : "https://server/api/rest/authenticate?version=1.0"
		} ] 
	} 
  
  Request :
	GET https://server/api/rest/authenticate?version=1.0
	Authorization: Basic aW50ZXJuYWwyOTphbGNhdGVsMjk=

  Response :
  	200 OK 
Set-Cookie: AlcUserId=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJpbnRlcm5...; Path=/ Content-Type: application/json { "credential" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJpbnRlcm5...", "publicUrl" : "https://public-server/api/rest/1.0/sessions", "internalUrl" : "https://server/api/rest/1.0/sessions" }

Session creation

All services are invoked through a session (user or administrator one).
The resource to perform user/administrator session creation is:
http(s)://<host>:<port>/api/rest/1.0/sessions
The session creation request and all the subsequent requests must contain the Cookie AlcUserId with value equals to the one received in the Set-Cookie of the authentication response.
Important: all the sessions are created with an initial time-to-leave of 1800 seconds (30 minutes): To see how to maintain the session, refer to SESSION MANAGEMENT chapter. Example:
  Request
	POST /api/rest/1.0/sessions HTTP/1.1

Content-Type: application/json
Host: (server address)
Cookie: AlcUserId=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJpbnRlcm5...
...
{
[body] : refer to Session Management section
}

  Response :
	200 OK
	Server: Apache/2.4.23
	Set-Cookie: JSESSIONID=88C00EA2B3C482E19825F1184D0BB50E.tomcat; Path=/api
	Content-Type:  application/json
	{ 
		"timeToLive": 1800,
  		"publicBaseUrl": "http://public-server/api/rest/1.0",
  		"privateBaseUrl": "https://server/api/rest/1.0",
  		"services": [
    		{...
  
  


O2G Services Through Websocket

O2G REST service may be used through a websocket. This configuration could be interesting in a context where the security must be improved or if the opening of http ports on the local domain is considerd as an issue.
The solution is to use a reverse HTTP proxy over web socket. The aim is to provide a secure connection setup from the internal network to the external network in order to tunnel the API requests to internal O2G APIs from the external third party client.
A Web Socket agent run in the internal network (in front end of O2G API) establishes a single connection to a remote Web Socket server in secure mode. The Web socket agent is included in the O2G solution and may be configured thanks to the O2G configuration tool.
The web socket server side is not handled by O2G solution and it remains to the client to provide it.
A json formatted message protocol is used in the websocket to translate the http REST requests and responses.
In the same manner, the events the client has subcribed to are sent back by O2G through this socket towards the application. Moreover, an identifier may used as query parameter in the subscription request: in that manner, the events correponding to this susbscription will be automatically sent to the client through the web socket with this identifier (no need to open a chunk channel).
No picture
Here is the Ws protocol map: No picture
Example of request/response for authentication through WS protocol:
No picture
Example of request/response for subscription through WS protocol:
No picture
Example of event through WS protocol:
No picture

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
}

Representations

boolean
'boolean' is a data type, having two values (true and false).
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
TOO_MANY_REQUESTS
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.
[+] : JSON Example
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.
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.
A session is created with an initial time-to-leave of 1800 seconds (30 minutes): the application is responsible to keep the session alive by posting /sessions/keepalive request or other requests before each expiration of the timer. The TTL of the session is re-initialized on each request. If the TTL expires, the session is closed by the server.

Resources summary

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 O2G 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 session is identified by its authentication cookie. This one must be provided for the session creation request to the server. This authentication key is obtained after a successful authentication (See Authentication mechanism chapter)
A session can be opened only once (same authentication cookie), if the session is already open an error is returned (Forbidden). (With different authentication cookies, one user may open several sessions.
In each case, the obtained reference to the Session must be released using the logout operation (DELETE).
The Session is closed either after the reference has been released (after a call to the DELETE operation) or after the session timer ends.
3 types of Sessions exist:
  • User Session: The credential (cookie) used to open the session, is the one of a User. In case of success, this credential will be used to identify the Session and the User. This Session allows a User to use any other service.
  • Administrator Session: The credential (cookie) used to open the session, is the one of a Administrator. In case of success, this credential will be used to identify the Session and the Administrator. This Session allows a Administrator to use any other services.
  • A Administrator Session can also be used by an Application (as an Application account) to supervise several Users in a same Session. Such a session allows an Application to use the User oriented services.
  • Supervised Session: This kind of Session is opened thanks to the supervisor operation. This operation uses the credential of a Administrator (with supervisor role) and the identification of a User or another Administrator (login name, phone number or e-mail) to open the Session. In case of success, this credential will be used in all subsequent requests, to identify the Session, and the supervised User or Administrator. After the session opening, a Supervised Session can be used like a User Session or a Administrator Session (described above). In other words, this Session allows a Supervisor to use any other services as if it was opened by the User or Administrator.
Licenses
No O2G 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

[+] : Creation of an administrator session, 2 other sessions already exist on this user: the result returns the identifiers of each.

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 O2G license required.
Request
header parameters
parametertypedescription
Authorizationstring
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.
The initial duration of a session is fixed to 30 minutes(1800 secs).
Each time a Session is used(using this method or any one else), the session timer is automatically restarted.
Licenses
No O2G license required.
Request
header parameters
parametertypedescription
Authorizationstring
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 TTL time-out applied on 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.
creationDatestring[0..1]

Since version 2.7

when this session has been created
expirationDatestring[0..1]in case of secured token used to create the session, the expiration date of the token
otherSessionsUserSession[0..*]

Since version 2.7

List of all previous sessions opened by this user and still alive.
[+] : JSON Example
Associated methods :
SessionRequest
This element is used to open a Session.
NameTypeCardinalityDescription
applicationNamestring[1]
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.
UserSession
User Session information.
NameTypeCardinalityDescription
sessionIdstring[0..1]The session identifier
creationDatestring[0..1]The creation date of this session
timeToLiveint[0..1]The residual TTL of the Session in seconds. The value 0 indicates that the session duration is finished and will be soon disappear, but the Thread which purges the sessions has not yet been triggered (It is triggered every 5 minutes).
[+] : JSON Example

User information

Presentation

The User service allows

The users must have been first monitored to be visible.

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.

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 O2G 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).
onlyWithExtLoginbooleanThis parameter is another optional search criterion which allows to select only users with valid external login.
This parameter has no value.
(Note: this parameter can only be used by an administrator).
cookie 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 O2G 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 O2G 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

Representations

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

Since version 2.7

External login of the user if set (only available with oxe > n1.271)
*1 : attribute only provided if the user is the session's owner or for an administrator session.

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

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
No O2G license required.
Request
header parameters
parametertypedescription
Authorizationstring
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 telephony event packages, for all users of the system.

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

[+] : Create a subscription to pilot and rsi event packages.

Associated notifications
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
No O2G license required.
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 O2G 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 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.

webHookUrlstring[0..1]If specified, the events corresponding to this subscription will be sent on this URL by callback
[+] : 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

For Recording Only configuration, only a restricted part of the Telephony resource operations is available on the devices which have been monitored: Only the operations to consult the existing calls or states.

Resources summary

ResourceMethodDescription
/telephony/callsGETGet information on all the calls in progress.
/telephony/calls/{callRef}GETReturns a description of a call.
/telephony/devicesGETGets states of all user devices
/telephony/devices/{deviceId}GETGets a user device state
/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.
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/calls

Methods
GET/telephony/calls
Get information on all the calls in progress.
Licenses
No O2G license 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

/telephony/calls/{callRef}

Methods
GET/telephony/calls/{callRef}
Returns a description of a call.
Licenses
No O2G license 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

/telephony/devices

Methods
GET/telephony/devices
Gets states of all user devices
Licenses
No O2G license 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
No O2G license 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/state

Methods
GET/telephony/state
Asks for the user telephonic state and capabilities.
Licenses
No O2G license 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.
Licenses
No O2G license 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
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 :
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_LEFTOne 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.
DO_NOT_DISTURBThe device is in DND.
FORWARDEDThe call has been forwarded.
NOT_ANSWEREDThe call has been hanged up before answer.
PICKED_UPThe call has been picked up.
PARKED The call has been parked.
REDIRECTEDThe call has been redirected.
OVERFLOWNThe call goes on overflow destination.
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
ACD_ENTER_DISTRIBUTION CCD context: call enters in distribution
RESOURCES_NOT_AVAILABLE CCD context: pilot is not open
SUPERVISOR_LISTENING
SUPERVISOR_INTRUSION
SUPERVISOR_RESTRICT_INTRUSION
NO_AVAILABLE_AGENT
LOCKOUT
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.
associateDatastring[0..1]Associated data (or Correlator data).
hexaBinaryAssociatedDatastring[0..1]Hexa binary array format for Associated data (or Correlator data).
accountInfostring[0..1]Account info associated to the call.
acdCallDataAcdCallData[0..1]ACD info associated to the call.
trunkIdentificationTrunkIdentification[0..1]

Since version 2.7.1

TrunkIdentification if external call
[+] : JSON Example
Calls
Container for the calls.
NameTypeCardinalityDescription
callsCall[0..*]List of calls
[+] : JSON Example
Associated method :
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 :
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).
[+] : JSON Example
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.
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).
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 method :
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 method :

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
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
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 method :
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.
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
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
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
RecordState
Lists the different state when recording.
ValueDescription
PAUSEDRecording is paused.
RECORDINGRecording is in progress.
string
'string' represents character strings.
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]state of the user: is only used in case the user is busy unknown at monitoring
[+] : JSON Example
Associated method :
TrunkIdentification
For external call, provide information on network timeslot and trunk eqt number
NameTypeCardinalityDescription
networkTimeslotint[0..1]the network time slot.
trunkNeqtint[0..*]trunk equipment number (Could be 2 nbrs in case of conference with 2 different external trunks.
[+] : JSON Example
UserState
Lists the different types of user state.
ValueDescription
FREEUser is free.
BUSYUser is busy.
UNKNOWNThe user state is unknown.

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

For Recording Only configuration, the Contact Center service provides only a restricted part of the resource operations on the devices which have been monitored

Resources summary

ResourceMethodDescription
/acd/agent/stateGETGet the ACD agent state.
/acd/agent/state/snapshotPOSTAsk a snapshot event on agent state.

Notification summary

NotificationDescription
OnAgentStateChangedEvent sent when ACD agent state is modified

Resources

/acd/agent/state

Methods
GET/acd/agent/state
Get the ACD agent state.
Licenses
No O2G license 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
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. CAUTION!: this request is immediately acknowledged but the processing may take a long time if the number of users is huge.
Licenses
No O2G license 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 agents.
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

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
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]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
boolean
'boolean' is a data type, having two values (true and false).
int
'int' is a 32-bit number (-2147483648 to 2147483647).
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 method :
string
'string' represents character strings.

Maintenance

Presentation

Only for administrator. The system information resource is used to retrieve information about the system state, in particular information on the pbx nodes and their connection state.

Informations about license are also provided per item: total allocated licenses, numbers of current used and expiration date.

Resources summary

ResourceMethodDescription
/system/statusGETGet information about system status.

Notifications summary

NotificationDescription
OnCtiLinkDownNotification sent when CTI link is down.
OnCtiLinkUpNotification sent when CTI link is up
OnServerStartNotification sent when O2G is ready (all oxe nodes are connected and loaded).

Resources

/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 O2G 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
RECORDINGRECORDING 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).
DRLink
CSTA DR link.
NameTypeCardinalityDescription
identifierstring[1]DR link Registration identifier
nbRecordedDevicesint[0..1]number of recorded devices
recordedDevicesRecordedDevice[0..*]list of recorded devices
[+] : JSON Example
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]
applicationboolean[0..1]Not used (Already true)
[+] : JSON Example
LicenseStatus
License status
NameTypeCardinalityDescription
typestring[0..1]FLEXLM (mode CAPEX) or LMS (mode OPEX)
contextstring[0..1]Only for LMS : infrastructure used (PROD, QA or INT)
currentServerstring[0..1]Server address
statusstring[0..1]Only for LMS : RTR status (NORMAL, GRACE PERIOD, PANIC MODE)
statusMessagestring[0..1]Only for LMS : Debug message, associated to the status
licsLicense[0..*]Licenses information
[+] : JSON Example
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
OnServerStart
Notification sent when O2G is ready (all oxe nodes are connected and loaded).
To be received, this event needs a webhook url to be configured.
NameTypeCardinalityDescription
eventNamestring[1]The name of the event : 'OnServerStart'
serverIdstring[1]the IP of the server which starts
[+] : 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]
ctiLinkStateCTILinkState[0..1]
securedboolean[0..1]is PBX secured connection
monitoredUserNumberint[0..1]Number of monitored PBX Users
lmsConnectionStatusboolean[0..1]Lms connection status
drLinksDRLink[0..*]In case of IP recording, list of drLinks
[+] : JSON Example
RecordedDevice
Recorded device identification with it recording resource
NameTypeCardinalityDescription
numberstring[0..1]device number
recordedboolean[0..1]has the recording been asked
recordingResourcestring[0..1]recorder IP address or TDM time slot
ipboolean[0..1]Is an IP recording
sentFlowPortint[0..1]In case of IP recording, the recorder port where is sent the sent RTP flow(from the local recorded device to the remote)
receivedFlowPortint[0..1]In case of IP recording, the recorder port where is sent the received RTP flow(from the remote to the local recorded device)
[+] : JSON Example
ServerAddress
Address of a server
NameTypeCardinalityDescription
fqdnstring[0..1]FQDN
ipstring[0..1]IP
[+] : JSON Example
ServicesStatus
Address of a server
NameTypeCardinalityDescription
namestring[0..1]Name
statusstring[0..1]Status Started/Stopped
modestring[0..1]Mode Active/Standby
[+] : JSON Example
string
'string' represents character strings.
SystemServicesStatusDTO
System description Management package
NameTypeCardinalityDescription
servicesServicesStatus[0..*]Services information
globalIPAdressstring[0..1]if System is in HA mode, status og global IP address
drbdstring[0..1]if System is in HA mode, status of drbd
[+] : JSON Example
SystemStatus
System description Management package
NameTypeCardinalityDescription
logicalAddressServerAddress[0..1]System logical address
startDatedateTime[0..1]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]version of the current active system
primaryServicesStatusSystemServicesStatusDTO[0..1]Primary server services status
secondarystring[0..1]if System is in HA mode, fqdn of the backup system
secondaryVersionstring[0..1]version of the backup system
secondaryServicesStatusSystemServicesStatusDTO[0..1]Secondary server services status
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 :

Voice Recording

Presentation

The Recording service allows a recorder application to record voice of OXE devices, either in IP or TDM mode.
The devices may be all kinds of OXE Subscriber.
Prior to start records, the recorder MUST:

The service also allows to send a beep tone on a device on which the recording has been previously asked.
IP recording is the suitable way to record IP devices on OXE IP PBX. However, the legacy TDM recording using PCM links is also supported by this service.
Prerequisites: Specifications of the service The typical sequential of the operations of the service is:
  1. create an administrator session.
  2. make a subscription to telephony event package("*" for all). If the application prefers to target the subscriptions to a defined list, the subscription must be performed after the monitoring of the devices.
  3. establish an event chunk channel or open the http web-hook listener
  4. register the recorder service on the OXE node to create a dedicated CTI record link.
  5. start monitor each device on the CTI record link: the corresponding user appears in the /logins or /users list
  6. start record a device on the CTI record link (considering or regardless its telephony state)
  7. start beep generation device may be invoked (in TDM, only if the device is already in com)
  8. stop record a device on the CTI record link (considering or regardless its telephony state)
(Stop monitor may never be used by the application)

Here is a following example to illustrate:

Resources summary

ResourceMethodDescription
/iprecord/{nodeId}/linkGETGet the list of existing recorder links on a pbx.
POSTRegister a recorder link on a pbx.
/iprecord/{nodeId}/link/{registerId}DELETECancel the registration of a recorder link on a pbx.
/iprecord/{nodeId}/link/{registerId}/beepPOSTStart beep generation on an device.
/iprecord/{nodeId}/link/{registerId}/beep/{deviceNumber}DELETEStop beep generation on an IP device.
/iprecord/{nodeId}/link/{registerId}/monitorPOSTStart the monitoring of a device on a drLink.
/iprecord/{nodeId}/link/{registerId}/monitor/{deviceNumber}DELETEStop the monitoring of a device on a drLink.
/iprecord/{nodeId}/link/{registerId}/recordPOSTStart an IP record of an IP device.
/iprecord/{nodeId}/link/{registerId}/record/{deviceNumber}DELETEStop the IP or TDM recording of a device.
/iprecord/{nodeId}/link/{registerId}/tdmrecordPOSTStart an TDM record of a device through a PCM link.

Resources

/iprecord/{nodeId}/link

Methods
GET/iprecord/{nodeId}/link
Get the list of existing recorder links on a pbx.
Licenses
No O2G license required.
Request
path parameters
parametertypedescription
nodeIdintthe oxe node number where are registered the recorder
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
Response
codetypemedia typesdescription
200DRLinksapplication/json
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Get the registered a recorder links on the pbx 7.

POST/iprecord/{nodeId}/link
Register a recorder link on a pbx. To be able to invoke the other methods(IP or TDM voice recording), an recorder must at first register on a pbx.
A registration identifier of the link is returned back, to be used on each of the other methods.
Licenses
No O2G license required.
Request
path parameters
parametertypedescription
nodeIdintthe oxe node number where to register the recorder
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
RegisterServiceRequest(mandatory) to specify the type of recorder: NICE or standard recorder
Response
codetypemedia typesdescription
200ServiceRegisteredapplication/json
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Register a standard recorder link on the pbx 7.

[+] : Register a NICE recorder link on the pbx 7. The link is secure

/iprecord/{nodeId}/link/{registerId}

Methods
DELETE/iprecord/{nodeId}/link/{registerId}
Cancel the registration of a recorder link on a pbx.
Licenses
No O2G license required.
Request
path parameters
parametertypedescription
nodeIdintthe oxe node number where to unregister the link
registerIdstringthe DR link identifier to unregister
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
Examples

[+] : Unregister the current recorder link (registrationId = "123456") on the pbx 7.

/iprecord/{nodeId}/link/{registerId}/beep

Methods
POST/iprecord/{nodeId}/link/{registerId}/beep
Start beep generation on an device.
The mode IP or TDM used to send the beep depends on the mode of recording.
Licenses
No O2G license required.
Request
path parameters
parametertypedescription
nodeIdintthe oxe pbx node
registerIdstringthe DR link identifier
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
StartBeepRequestspecifies the device number on which to send beep to, the tone, the presence and silence duration
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

[+] : Start generate tone 25 on the device 70120 on the node 7 through the IP record link 123456

/iprecord/{nodeId}/link/{registerId}/beep/{deviceNumber}

Methods
DELETE/iprecord/{nodeId}/link/{registerId}/beep/{deviceNumber}
Stop beep generation on an IP device.
Licenses
No O2G license required.
Request
path parameters
parametertypedescription
nodeIdintthe oxe pbx node
registerIdstringthe ip DR link identifier
deviceNumberstringthe device number
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
Examples

[+] : Stop generate tone on the device 70120 on the node 7 through the IP record link 123456

/iprecord/{nodeId}/link/{registerId}/monitor

Methods
POST/iprecord/{nodeId}/link/{registerId}/monitor
Start the monitoring of a device on a drLink.
This action MUST be done prior to ask the recording of the device. A user identifier is returned back, to be used for telephony event subscription
Licenses
No O2G license required.
Request
path parameters
parametertypedescription
nodeIdintthe oxe pbx node
registerIdstringthe ip DR link identifier
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
MonitorRequestspecifies the device number to monitor
Response
codetypemedia typesdescription
200DeviceMonitoredapplication/json
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Start to monitor the device 70120 on the node 7 through the recorder link 123456.

[+] : Start to monitor the tandem device 70124 of the main user 70123 on the node 7 through the recorder link 123456.

/iprecord/{nodeId}/link/{registerId}/monitor/{deviceNumber}

Methods
DELETE/iprecord/{nodeId}/link/{registerId}/monitor/{deviceNumber}
Stop the monitoring of a device on a drLink.
Licenses
No O2G license required.
Request
path parameters
parametertypedescription
nodeIdintthe oxe pbx node
registerIdstringthe ip DR link identifier
deviceNumberstringspecifies the device number to stop the monitoring
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
Examples

[+] : Stop to monitor the device 70120 on the node 7 through the recorder link 123456.

/iprecord/{nodeId}/link/{registerId}/record

Methods
POST/iprecord/{nodeId}/link/{registerId}/record
Start an IP record of an IP device.
In case native encryption is enabled by OXE, the SRTP keys (key/salt) created by OXE are returned in order to encrypt the voice flow between the IP set and the recorder.
Licenses
No O2G license required.
Request
path parameters
parametertypedescription
nodeIdintthe oxe pbx node
registerIdstringthe ip DR link identifier
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
StartRecordRequestspecifies the device number to record, the recorder IP address and the IP call flow ports to record
Response
codetypemedia typesdescription
200RecordingSrtpKeysapplication/json
400application/json
Bad Request
403application/json
Forbidden
404application/json
Not Found
500application/json
Internal Server Error
503application/json
Service Unavailable
Examples

[+] : Start an IP record of the device 70120 on the node 7 through the recorder link 123456 on the ports xxxx and yyyy with IP recorder address aaa.bbb.ccc.ddd. The native encryption is not enabled: No SRTP key is returned.

[+] : Start an IP record of the device 70120 on the node 7 through the recorder link 123456 on the ports xxxx and yyyy with IP recorder address aaa.bbb.ccc.ddd. The native encryption is enabled:A SRTP key/salt pair is returned.

/iprecord/{nodeId}/link/{registerId}/record/{deviceNumber}

Methods
DELETE/iprecord/{nodeId}/link/{registerId}/record/{deviceNumber}
Stop the IP or TDM recording of a device.
Licenses
No O2G license required.
Request
path parameters
parametertypedescription
nodeIdintthe oxe pbx node
registerIdstringthe DR link identifier
deviceNumberstringthe recorded device number
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
Examples

[+] : Stop the current record of the device 70120 on the node 7 through the recorder link 123456.

/iprecord/{nodeId}/link/{registerId}/tdmrecord

Methods
POST/iprecord/{nodeId}/link/{registerId}/tdmrecord
Start an TDM record of a device through a PCM link.
Licenses
No O2G license required.
Request
path parameters
parametertypedescription
nodeIdintthe oxe pbx node
registerIdstringthe DR link identifier
cookie parameters
parametertypedescription
AlcUserIdstringIdentifier of the Session
body parameter
typemedia typesdescription
StartTDMRecordRequestspecifies the device number to record, the PCM resource used (crystal number/ board number/ time slot between 1..30)
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

[+] : Start an TDM record of the device 70120 on the node 7 through the recorder link 123456 on the PCM time slot 2/0/10.

Representations

boolean
'boolean' is a data type, having two values (true and false).
DeviceMonitored
In response of the monitor start request of a device, contains the user selector identifier to use for the telephony event subscription.
  • If the device (for example number = "5000") is the main device of the oxe subscriber (or if the subscriber is mono device), the userId will be "oxe5000"
  • If the device (for example number = "5001") is one of the secondary devices of a multi-device oxe subscriber (number = "5000"), the userId will be "oxe5000"
NameTypeCardinalityDescription
userIdstring[1]user identifier for telephony event subscription
[+] : JSON Example
Associated method :
DRLink
CSTA DR link.
NameTypeCardinalityDescription
identifierstring[1]DR link Registration identifier
nbRecordedDevicesint[0..1]number of recorded devices
recordedDevicesRecordedDevice[0..*]list of recorded devices
[+] : JSON Example
DRLinks
List of existing DRLinks for a pbx
NameTypeCardinalityDescription
drLinksDRLink[0..*]In case of IP recording, list of drLinks
[+] : JSON Example
Associated method :
int
'int' is a 32-bit number (-2147483648 to 2147483647).
IPRecorderType
Type of IP recorder: NICE or other
ValueDescription
NICENICE recorder type
OTHERother recorder type
MonitorRequest
Request to start/stop the monitoring of a device on a drLink
NameTypeCardinalityDescription
deviceNumberstring[1]device number to monitor on the drLink for recording
[+] : JSON Example
Associated method :
RecordedDevice
Recorded device identification with it recording resource
NameTypeCardinalityDescription
numberstring[0..1]device number
recordedboolean[0..1]has the recording been asked
recordingResourcestring[0..1]recorder IP address or TDM time slot
ipboolean[0..1]Is an IP recording
sentFlowPortint[0..1]In case of IP recording, the recorder port where is sent the sent RTP flow(from the local recorded device to the remote)
receivedFlowPortint[0..1]In case of IP recording, the recorder port where is sent the received RTP flow(from the remote to the local recorded device)
[+] : JSON Example
RecordingSrtpKeys
Contains the Secured RTP key and salt in response of the start IP record on an secured IP link.
NameTypeCardinalityDescription
keystring[0..1]key
saltstring[0..1]salt
[+] : JSON Example
Associated method :
RegisterServiceRequest
Request of register an IP recorder on a pbx node.
The type of recorder may be specified: NICE or other (default).
The recorder may ask to work in secured or unsecured mode:
  • default mode is according to oxe recording configuration.
  • typically, if oxe recording configuration is secured, but the register application doesn't support this mode, then it must explicitly specified "secured=false".
  • if oxe recording configuration is not secured but if the register application explicitly asks "secured=true", the request will be accepted but the response will return "secured=false".
NameTypeCardinalityDescription
typeIPRecorderType[0..1]type of the recorder: (default is "other than NICE")
securedboolean[0..1]optional secured mode(default=according to oxe): should be explicitely used ("secured=false") to disable the secured mode on the drlink if not supported by the recorder. If the parameter is absent, it will follow the OXE configuration.
[+] : JSON Example
Associated method :
ServiceRegistered
Contains the identifier of the recorder registration on the pbx node, to be used to unregister the service. Also specifies whether the connection is secure or not
NameTypeCardinalityDescription
registrationIdstring[1]registration identifier
secureboolean[0..1]is the connection secure
[+] : JSON Example
Associated method :
StartBeepRequest
Request to generate a beep tone on a device
NameTypeCardinalityDescription
deviceNumberstring[1]device number
toneint[1]tone or frequency to connect: this parameter identifies the time slot number defined in the OXE tones table, which is specific for each country; in practice, only values 21 to 30 are usable
presenceDurationint[1]presence duration of the pulse : 0 to 255 (value must be specified in step of 10ms, from 10 millisecondes to 2,5 secondes)
silenceDurationint[1]silence duration between two pulses : 0 to 255 (value must be specified in step of 1s, from 1 seconde to 255 secondes)
[+] : JSON Example
Associated method :
StartRecordRequest
Request to start an IP record of a device
NameTypeCardinalityDescription
deviceNumberstring[1]device number to record (must correspond to an O2G monitored user)
ipRecorderAddrstring[1]IP V4 address of the recorder (aaa.bbb.ccc.ddd)
sentFlowPortint[1]The recorder port where to send the sent RTP flow(from the local recorded device to the remote)
receivedFlowPortint[1]The recorder port where to send the received RTP flow(from the remote to the local recorded device)
[+] : JSON Example
Associated method :
StartTDMRecordRequest
Request to start an TDM record of a device
NameTypeCardinalityDescription
deviceNumberstring[1]device number to record (must correspond to an O2G monitored user)
crystalint[1]PCM crystal number
boardint[1]PCM board number
timeslotint[1]PCM timeslot number
[+] : JSON Example
Associated method :
string
'string' represents character strings.