EQ V2 API Documentation

Introduction

The EQ API is a REST API, which means it uses resource-oriented URLs and makes use of GET, POST, PUT, and DELETE methods to determine the type of action desired. Standard HTTP response codes are used to signify whether the request was successful, and if not, what went wrong; any further error details are included in the body of the response. All data is returned as JSON.

The API is versioned independently of the EQ software package version to ensure that thirty-party clients relying on the API will not be broken with software updates. A certain version of the API can always be expected to work exactly the same way and return data in exactly the same format. New features may be added to an existing version of the API, but existing features will not be changed in any way that would break functionality depending on them.

Base URL

The endpoint URLs are dependent on the domain name or IP address of the server on which EQ is installed. The base URL is therefore:

http://[server]/eq/api/2.0

where [server] is an IP address or domain name.

All endpoint URLs are relative to the base URL. The full URL for the supervisor-session endpoint, for example, would then be:

http://[server]/eq/api/2.0/supervisor-session

Authentication

API Key

All requests to the API must be authenticated by a valid API key generated on the EQ system. API keys can be generated in EQ Administration.

The API key must be passed in either the URL as a query string parameter called auth_key or in the body of the request if applicable (e.g. the POST data). Either location for the parameter is acceptable for POST, PUT, or DELETE requests. However, due to the nature of GET requests, which have no POST data, the key must be in the URL.

For the sake of consistency, it is recommended to always pass the key in the URL as a query string parameter.

If the key is passed in the URL, the base URL becomes:

http://[server]/eq/api/2.0?auth_key=[key]

User Session

API keys requests are always authenticated by the provided API key. However, requests can optionally be additionally authenticated by a user session token if the request is done on behalf of a certain user.

To maintain proper historical data, such as activity logs, it is recommended to authenticate requests as a certain user whenever possible.

If a user session token is provided, then the session is validated and refreshed (i.e. pinged / kept alive). The entire request will fail with an error if the session is invalid, or if the session token is valid, but for circumstantial reasons, the session is inactive and cannot be reactivated (usually because the user is signed in elsewhere, or another user is signed in at the same extension). In such cases, the HTTP response code will be 401, and the relevant errors will be returned as JSON in the body of the response as with any other request.

Keep in mind that any request to the API authenticated as a certain user will cause that user to be signed in again if they were not previously and the session token is valid and there are no circumstantial conflicts. This normally only happens if the user previously timed out. If the user is signed out using the API, the session is destroyed, so it would not be possible that any further requests would accidentally sign them in again.

Since there are two primary types of users, supervisors and agents, there are two separate session tokens that can be passed, although only one or the other will be used for any given request. To send a request on behalf of a supervisor, the session token must be passed in the URL or the POST/PUT data as the auth_supervisor_session parameter. For an agent, the session token must be passed as the auth_agent_session parameter.

Only one type of session token (supervisor or agent) should be provided on any given request. If both a supervisor session token and an agent session token are passed, the supervisor one will always be given priority, and the agent one will have no effect. If neither session token is provided, then the API request is not authenticated as any certain user, and a valid API key is sufficient to authenticate the request.

Like the API key, the user session token can be provided in either the URL (GET, POST, PUT, or DELETE) or in the body of the request (POST, PUT, or DELETE).

If the API key and user session token are passed in the URL, the base URL becomes:

http://[server]/eq/api/2.0?auth_key=[key]&auth_supervisor_session=[token]

or

http://[server]/eq/api/2.0?auth_key=[key]&auth_agent_session=[token]

JSON Parameters

All data is returned as JSON, but some endpoints accept JSON for certain parameters as well. For example, when creating a new agent, the agent's attributes must be passed as a JSON object for the data parameter.

In general, endpoints accept/require JSON for parameters when an entire entity is being passed to the API, whether to create it or update it. Otherwise parameters are simply strings.

When a JSON object is required for a parameter, some attributes of the object may not be required. In those cases, the attributes may be omitted entirely, and the default value (usually null or blank) will be used.

Deleted Entities

It is important to know how the EQ software treats deleted entities to understand some aspects of the API.

For historical reporting purposes, any primary entities that could have historical data attached to them are never actually deleted, but are only flagged as deleted. Users, queues, and pause codes are some examples. Such entities contain a boolean deleted attribute. The deleted flag allows the EQ software to ignore the entity and treat it as nonexistent except when its details are needed for historical reporting purposes.

Whether the API treats an entity as nonexistent based on its deleted status depends on the endpoint. If it makes sense to retrieve or act on deleted entities for a certain endpoint, then the endpoint will do so without complaint. However, if it only makes sense that deleted entities are ignored or treated as nonexistent, then the endpoint will do so and will throw an error if a deleted entity if specified.

For example, when retrieving agent details from the API, deleted agents are considered existent (but deleted) and will be returned (and their deleted attribute will signify that they are deleted). However, when signing an agent in and creating a new session for them, it would not make sense to allow a deleted agent to sign in, so the API would treat the agent as nonexistent and refuse the request.

In general, entities cannot be edited while in a deleted state. PUT requests to update a deleted entity will fail with a 404 response code.

The specifications for each endpoint will clarify how deleted entities are treated if necessary.

User Sessions

It is important to understand how user sessions work in the EQ software to understand some aspects of the API.

Each user can only have one active session at a time. Signing in again or elsewhere will either fail or force out any other active sessions (depending on the parameters of the sign-in).

If a user signs out or is forced to sign out, the session is destroyed. However, if a user simply times out, meaning their ping (keep alive) stopped for some reason, the session is deactivated, but remains it valid. As soon as the user pings the system again, the session is reactivated (if no conflicts), and the user is signed in again.

A user is considered signed in if and only if they have a valid, active session. If a session is destroyed or deactivated, that user is no longer considered signed in. Once a deactivated session is reactivated, the user is considered signed in again.

Date/Times

All date/times accepted or returned by the API are UNIX timestamps, or seconds since January 1, 1970.

Errors

HTTP Response Codes

Code Description
200 The request was successful.
400 The request was not valid. Usually this code means a parameter was missing or its value was not valid. However, sometimes this code can mean that the request was rejected for circumstantial reasons, such as a user already being logged in when trying to create a new session, and in those cases, the JSON from the response body will provide the details needed to determine what exactly was wrong.
401 Either: The API key was missing or invalid. A user session token was provided, but the session is invalid or cannot be refreshed/reactivated.
404 The endpoint does not exist, or the resource/entity identified in the request was not found or was in a deleted state.
405 The endpoint exists, but does not support any functionality for the HTTP method specified.
500 The server encountered an unexpected error. Normally this error should never occur unless the server is malfunctioning or the software was misconfigured. However, it is also possible that this error occurs on rare occasions if a request parameter contains a value in an unexpected format that the software is not prepared to handle.

Error Details in JSON

Except when the response code is 500 or the response code is 404 because the endpoint does not exist (as opposed to a resource/entity not existing), all failed requests will return an array of errors as JSON in the response body.

The errors are returned as a numerical array containing a number of sub-arrays, one for each error. The sub-arrays have two string values: the name of a problem parameter/attribute as the first value (index 0) and the type of error as the second value (index 1). If the error does not pertain to any certain parameter/attribute, then the first value is null. The second value is never null.

Example:

[ [null,"already_signed_in"], ["extension","blank"] ]

The example shows two errors. These errors might occur when creating a new session for an agent. The first error does not pertain to any certain parameter/attribute, so the first value is null; the second value signifies that the user is already signed in elsewhere. The second error pertains to the extension parameter, and its value means the the parameter was either missing or contained a blank value.

When the first value is not null, the second value (type of error) is usually one of a few standard values. Those values and their general meaning are:

Value Description
blank Parameter/attribute missing or blank (usually empty string or null)
invalid Parameter/attribute not in proper format
nonexistent Entity identified by parameter/attribute does not exist; can also mean entity exists, but is deleted (only in cases where retrieving or acting on deleted entities does not make sense)

Most errors are only meant to aid in development, and the specific values of the errors in the JSON data should not be relied on. The client should be designed to avoid the errors by doing as much validation as possible before making the request. However, some errors for some endpoints (such as creating a user session) are circumstantial and unavoidable and must be handled by the client when they occur.

Endpoints

Each endpoint handles a certain type of entity/resource or a certain action on resources/entities of that type. Each endpoint supports some or all of the four standard HTTP methods (GET, POST, PUT, DELETE).

Create Supervisor Session (Sign In)

This endpoint is used to create a new session for a supervisor user, i.e. sign the user in.

POST supervisor-session

Parameters/Attributes

Location Name Required Description
Request Body user Yes User ID of supervisor for which to create session
Request Body extension No Extension to sign supervisor in at
Request Body force No 1 - force new session if supervisor already signed in 0 - do not force new session (will fail with error if supervisor already signed in)

Return Data

If the request is successful, the returned data is the token of the new supervisor session (64-byte string).

Example:

06662e69707248c9aaf53a158689872c08f104ec1b5a508eeb67ef8ffdc9953f

Special Errors

Parameter/Attribute Type Description
[null] already_signed_in The supervisor is already signed in with another session
extension in_use Another user is signed in at the extension
extension nonexistent Extension does not exist

Keep Supervisor Session Alive (Ping)

This endpoint is used to keep a session for a supervisor user alive, i.e. ping. Although sessions are automatically refreshed by other requests (when they are authenticated as the user), sending a ping regularly ensures that the session won't time out.

PUT supervisor-session/[token]

Parameters/Attributes

Location Name Required Description
URL token Yes Token of the supervisor session to keep alive

Return Data

If the request is successful, the returned data is an object containing information about the session refresh.

Example:

{ "previouslyActive": true }

Special Errors

Parameter/Attribute Type Description
token nonexistent The session doesn't exist or is no longer valid
[null] already_signed_in The supervisor is already signed in with another session
extension in_use Another user is signed in at the extension
extension nonexistent Extension does not exist

Delete Supervisor Session (Sign Out)

This endpoint is used to delete a certain supervisor session, i.e. signing the user out.

DELETE supervisor-session/[token]

Parameters/Attributes

Location Name Required Description
URL token Yes Token of the supervisor session for which to sign user out

Return Data

[None]

Create Agent Session (Sign In)

This endpoint is used to create a new session for an agent user, i.e. sign the user in.

POST agent-session

Parameters/Attributes

Location Name Required Description
Request Body user Yes User ID of agent for which to create session
Request Body extension Yes Extension to sign agent in at
Request Body force No 1 - force new session if agent already signed in 0 - do not force new session (will fail with error if agent already signed in)

Return Data

If the request is successful, the returned data is the token of the new agent session (64-byte string).

Example:

f7174339b2b7101c9df7dfc17ae9feba63138d435cf2d4b11ae59e0b185d54db

Special Errors

Parameter/Attribute Type Description
[null] already_signed_in The agent is already signed in with another session
extension blank Extension not specified
extension nonexistent Extension does not exist
extension in_use Another user is signed in at the extension

Keep Agent Session Alive (Ping)

This endpoint is used to keep a session for an agent user alive, i.e. ping. Although sessions are automatically refreshed by other requests (when they are authenticated as the user), sending a ping regularly ensures that the session won't time out.

PUT agent-session/[token]

Parameters/Attributes

Location Name Required Description
URL token Yes Token of the agent session to keep alive

Return Data

If the request is successful, the returned data is an object containing information about the session refresh.

Example:

{ "previouslyActive": true }

Special Errors

Parameter/Attribute Type Description
token nonexistent The session doesn't exist or is no longer valid
[null] already_signed_in The agent is already signed in with another session
extension in_use Another user is signed in at the extension
extension nonexistent Extension does not exist

Delete Agent Session (Sign Out)

This endpoint is used to delete a certain agent session, i.e. signing the user out.

DELETE agent-session/[token]

Parameters/Attributes

Location Name Required Description
URL token Yes Token of the agent session for which to sign user out

Return Data

[None]

Get Supervisor

This endpoint is used to get a certain supervisor user.

GET supervisor/[id]

Parameters/Attributes

Location Name Required Description
URL id Yes User ID of the supervisor

Return Data

If the request is successful, the returned data is a supervisor user object.

Example:

{ "id":2, "username":"bill", "firstName":"Bill", "lastName":"Smith", "emailAddress":"bill.smith@someplace.com", "language":"en", "type":1, "agreedToEula":true, "deleted":false, "datetimeLastUpdated":1358539596, "datetimeDeleted":null }

Create Supervisor

This endpoint is used to create a new supervisor user.

POST supervisor

Parameters/Attributes

Location Name Required Description
Request Body data Yes JSON object containing attributes of supervisor user to create
data parameter (JSON object) username Yes 3-20 alphanumeric characters
data parameter (JSON object) firstName Yes 1-32 characters
data parameter (JSON object) lastName No 1-32 characters, or blank/null
data parameter (JSON object) password Yes 4-20 characters
data parameter (JSON object) emailAddress Yes valid email address
data parameter (JSON object) language No valid language code: en (English) es (Spanish) he (Hebrew) or blank/null for default language
data parameter (JSON object) type Yes valid type code: full monitorOnly

Return Data

If the request is successful, the returned data is the ID of the new supervisor user (integer).

Example:

142

Special Errors

Parameter/Attribute Type Description
username in_use A supervisor with the specified username already exists
emailAddress in_use A supervisor with the specified email address already exists

Update Supervisor

This endpoint is used to update an existing supervisor user.

PUT supervisor/[id]

Parameters/Attributes

Location Name Required Description
URL id Yes User ID of the supervisor
Request Body data Yes JSON object containing attributes of supervisor user to update
data parameter (JSON object) username Yes 3-20 alphanumeric characters
data parameter (JSON object) firstName Yes 1-32 characters
data parameter (JSON object) lastName No 1-32 characters, or blank/null
data parameter (JSON object) password No 4-20 characters
data parameter (JSON object) emailAddress Yes valid email address
data parameter (JSON object) language No valid language code: en (English) es (Spanish) he (Hebrew) or blank/null for default language
data parameter (JSON object) type Yes valid type code: full monitorOnly

Return Data

[None]

Special Errors

Parameter/Attribute Type Description
username in_use A supervisor with the specified username already exists
emailAddress in_use A supervisor with the specified email address already exists

Delete Supervisor

This endpoint is used to delete a certain supervisor user. The user is not actually deleted, but is flagged as deleted and treated accordingly.

DELETE supervisor/[id]

Parameters/Attributes

Location Name Required Description
URL id Yes User ID of the supervisor

Return Data

[None]

Undelete Supervisor

This endpoint is used to undelete a certain supervisor user.

PUT supervisor/[id]

Parameters/Attributes

Location Name Required Description
URL id Yes User ID of the supervisor
Query String undelete Yes 1

Return Data

[None]

Get Agent

This endpoint is used to get a certain agent user.

GET agent/[id]

Parameters/Attributes

Location Name Required Description
URL id Yes User ID of the agent

Return Data

If the request is successful, the returned data is a agent user object.

Example:

{ "id":2, "number":"604", "firstName":"Bill", "lastName":"Smith", "emailAddress":null, "language":null, "deleted":false, "datetimeLastUpdated":1358539596, "datetimeDeleted":null }

Create Agent

This endpoint is used to create a new agent user.

POST agent

Parameters/Attributes

Location Name Required Description
Request Body data Yes JSON object containing attributes of agent user to create
data parameter (JSON object) number Yes 1-5 digits, not starting with 0
data parameter (JSON object) firstName Yes 1-32 characters
data parameter (JSON object) lastName No 1-32 characters, or blank/null
data parameter (JSON object) password Yes 3-10 digits
data parameter (JSON object) emailAddress No valid email address, or blank/null
data parameter (JSON object) language No valid language code: en - English es - Spanish he - Hebrew or blank/null for default language

Return Data

If the request is successful, the returned data is the ID of the new agent user (integer).

Example:

142

Special Errors

Parameter/Attribute Type Description
number in_use An agent with the specified number already exists
emailAddress in_use An agent with the specified email address already exists

Update Agent

This endpoint is used to update an existing agent user.

PUT agent/[id]

Parameters/Attributes

Location Name Required Description
URL id Yes User ID of the supervisor
Request Body data Yes JSON object containing attributes of agent user to update
data parameter (JSON object) number Yes 1-5 digits, not starting with 0
data parameter (JSON object) firstName Yes 1-32 characters
data parameter (JSON object) lastName No 1-32 characters, or blank/null
data parameter (JSON object) password No 3-10 digits
data parameter (JSON object) emailAddress No valid email address, or blank/null
data parameter (JSON object) language No valid language code: en - English es - Spanish he - Hebrew or blank/null for default language

Return Data

[None]

Special Errors

Parameter/Attribute Type Description
number in_use An agent with the specified number already exists
emailAddress in_use An agent with the specified email address already exists

Delete Agent

This endpoint is used to delete a certain agent user. The user is not actually deleted, but is flagged as deleted and treated accordingly.

DELETE agent/[id]

Parameters/Attributes

Location Name Required Description
URL id Yes User ID of the agent

Return Data

[None]

Undelete Agent

This endpoint is used to undelete a certain agent user.

PUT agent/[id]

Parameters/Attributes

Location Name Required Description
URL id Yes User ID of the agent
Query String undelete Yes 1

Return Data

[None]

Get Call Queue

This endpoint is used to get a certain call queue.

Note: Many of the call queue attributes are normally configured in FreePBX and are not managed or used by the EQ software directly. See the FreePBX queue configuration page for more information on any attributes that aren't self-explanatory.

GET call-queue/[extension]

Parameters/Attributes

Location Name Required Description
URL extension Yes Extension of the call queue

Return Data

If the request is successful, the returned data is a call queue object.

Example:

{ "extension": 502, "name": "Support", "type": 0, "autoAnswerAcd": true, "sysResume": 5, "cidNamePrefix": null, "agentRestrictions": 0, "ringStrategy": "ringall", "weight": 0, "mohClass": "inherit", "ringingMoh": false, "recordingFormat": "wav", "recordingMode": "includeholdtime", "maxWaitTime": null, "agentTimeout": 15, "agentRetryTime": 5, "maxCallers": null, "joinEmpty": "yes", "leaveEmpty": "no", "announceFrequency": 0, "announcePosition": "no", "announceHoldTime": "no", "deleted": false, "datetimeLastUpdated": 1368720932, "datetimeDeleted": null }

Create Call Queue

This endpoint is used to create a new call queue.

Note: Many of the call queue attributes are normally configured in FreePBX and are not managed or used by the EQ software directly. See the FreePBX queue configuration page for more information on any attributes that aren't self-explanatory.

POST call-queue

Parameters/Attributes

Location Name Required Description
Request Body data Yes JSON object containing attributes of call queue to create
data parameter (JSON object) extension Yes digits only, not starting with 0
data parameter (JSON object) name Yes 1-35 characters
data parameter (JSON object) type Yes valid type code: 0 (inbound) 1 (outbound)
data parameter (JSON object) autoAnswerAcd No boolean
data parameter (JSON object) sysResume No integer > 0 (seconds), or null to disable
data parameter (JSON object) wrapUpTime No integer > 0 (seconds), 0 for unlimited, or null to disable
data parameter (JSON object) wrapUpAllQueues No boolean
data parameter (JSON object) cidNamePrefix No string, or blank/null
data parameter (JSON object) agentRestrictions No valid choice: 0 (Call as Dialed) 1 (No Follow-Me or Call Forward) 2 (Extensions Only)
data parameter (JSON object) ringStrategy No valid choice: ringall leastrecent fewestcalls random rrmemory rrordered linear wrandom
data parameter (JSON object) weight No integer 0-10
data parameter (JSON object) mohClass No valid choice: inherit default none
data parameter (JSON object) ringingMoh No boolean
data parameter (JSON object) recordingFormat No "wav", or blank/null to disable Note: FreePBX lists two other formats that are not supported by EQ and should not be used.
data parameter (JSON object) recordingMode No valid choice: includeholdtime afteranswered
data parameter (JSON object) maxWaitTime No integer > 0, or null for unlimited
data parameter (JSON object) agentTimeout No integer > 0, or null for unlimited
data parameter (JSON object) agentRetryTime No integer >= 0, or null for no retry
data parameter (JSON object) maxCallers No integer > 0, or null for unlimited
data parameter (JSON object) joinEmpty No valid choice: yes no strict ultrastrict loose
data parameter (JSON object) leaveEmpty No valid choice: yes no strict ultrastrict loose
data parameter (JSON object) announceFrequency No integer >= 0
data parameter (JSON object) announcePosition No valid choice: yes no
data parameter (JSON object) announceHoldTime No valid choice: yes no once

Return Data

If the request is successful, the returned data is the extension of the new call queue.

Example:

503

Special Errors

Parameter/Attribute Type Description
extension in_use A call queue with the specified extension already exists
name in_use A call queue with the specified name already exists

Update Call Queue

This endpoint is used to update an existing call queue.

Note: Many of the call queue attributes are normally configured in FreePBX and are not managed or used by the EQ software directly. See the FreePBX queue configuration page for more information on any attributes that aren't self-explanatory.

PUT call-queue/[extension]

Parameters/Attributes

Location Name Required Description
URL extension Yes Extension of the call queue
Request Body data Yes JSON object containing attributes of call queue to create
data parameter (JSON object) name Yes 1-35 characters
data parameter (JSON object) type Yes valid type code: 0 (inbound) 1 (outbound)
data parameter (JSON object) autoAnswerAcd No boolean
data parameter (JSON object) sysResume No integer > 0 (seconds), or null to disable
data parameter (JSON object) wrapUpTime No integer > 0 (seconds), 0 for unlimited, or null to disable
data parameter (JSON object) wrapUpAllQueues No boolean
data parameter (JSON object) cidNamePrefix No string, or blank/null
data parameter (JSON object) agentRestrictions No valid choice: 0 (Call as Dialed) 1 (No Follow-Me or Call Forward) 2 (Extensions Only)
data parameter (JSON object) ringStrategy No valid choice: ringall leastrecent fewestcalls random rrmemory rrordered linear wrandom
data parameter (JSON object) weight No integer 0-10
data parameter (JSON object) mohClass No valid choice: inherit default none
data parameter (JSON object) ringingMoh No boolean
data parameter (JSON object) recordingFormat No "wav", or blank/null to disable Note: FreePBX lists two other formats that are not supported by EQ and should not be used.
data parameter (JSON object) recordingMode No valid choice: includeholdtime afteranswered
data parameter (JSON object) maxWaitTime No integer > 0, or null for unlimited
data parameter (JSON object) agentTimeout No integer > 0, or null for unlimited
data parameter (JSON object) agentRetryTime No integer >= 0, or null for no retry
data parameter (JSON object) maxCallers No integer > 0, or null for unlimited
data parameter (JSON object) joinEmpty No valid choice: yes no strict ultrastrict loose
data parameter (JSON object) leaveEmpty No valid choice: yes no strict ultrastrict loose
data parameter (JSON object) announceFrequency No integer >= 0
data parameter (JSON object) announcePosition No valid choice: yes no
data parameter (JSON object) announceHoldTime No valid choice: yes no once

Return Data

[None]

Special Errors

Parameter/Attribute Type Description
extension in_use A call queue with the specified extension already exists
name in_use A call queue with the specified name already exists

Delete Call Queue

This endpoint is used to delete a certain call queue. The queue is removed completely form Asterisk, but the call queue is not actually deleted in the EQ system, but is flagged as deleted and treated accordingly.

DELETE call-queue/[extension]

Parameters/Attributes

Location Name Required Description
URL extension Yes Extension of the call queue

Return Data

[None]

Undelete Call Queue

This endpoint is used to undelete a certain call queue.

PUT call-queue/[extension]

Parameters/Attributes

Location Name Required Description
URL id Yes Extension of the call queue
Query String undelete Yes 1

Return Data

[None]

Get Pause Code

This endpoint is used to get a certain pause code.

GET pause-code/[id]

Parameters/Attributes

Location Name Required Description
URL id Yes ID of the pause code

Return Data

If the request is successful, the returned data is a pause code object.

Example:

{ "id":7, "name":"Lunch", "deleted":false, "datetimeLastUpdated":1358539596, "datetimeDeleted":null }

Create Pause Code

This endpoint is used to create a new pause code.

POST pause-code

Parameters/Attributes

Location Name Required Description
Request Body data Yes JSON object containing attributes of pause code to create
data parameter (JSON object) name Yes 1-16 characters

Return Data

If the request is successful, the returned data is the ID of the new pause code (integer).

Example:

7

Special Errors

Parameter/Attribute Type Description
name in_use A pause code with the specified name already exists

Update Pause Code

This endpoint is used to update an existing pause code.

PUT pause-code/[id]

Parameters/Attributes

Location Name Required Description
URL id Yes ID of the pause code
Request Body data Yes JSON object containing attributes of pause code to update
data parameter (JSON object) name Yes 1-16 characters

Return Data

[None]

Special Errors

Parameter/Attribute Type Description
name in_use Another pause code with the specified name already exists

Delete Pause Code

This endpoint is used to delete a certain pause code. The pause code is not actually deleted, but is flagged as deleted and treated accordingly.

DELETE pause-code/[id]

Parameters/Attributes

Location Name Required Description
URL id Yes ID of the pause code

Return Data

[None]

Undelete Pause Code

This endpoint is used to undelete a certain pause code.

PUT pause-code/[id]

Parameters/Attributes

Location Name Required Description
URL id Yes ID of the pause code
Query String undelete Yes 1

Return Data

[None]

Get Extension

This endpoint is used to get a certain user extension.

GET extension/[extension]

Parameters/Attributes

Location Name Required Description
URL extension Yes Extension

Return Data

If the request is successful, the returned data is a extension object.

Example:

{ "extension": "604", "name": "Bill Smith", "cidMasquerade": null, "outboundCid": null, "emergencyCid": null, "callWaiting": true, "recording": { "inboundExternal": "dontcare", "inboundInternal": "dontcare" "outboundExternal": "dontcare", "outboundInternal": "dontcare", "onDemand": true }, "sip": { "secret": null, "dtmfMode": "rfc2833", "context": "from-internal", "nat": "no" }, "voicemail": null }

Create Extension

This endpoint is used to create a new user extension.

POST extension

Parameters/Attributes

Location Name Required Description
Request Body data Yes JSON object containing attributes of extension to create
data parameter (JSON object) extension Yes digits only, not starting with 0
data parameter (JSON object) name Yes 1-50 characters
data parameter (JSON object) cidMasquerade No digits, or blank/null
data parameter (JSON object) outboundCid No digits, or blank/null
data parameter (JSON object) emergencyCid No digits, or blank/null
data parameter (JSON object) callWaiting No boolean
data parameter (JSON object) recording.inboundExternal No valid choice: dontcare always never
data parameter (JSON object) recording.inboundInternal No valid choice: dontcare always never
data parameter (JSON object) recording.outboundExternal No valid choice: dontcare always never
data parameter (JSON object) recording.outboundInternal No valid choice: dontcare always never
data parameter (JSON object) recording.onDemand No boolean
data parameter (JSON object) sip.secret No string, or blank/null
data parameter (JSON object) sip.dtmfMode No valid choice: rfc2833 (RFC 2833) inband (In band audio) auto (Auto) info (SIP INFO (application/dtmf-relay) shortinfo (SIF INFO (application/dtmf)
data parameter (JSON object) sip.context No string, or blank/null for default ("from-internal")
data parameter (JSON object) sip.nat No valid choice: yes (Yes) no (No - RFC3581) never (never - no RFC3581) route (route - NAT no rport)
data parameter (JSON object) voicemail No JSON object containing voicemail config, or null to disable
data parameter (JSON object) voicemail.context No string, or blank/null for default ("default")
data parameter (JSON object) voicemail.password No digits, or blank/null
data parameter (JSON object) voicemail.emailAddress No valid email address, or blank/null
data parameter (JSON object) voicemail.pagerEmailAddress No valid email address, or blank/null
data parameter (JSON object) voicemail.options No JSON object containing voicemail options with option names as keys and option values as values, or null for defaults
data parameter (JSON object) voicemail.options.attach No valid choice: yes no
data parameter (JSON object) voicemail.options.saycid No valid choice: yes no
data parameter (JSON object) voicemail.options.envelope No valid choice: yes no
data parameter (JSON object) voicemail.options.delete No valid choice: yes no

Return Data

If the request is successful, the returned data is the new extension.

Example:

604

Special Errors

Parameter/Attribute Type Description
extension in_use A extension with the specified extension already exists
name in_use A extension with the specified name already exists

Update Extension

This endpoint is used to update an existing user extension.

PUT extension/[extension]

Parameters/Attributes

Location Name Required Description
URL extension Yes Extension
Request Body data Yes JSON object containing attributes of extension to create
data parameter (JSON object) extension Yes digits only, not starting with 0
data parameter (JSON object) name Yes 1-50 characters
data parameter (JSON object) cidMasquerade No digits, or blank/null
data parameter (JSON object) outboundCid No digits, or blank/null
data parameter (JSON object) emergencyCid No digits, or blank/null
data parameter (JSON object) callWaiting No boolean
data parameter (JSON object) recording.inboundExternal No valid choice: dontcare always never
data parameter (JSON object) recording.inboundInternal No valid choice: dontcare always never
data parameter (JSON object) recording.outboundExternal No valid choice: dontcare always never
data parameter (JSON object) recording.outboundInternal No valid choice: dontcare always never
data parameter (JSON object) recording.onDemand No boolean
data parameter (JSON object) sip.secret No string, or blank/null
data parameter (JSON object) sip.dtmfMode No valid choice: rfc2833 (RFC 2833) inband (In band audio) auto (Auto) info (SIP INFO (application/dtmf-relay) shortinfo (SIF INFO (application/dtmf)
data parameter (JSON object) sip.context No string, or blank/null for default ("from-internal")
data parameter (JSON object) sip.nat No valid choice: yes (Yes) no (No - RFC3581) never (never - no RFC3581) route (route - NAT no rport)
data parameter (JSON object) voicemail No JSON object containing voicemail config, or null to disable
data parameter (JSON object) voicemail.context No string, or blank/null for default
data parameter (JSON object) voicemail.password No digits, or blank/null
data parameter (JSON object) voicemail.emailAddress No valid email address, or blank/null
data parameter (JSON object) voicemail.pagerEmailAddress No valid email address, or blank/null
data parameter (JSON object) voicemail.options No JSON object containing voicemail options with option names as keys and option values as values, or null for defaults
data parameter (JSON object) voicemail.options.attach No valid choice: yes no
data parameter (JSON object) voicemail.options.saycid No valid choice: yes no
data parameter (JSON object) voicemail.options.envelope No valid choice: yes no
data parameter (JSON object) voicemail.options.delete No valid choice: yes no

Return Data

[None]

Special Errors

Parameter/Attribute Type Description
extension in_use A extension with the specified extension already exists
name in_use A extension with the specified name already exists

Delete Extension

This endpoint is used to delete a certain user extension.

DELETE extension/[extension]

Parameters/Attributes

Location Name Required Description
URL extension Yes Extension

Return Data

[None]

Get Phone

This endpoint is used to get the details of the phone for a certain extension.

GET phone

Parameters/Attributes

Location Name Required Description
Query String extension Yes Extension

Return Data

If the request is successful, the returned data is a phone object.

Example:

{ "ipAddress": "192.168.2.200", "brand": "polycom", "model": "550", "firmwareVersion": "4.0.2.11307" // can be null }

Create Alert

This endpoint is used to create a new alert.

POST alert

Parameters/Attributes

Location Name Required Description
Request Body data Yes JSON object containing attributes of alert to create
data parameter (JSON object) user No User ID of supervisor the alert is for, or null for system-wide alert (custom notification type only)
data parameter (JSON object) name Yes 1-48 characters
data parameter (JSON object) type Yes valid alert type code: callQueueCallsHigh callQueueWaitTimeHigh callQueueAgentsLow callQueueAgentsAvailableLow emailQueueEmailsHigh emailQueueAgentsLow emailQueueAgentsAvailableLow licenseExceeded processStopped diskUsageHigh
data parameter (JSON object) callQueue Yes, if applicable Extension of call queue
data parameter (JSON object) emailQueue Yes, if applicable ID of email queue
data parameter (JSON object) threshold Yes, if applicable integer
data parameter (JSON object) notificationType Yes valid notification type string: realtime email sms custom
data parameter (JSON object) color Yes, if applicable color to display alert as for realtime notification type only RGB color string in format #XXXXXX
data parameter (JSON object) interval Yes, if applicable minimum interval in minutes between alert notifications for email, SMS, and custom notification types only
data parameter (JSON object) daysOfWeek Yes days of week for which alert is active array of integers, each 0-6: 0 = sunday 1 = monday 2 = tuesday 3 = wednesday 4 = thursday 5 = friday 6 = saturday Example for Monday, Wednesday, and Friday: [1, 3, 5]
data parameter (JSON object) fromTime Yes beginning of interval of time in day for which alert is active string in format HH:MM AM or HH:MM PM
data parameter (JSON object) toTime Yes end of interval of time in day for which alert is active string in format HH:MM AM or HH:MM PM use 12:00 AM for very end of day

Return Data

If the request is successful, the returned data is the ID of the new alert (integer).

Example:

32

Special Errors

Parameter/Attribute Type Description
name in_use An alert with the specified name already exists for the user

Update Alert

This endpoint is used to update an existing alert.

PUT alert/[id]

Parameters/Attributes

Location Name Required Description
URL id Yes ID of the alert
Request Body data Yes JSON object containing attributes of alert to update
data parameter (JSON object) name Yes 1-48 characters
data parameter (JSON object) type Yes valid alert type code: callQueueCallsHigh callQueueWaitTimeHigh callQueueAgentsLow callQueueAgentsAvailableLow emailQueueEmailsHigh emailQueueAgentsLow emailQueueAgentsAvailableLow licenseExceeded processStopped diskUsageHigh
data parameter (JSON object) callQueue Yes, if applicable Extension of call queue
data parameter (JSON object) emailQueue Yes, if applicable ID of email queue
data parameter (JSON object) threshold Yes, if applicable integer
data parameter (JSON object) notificationType Yes valid notification type: realtime email sms custom
data parameter (JSON object) color Yes, if applicable color to display alert as for realtime notification type only RGB color string in format #XXXXXX
data parameter (JSON object) interval Yes, if applicable minimum interval in minutes between alert notifications for email, SMS, and custom notification types only
data parameter (JSON object) daysOfWeek Yes days of week for which alert is active array of integers, each 0-6: 0 = sunday 1 = monday 2 = tuesday 3 = wednesday 4 = thursday 5 = friday 6 = saturday Example for Monday, Wednesday, and Friday: [1, 3, 5]
data parameter (JSON object) fromTime Yes beginning of interval of time in day for which alert is active string in format HH:MM AM or HH:MM PM
data parameter (JSON object) toTime Yes end of interval of time in day for which alert is active string in format HH:MM AM or HH:MM PM use 12:00 AM for very end of day

Return Data

[None]

Special Errors

Parameter/Attribute Type Description
name in_use An alert with the specified name already exists for the user

Delete Alert

This endpoint is used to delete a certain alert permanently.

DELETE alert/[id]

Parameters/Attributes

Location Name Required Description
URL id Yes ID of the alert

Return Data

[None]

Get Active Supervisor Sessions

This endpoint is used to get the details of active supervisor sessions.

GET active-supervisor-sessions

Parameters/Attributes

Location Name Required Description

Return Data

The returned data is an array of supervisor session objects.

Example:

[ { "token": "1a52c89e98e25adece7d6e47c67d1f10d89d294d105df19d7bcb1ca8d8f7520d", "user": 2, "extension": null, "pcless": false, "ipAddress": "172.16.0.5", "datetimeLastRefreshed": 1389216550, "active": true } ]

Get Active Agent Sessions

This endpoint is used to get the details of active agent sessions.

GET active-agent-sessions

Parameters/Attributes

Location Name Required Description

Return Data

The returned data is an array of agent session objects.

Example:

[ { "token": "32b227dc4d2bd6e28543305db91aa679a6a576606a284732344cb1e9c9a60497", "user": 3, "extension": "604", "pcless": false, "ipAddress": "172.16.0.5", "datetimeLastRefreshed": 1389216540, "active": true } ]

Get Queued Calls

This endpoint is used to get the details of calls in queue for a certain queue or all queues.

GET queued-calls

Parameters/Attributes

Location Name Required Description
Query String queue No Extension of the call queue, or blank for all queues

Return Data

The returned data is an array of queued call objects.

Example (all queues):

[ { "queue": "501", "position": 1, "callerId": { "number": "604", "name": "Bill Smith" }, "waitTime": 0 }, { "queue": "502", "position": 1, "callerId": { "number": "104", "name": "Bob Jones" }, "waitTime": 6 } ]

Steal Queued Call

This endpoint is used to steal a call from queue and transfer it to an extension.

POST steal-queued-call

Parameters/Attributes

Location Name Required Description
Request Body channel Yes Channel of the queued call to steal
Request Body destination Yes Extension or destination to which to send the call

Return Data

[None]

Get Parked Calls

This endpoint is used to get the details of calls in the parking lot.

GET parked-calls

Parameters/Attributes

Location Name Required Description

Return Data

The returned data is an array of parked call objects.

Example:

[ { "channel": "SIP\/104-00000099", "extension": 701, "callerId": { "number": "104", "name": "Bob Jones" }, "fromExtension": 604, "fromAgent": 3, "timeout": 230 }, { "channel": "SIP\/104-0000009b", "extension": 702, "callerId": { "number": "104", "name": "Bill Smith" }, "fromExtension": 604, "fromAgent": null, "timeout": 294 } ]

Pick Up Parked Call

This endpoint is used to pick up a parked call and transfer it to an extension.

POST pick-up-parked-call

Parameters/Attributes

Location Name Required Description
Request Body channel Yes Channel of the parked call to pick up
Request Body destination Yes Extension or destination to which to send the call

Return Data

[None]

Get Active Calls

This endpoint is used to get the details of active calls for a certain extension.

GET active-calls

Parameters/Attributes

Location Name Required Description
Query String extension Yes Extension for which to retrieve calls

Return Data

The returned data is an array of parked call objects.

Example:

[ { "channel":"SIP\/604-0000019c", "datetimeStarted":1384457428, "uniqueId":"1384457427.423", "queue":null, "callerId": { "number":"804", "name":"Alex Softphone" }, "called":"604", "hasNotes":false } ]

Get Call Recordings

This endpoint is used to get the file paths of call recordings for a certain call.

GET call-recordings

Parameters/Attributes

Location Name Required Description
Query String call Yes (unless call unique ID specified) ID of the call for which to retrieve recordings
Query String call_unique_id No (unless call ID not specified) Unique IDof the call for which to retrieve recordings

Return Data

The returned data is an array of absolute file paths.

Example:

[ "\/var\/spool\/asterisk\/monitor\/2013\/12\/10\/manual-604-20131210-112425-1386696247.830.wav", "\/var\/spool\/asterisk\/monitor\/2013\/12\/10\/q-501-804-20131210-112407-1386696247.830.wav" ]

Get Call Queue Agent Status

This endpoint is used to get the call queue agent statuses for a certain queue, a certain agent, or all queues and agents.

GET call-queue-agent-status

Parameters/Attributes

Location Name Required Description
Query String queue No Extension of a call queue, or blank for all queues or if specifying agent
Query String agent No User ID of an agent, or blank for all agents or if specifying queue
Query String combined No 0 or 1 (false or true) Value of 1 causes combined status across all queues for each agent to be returned Takes affect only if no queue or agent is specified

Return Data

The returned data is an array of call queue agent status objects.

Example (all queues and agents):

[ { "queue": "504", "agent": 3, "agentExtension": "104", "skill": 3, "status": "in_use", "wrapUpPlanned": true, "wrapUp": false, "wrapUpQueue": "505", "wrapUpTimeRemaining": null, "onEmail": false, "onLiveChat": false, "paused": false, "sysPaused": false, "pauseCode": null, "pauseCodeName": null, "io": 1, "acd": false, "ani": "804", "callerIdName": "Alex Smartphone", "otherExtension": "804", "otherUser": null, "waitTime": null, "uniqueId": "1404158257.74", "manuallyRecording": false, "datetimeFirstOnCall": 1404158259, "duration": 61, "channelUniqueId": "1404158257.75", "channelApplication": "AppQueue", "channelApplicationData": "(Outgoing Line)", "channelConnectedLineNum": "804", "bridgedChannelUniqueId": "1404158257.74", "bridgedChannelApplication": "Queue", "bridgedChannelApplicationData": "505,t,,,,,,,,", "bridgedChannelConnectedLineNum": "104" }, { "queue": "505", "agent": 3, "agentExtension": "104", "skill": 3, "status": "in_use", "wrapUpPlanned": true, "wrapUp": false, "wrapUpQueue": "505", "wrapUpTimeRemaining": null, "onEmail": false, "onLiveChat": false, "paused": false, "sysPaused": false, "pauseCode": null, "pauseCodeName": null, "io": 1, "acd": true, "ani": "804", "callerIdName": "Alex Smartphone", "otherExtension": "804", "otherUser": null, "waitTime": null, "uniqueId": "1404158257.74", "manuallyRecording": false, "datetimeFirstOnCall": 1404158259, "duration": 62, "channelUniqueId": "1404158257.75", "channelApplication": "AppQueue", "channelApplicationData": "(Outgoing Line)", "channelConnectedLineNum": "804", "bridgedChannelUniqueId": "1404158257.74", "bridgedChannelApplication": "Queue", "bridgedChannelApplicationData": "505,t,,,,,,,,", "bridgedChannelConnectedLineNum": "104" } ]

Execute Call Queue Agent Action (Sign In, Sign Out, Pause, Resume, Exit Wrap Up)

This endpoint is used to execute an action for an agent in a certain call queue or in all relevant call queues.

POST call-queue-agent-action

Parameters/Attributes

Location Name Required Description
Request Body action Yes Valid action type: signIn signOut pause resume exitWrapUp
Request Body options Yes JSON object containing options for action
options parameter (JSON object) agent Yes User ID of agent for which to execute action
options parameter (JSON object) queue No Extension of queue for which to execute action for agent If not specified or null (and queues parameter not specified either--signIn only), the action will be executed on all relevant queues, meaning (according to action type): signIn: sign in all bound queues signOut: sign out all queues currently signed in pause: pause all queues currently signed in resume: resume all queues currently signed in exitWrapUp: exit wrap up for all queues currently signed in
options parameter (JSON object) queues No Array of extensions of queues for which to sign agent into Example: ["500", "501", "504"]
options parameter (JSON object) skill No Skill level (penalty) with which to sign agent into queue (lower number means less penalty == higher priority) 5 - Lowest 4 - Below Normal 3 - Normal 2 - Above Normal 1 - Highest or null for default (3 - Normal) Has no effect for actions other than signIn
options parameter (JSON object) skills No Array of skill levels (penalty) with which to sign agent into queues (lower number means less penalty == higher priority) when signing in multiple specific queues Size of array must be equal to size of queues array Each array element must be a valid skill integer: 5 - Lowest 4 - Below Normal 3 - Normal 2 - Above Normal 1 - Highest Example: [3, 3, 5] Has no effect for actions other than signIn Also has no effect if queues parameter is not used
options parameter (JSON object) paused No Whether to sign queues in as paused Has no effect for actions other than signIn
options parameter (JSON object) pauseCode No ID of pause code to use for pause action or null for no pause code Has no effect for actions other than pause

Return Data

[None]

Special Errors

Parameter/Attribute Type Description
action invalid Action type not valid
agent blank Agent ID not specified
agent nonexistent Agent does not exist (or is deleted)
agent not_signed_in Agent not signed in (to system, not to queue) / has no active session
queue already_signed_in Agent already signed into queue (applies only to signIn action with certain queue specified)
queue not_signed_in Agent not signed into queue (applies only to signOut, pause, resume, and exitWrapUp actions with certain queue specified)
pauseCode nonexistent Pause code does not exist (applies only to pause action with pause code specified)

Get Call Queue Statistics

This endpoint is used to get a summary of calls and agents for a certain queue or all queues.

GET call-queue-statistics

Parameters/Attributes

Location Name Required Description
Query String queue No Extension of the call queue, or blank for all queues

Return Data

The returned data is a call queue statistics object, or an array of call queue statistics objects if returning data for all queues.

Example (single queue):

{ "queue": "502", "calls": { "queued": 0, "bounced": 0, "abandoned": 1, "completed": 2 }, "durations": { "currentMaxWait": 0, "maxWait": 0, "averageWait": 2, "averageTalk": 1 }, "agents": { "signedIn": 1, "idle": 0, "ringing": 1, "inUse": 0, "onHold": 0, "wrappingUp": 0, "paused": 1 } }

Execute Extension Action (Dial, Blind Transfer, Park, Hang Up)

This endpoint is used to dial, blind transfer, park, or hang up for an extension.

POST extension-action

Parameters/Attributes

Location Name Required Description
Request Body extension Yes Extension
Request Body action Yes Valid action type: dial blindTransfer park hangUp
Request Body channel No Extension's channel on which to act If not specified or blank, first channel found for extension will be used For blindTransfer, park, and hangUp types only
Request Body destination Yes, if applicable Phone number or extension For dial and blindTransfer types only

Return Data

[None]

Special Errors

Parameter/Attribute Type Description
extension nonexistent Extension does not exist

Execute Phone Command (Press a Key)

This endpoint is used to press a button on a certain phone.

POST phone-command

Parameters/Attributes

Location Name Required Description
Request Body phone Yes (unless extension specified) JSON object containing attributes for phone Must be a valid phone object, as returned by the phone endpoint
Request Body extension No Extension of phone Can be specified in place of a phone object
Request Body key Yes Valid key: line1, line2, ... soft_key1, soft_key2, ... up down left right enter cancel volume_up volume_down headset speaker mute menu messages applications directory dnd conference transfer redial hold 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 star pound

Return Data

[None]

Special Errors

Parameter/Attribute Type Description
extension nonexistent Extension does not exist
phone nonexistent Phone does not exist (extension not registered or phone type undetectable)
key invalid Key is not valid for phone

Execute Call Recording Action (Start, Stop, Cancel)

This endpoint is used to manually record, stop recording, or cancel recording for an extension.

POST call-recording-action

Parameters/Attributes

Location Name Required Description
Request Body extension Yes Extension
Request Body action Yes Valid action type: start stop cancel

Return Data

[None]

Special Errors

Parameter/Attribute Type Description
extension nonexistent Extension does not exist

Execute Call Monitor Action (Spy, Barge In, Whisper)

This endpoint is used to spy, barge in, or whisper to an extension.

POST call-monitor-action

Parameters/Attributes

Location Name Required Description
Request Body action Yes Valid action type: spy bargeIn whisper
Request Body targetExtension Yes Extension to monitor
Request Body monitorExtension Yes Extension from which to monitor

Return Data

[None]

Special Errors

Parameter/Attribute Type Description
targetExtension nonexistent Target extension does not exist
monitorExtension nonexistent Monitor extension does not exist

Get Active Conferences

This endpoint is used to get the statuses of any active conferences.

GET active-conferences

Parameters/Attributes

Location Name Required Description

Return Data

The returned data is an array of parked call objects.

Example:

[ { "conference": "3279", "statuses": [ { 'userNumber' => 1, 'callerId' => [ 'number' => '104', 'name' => 'Somebody', ], 'talking' => 'not_monitored', // 'yes', 'no', or 'not_monitored' 'muted' => false, 'duration' => 132, } ] } ]

License

This endpoint is used to get the license details.

GET license

Parameters/Attributes

[None]

Return Data

The returned data is a license object.

Example:

{ "site":"Equilibrium Contact Center Inc.", "architecture": "64", "supervisors": { "full": 10, "monitorOnly": 10 }, "agents": { "all": 20, "outbound": 3, "email": 10, "liveChat": 5 }, "expires": 2082780000, "lastUpdated": 1397836028 }

License Usage

This endpoint is used to get the current license usage.

GET license-usage

Parameters/Attributes

[None]

Return Data

The returned data is a license usage object.

Example:

{ "supervisors": { "full": 0, "monitorOnly": 0 }, "agents": { "all": 1, "outbound": 0, "email": 0 } }

Configuration Check

This endpoint is used to check for problems in the configuration of the system.

GET configuration-check

Parameters/Attributes

[None]

Return Data

The returned data is a configuration check object.

Example:

{ "filePermissions": { "directories": { "\/var\/lib\/php\/session": true, "\/var\/spool\/asterisk\/monitor": true, "\/var\/spool\/asterisk\/monitor\/emails": true, "\/var\/www\/html\/eq\/temp\/exports\/call_scripts": true, "\/var\/www\/html\/eq\/temp\/exports\/historical_reports": true }, "threads": { "\/opt\/eq\/eq": 1, "\/opt\/eq\/eqc": 1, "\/opt\/eq\/eqch": 1, "\/opt\/eq\/eqconf": 1, "\/opt\/eq\/eqd1": 1, "\/opt\/eq\/eqd2": 1, "\/opt\/eq\/eqp": 1, "\/opt\/eq\/eqr": 1, "\/opt\/eq\/eqs": 1, "\/opt\/eq\/eqt": 1, "\/opt\/eq\/eqphpl": 1, "\/var\/www\/html\/eq\/scripts\/threads\/calculate_agent_compliance.php": 1, "\/var\/www\/html\/eq\/scripts\/threads\/convert_call_recordings.php": 1, "\/var\/www\/html\/eq\/scripts\/threads\/main.php": 1, "\/var\/www\/html\/eq\/scripts\/threads\/manage_statuses.php": 1, "\/var\/www\/html\/eq\/scripts\/threads\/monitor_sessions.php": 1, "\/var\/www\/html\/eq\/scripts\/threads\/process_actions.php": 1, "\/var\/www\/html\/eq\/scripts\/threads\/process_calls.php": 1, "\/var\/www\/html\/eq\/scripts\/threads\/run_scheduled_historical_reports.php": 1, "\/var\/www\/html\/eq\/scripts\/threads\/send_alert_notifications.php": 1, "\/var\/www\/html\/eq\/scripts\/threads\/summarize_data.php": 1, "\/var\/www\/html\/eq\/scripts\/threads\/sync_deprecated_tables.php": 1, "\/var\/www\/html\/eq\/scripts\/threads\/sync_with_asterisk.php": 1, "\/var\/www\/html\/eq\/scripts\/threads\/email\/process_incoming.php": 1, "\/var\/www\/html\/eq\/scripts\/threads\/email\/process_outgoing.php": 1, "\/var\/www\/html\/eq\/scripts\/threads\/email\/ring.php": 1, "\/var\/www\/html\/eq\/scripts\/threads\/live_chat\/monitor_clients.php": 1, "\/var\/www\/html\/eq\/scripts\/threads\/live_chat\/process_chats.php": 1, "\/var\/www\/html\/eq\/scripts\/threads\/live_chat\/ring.php": 1, "\/var\/www\/html\/eq\/scripts\/threads\/live_chat\/update_statuses.php": 1 }, "cronJobs": [ ], "scripts": { "\/var\/www\/html\/eq\/scripts\/db_backup.sh": true, "\/var\/www\/html\/eq\/scripts\/db_backupdel.sh": true, "\/var\/www\/html\/eq\/scripts\/disk_status.sh": true, "\/var\/www\/html\/eq\/scripts\/fix.php": true, "\/var\/www\/html\/eq\/scripts\/reload_freepbx.php": true, "\/var\/www\/html\/eq\/scripts\/run_scheduled_historical_report.php": true, "\/var\/www\/html\/eq\/scripts\/send_email_to_agent.php": true, "\/var\/www\/html\/eq\/scripts\/thread_start.sh": true, "\/var\/www\/html\/eq\/scripts\/thread_status.sh": true, "\/var\/www\/html\/eq\/scripts\/update.php": true, "\/var\/www\/html\/eq\/scripts\/agi\/eqcse\/main.php": true, "\/var\/www\/html\/eq\/scripts\/agi\/eqcse\/send_email.php": true, "\/var\/www\/html\/eq\/scripts\/agi\/eqcse\/send_text_message.php": true, "\/var\/www\/html\/eq\/scripts\/agi\/pcless\/pause.php": true, "\/var\/www\/html\/eq\/scripts\/agi\/pcless\/resume.php": true, "\/var\/www\/html\/eq\/scripts\/agi\/pcless\/sign_in.php": true, "\/var\/www\/html\/eq\/scripts\/agi\/pcless\/sign_out.php": true, "\/var\/www\/html\/eq\/scripts\/cron\/daily\/maintenance.sh": true, "\/var\/www\/html\/eq\/scripts\/cron\/daily\/report.php": true, "\/var\/www\/html\/eq\/scripts\/cron\/every1\/eq_recover.sh": true, "\/var\/www\/html\/eq\/scripts\/cron\/every1\/main.php": true, "\/var\/www\/html\/eq\/scripts\/cron\/every1\/send_alert_notifications.php": true, "\/var\/www\/html\/eq\/scripts\/custom\/nexvortex\/send_alert_notification.php": true }, "libraries": { "\/var\/www\/html\/eq\/libraries\/wkhtmltopdf\/0.11.0_rc1\/wkhtmltopdf-amd64": true, "\/bin\/nice": true, "\/usr\/local\/bin\/lame": true }, "links": { "\/opt\/eq\/eqphp": true, "\/etc\/cron.every1\/eq.php": true, "\/var\/lib\/asterisk\/agi-bin\/main.php": true, "\/var\/lib\/asterisk\/agi-bin\/pause.php": true, "\/var\/lib\/asterisk\/agi-bin\/resume.php": true, "\/var\/lib\/asterisk\/agi-bin\/sign_in.php": true, "\/var\/lib\/asterisk\/agi-bin\/sign_out.php": true } }, "missingCLibraries": [ ], "systemConfig": { "phpTimeZone": true, "email": true }, "asteriskConfig": { "fullLog": true }, "callQueues": { "503": { "agentRestrictions": true, "eventWhenCalled": true, "eventMemberStatus": true }, "504": { "agentRestrictions": true, "eventWhenCalled": true, "eventMemberStatus": true }, "501": { "agentRestrictions": false, "eventWhenCalled": true, "eventMemberStatus": true }, "502": { "agentRestrictions": true, "eventWhenCalled": true, "eventMemberStatus": true }, "505": { "agentRestrictions": true, "eventWhenCalled": true, "eventMemberStatus": true } } }