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

Standard HTTP response codes indicate success or failure of the request...

CodeDescription
200Request was successful
400Request not valid
401Unauthorized
404Not Found
500Server error

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

Supervisor Session

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

LocationNameRequiredDescription
Request BodyuserYesUser ID of supervisor for which to create session
Request BodyextensionNoExtension to sign supervisor in at
Request BodyforceNo1 - 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/AttributeTypeDescription
tokennonexistentThe session doesn't exist or is no longer valid
[null]already_signed_inThe supervisor is already signed in with another session
extensionin_useAnother user is signed in at the extension
extensionnonexistentExtension 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

LocationNameRequiredDescription
URLtokenYesToken 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

LocationNameRequiredDescription
Request BodyuserYesUser ID of agent for which to create session
Request BodyextensionYesExtension to sign agent in at
Request BodyforceNo1 - 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/AttributeTypeDescription
[null]already_signed_inThe agent is already signed in with another session
extensionblankExtension not specified
extensionnonexistentExtension does not exist
extensionin_useAnother user is signed in at the extension
https://www.equeues.com/test/api.html#authentication

Supervisor

Get Supervisor

This endpoint is used to get a certain supervisor user.

GET supervisor/[id]

Parameters/Attributes

LocationNameRequiredDescription
URLidYesUser 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

LocationNameRequiredDescription
Request BodydataYesJSON object containing attributes of supervisor user to create
data parameter (JSON object)usernameYes3-20 alphanumeric characters
data parameter (JSON object)firstNameYes1-32 characters
data parameter (JSON object)lastNameNo1-32 characters, or blank/null
data parameter (JSON object)passwordYes4-20 characters
data parameter (JSON object)emailAddressYesvalid email address
data parameter (JSON object)languageNovalid language code: en (English) es (Spanish) he (Hebrew) or blank/null for default language
data parameter (JSON object)typeYesvalid 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/AttributeTypeDescription
usernamein_useA supervisor with the specified username already exists
emailAddressin_useA 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

LocationNameRequiredDescription
URLidYesUser ID of the supervisor
Request BodydataYesJSON object containing attributes of supervisor user to update
data parameter (JSON object)usernameYes3-20 alphanumeric characters
data parameter (JSON object)firstNameYes1-32 characters
data parameter (JSON object)lastNameNo1-32 characters, or blank/null
data parameter (JSON object)passwordNo4-20 characters
data parameter (JSON object)emailAddressYesvalid email address
data parameter (JSON object)languageNovalid language code: en (English) es (Spanish) he (Hebrew) or blank/null for default language
data parameter (JSON object)typeYesvalid type code: full monitorOnly

Return Data

[None]

Special Errors

Parameter/AttributeTypeDescription
usernamein_useA supervisor with the specified username already exists
emailAddressin_useA 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

LocationNameRequiredDescription
URLidYesUser ID of the supervisor

Return Data

[None]

Undelete Supervisor

This endpoint is used to undelete a certain supervisor user.

PUT supervisor/[id]

Parameters/Attributes

LocationNameRequiredDescription
URLidYesUser ID of the supervisor
Query StringundeleteYes1

Return Data

[None]

Agent

Get Agent

This endpoint is used to get a certain agent user.

GET agent/[id]

Parameters/Attributes

LocationNameRequiredDescription
URLidYesUser 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

LocationNameRequiredDescription
Request BodydataYesJSON object containing attributes of agent user to create
data parameter (JSON object)numberYes1-5 digits, not starting with 0
data parameter (JSON object)firstNameYes1-32 characters
data parameter (JSON object)lastNameNo1-32 characters, or blank/null
data parameter (JSON object)passwordYes3-10 digits
data parameter (JSON object)emailAddressNovalid email address, or blank/null
data parameter (JSON object)languageNovalid 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/AttributeTypeDescription
numberin_useAn agent with the specified number already exists
emailAddressin_useAn 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

LocationNameRequiredDescription
URLidYesUser ID of the supervisor
Request BodydataYesJSON object containing attributes of agent user to update
data parameter (JSON object)numberYes1-5 digits, not starting with 0
data parameter (JSON object)firstNameYes1-32 characters
data parameter (JSON object)lastNameNo1-32 characters, or blank/null
data parameter (JSON object)passwordNo3-10 digits
data parameter (JSON object)emailAddressNovalid email address, or blank/null
data parameter (JSON object)languageNovalid language code: en - English es - Spanish he - Hebrew or blank/null for default language

Return Data

[None]

Special Errors

Parameter/AttributeTypeDescription
numberin_useAn agent with the specified number already exists
emailAddressin_useAn 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

LocationNameRequiredDescription
URLidYesUser ID of the agent

Return Data

[None]

Undelete Agent

This endpoint is used to undelete a certain agent user.

PUT agent/[id]

Parameters/Attributes

LocationNameRequiredDescription
URLidYesUser ID of the agent
Query StringundeleteYes1

Return Data

[None]

Call Queue

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

LocationNameRequiredDescription
URLextensionYesExtension 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

LocationNameRequiredDescription
Request BodydataYesJSON object containing attributes of call queue to create
data parameter (JSON object)extensionYesdigits only, not starting with 0
data parameter (JSON object)nameYes1-35 characters
data parameter (JSON object)typeYesvalid type code: 0 (inbound) 1 (outbound)
data parameter (JSON object)autoAnswerAcdNoboolean
data parameter (JSON object)sysResumeNointeger > 0 (seconds), or null to disable
data parameter (JSON object)wrapUpTimeNointeger > 0 (seconds), 0 for unlimited, or null to disable
data parameter (JSON object)wrapUpAllQueuesNoboolean
data parameter (JSON object)cidNamePrefixNostring, or blank/null
data parameter (JSON object)agentRestrictionsNovalid choice: 0 (Call as Dialed) 1 (No Follow-Me or Call Forward) 2 (Extensions Only)
data parameter (JSON object)ringStrategyNovalid choice: ringall leastrecent fewestcalls random rrmemory rrordered linear wrandom
data parameter (JSON object)weightNointeger 0-10
data parameter (JSON object)mohClassNovalid choice: inherit default none
data parameter (JSON object)ringingMohNoboolean
data parameter (JSON object)recordingFormatNo"wav", or blank/null to disableNote: FreePBX lists two other formats that are not supported by EQ and should not be used.
data parameter (JSON object)recordingModeNovalid choice: includeholdtime afteranswered
data parameter (JSON object)maxWaitTimeNointeger > 0, or null for unlimited
data parameter (JSON object)agentTimeoutNointeger > 0, or null for unlimited
data parameter (JSON object)agentRetryTimeNointeger >= 0, or null for no retry
data parameter (JSON object)maxCallersNointeger > 0, or null for unlimited
data parameter (JSON object)joinEmptyNovalid choice: yes no strict ultrastrict loose
data parameter (JSON object)leaveEmptyNovalid choice: yes no strict ultrastrict loose
data parameter (JSON object)announceFrequencyNointeger >= 0
data parameter (JSON object)announcePositionNovalid choice: yes no
data parameter (JSON object)announceHoldTimeNovalid 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/AttributeTypeDescription
extensionin_useA call queue with the specified extension already exists
namein_useA 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

LocationNameRequiredDescription
URLextensionYesExtension of the call queue
Request BodydataYesJSON object containing attributes of call queue to create
data parameter (JSON object)nameYes1-35 characters
data parameter (JSON object)typeYesvalid type code: 0 (inbound) 1 (outbound)
data parameter (JSON object)autoAnswerAcdNoboolean
data parameter (JSON object)sysResumeNointeger > 0 (seconds), or null to disable
data parameter (JSON object)wrapUpTimeNointeger > 0 (seconds), 0 for unlimited, or null to disable
data parameter (JSON object)wrapUpAllQueuesNoboolean
data parameter (JSON object)cidNamePrefixNostring, or blank/null
data parameter (JSON object)agentRestrictionsNovalid choice: 0 (Call as Dialed) 1 (No Follow-Me or Call Forward) 2 (Extensions Only)
data parameter (JSON object)ringStrategyNovalid choice: ringall leastrecent fewestcalls random rrmemory rrordered linear wrandom
data parameter (JSON object)weightNointeger 0-10
data parameter (JSON object)mohClassNovalid choice: inherit default none
data parameter (JSON object)ringingMohNoboolean
data parameter (JSON object)recordingFormatNo"wav", or blank/null to disableNote: FreePBX lists two other formats that are not supported by EQ and should not be used.
data parameter (JSON object)recordingModeNovalid choice: includeholdtime afteranswered
data parameter (JSON object)maxWaitTimeNointeger > 0, or null for unlimited
data parameter (JSON object)agentTimeoutNointeger > 0, or null for unlimited
data parameter (JSON object)agentRetryTimeNointeger >= 0, or null for no retry
data parameter (JSON object)maxCallersNointeger > 0, or null for unlimited
data parameter (JSON object)joinEmptyNovalid choice: yes no strict ultrastrict loose
data parameter (JSON object)leaveEmptyNovalid choice: yes no strict ultrastrict loose
data parameter (JSON object)announceFrequencyNointeger >= 0
data parameter (JSON object)announcePositionNovalid choice: yes no
data parameter (JSON object)announceHoldTimeNovalid choice: yes no once

Return Data

[None]

Special Errors

Parameter/AttributeTypeDescription
extensionin_useA call queue with the specified extension already exists
namein_useA 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

LocationNameRequiredDescription
URLextensionYesExtension 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

LocationNameRequiredDescription
URLidYesExtension of the call queue
Query StringundeleteYes1

Return Data

[None]

Undelete Call Queue

This endpoint is used to undelete a certain call queue.

PUT call-queue/[extension]

Parameters/Attributes

LocationNameRequiredDescription
URLidYesExtension of the call queue
Query StringundeleteYes1

Return Data

[None]

Pause Code

Get Pause Code

This endpoint is used to get a certain pause code.

GET pause-code/[id]

Parameters/Attributes

LocationNameRequiredDescription
URLidYesID 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

LocationNameRequiredDescription
Request BodydataYesJSON object containing attributes of pause code to create
data parameter (JSON object)nameYes1-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/AttributeTypeDescription
namein_useA 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

LocationNameRequiredDescription
URLidYesID of the pause code
Request BodydataYesJSON object containing attributes of pause code to update
data parameter (JSON object)nameYes1-16 characters

Return Data

[None]

Special Errors

Parameter/AttributeTypeDescription
namein_useAnother 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

LocationNameRequiredDescription
URLidYesID 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

LocationNameRequiredDescription
URLidYesID of the pause code
Query StringundeleteYes1

Return Data

[None]

Extension

Get Extension

This endpoint is used to get a certain user extension.

GET extension/[extension]

Parameters/Attributes

LocationNameRequiredDescription
URLextensionYesExtension

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

LocationNameRequiredDescription
Request BodydataYesJSON object containing attributes of extension to create
data parameter (JSON object)extensionYesdigits only, not starting with 0
data parameter (JSON object)nameYes1-50 characters
data parameter (JSON object)cidMasqueradeNodigits, or blank/null
data parameter (JSON object)outboundCidNodigits, or blank/null
data parameter (JSON object)emergencyCidNodigits, or blank/null
data parameter (JSON object)callWaitingNoboolean
data parameter (JSON object)recording.inboundExternalNovalid choice: dontcare always never
data parameter (JSON object)recording.inboundInternalNovalid choice: dontcare always never
data parameter (JSON object)recording.outboundExternalNovalid choice: dontcare always never
data parameter (JSON object)recording.outboundInternalNovalid choice: dontcare always never
data parameter (JSON object)recording.onDemandNoboolean
data parameter (JSON object)sip.secretNostring, or blank/null
data parameter (JSON object)sip.dtmfModeNovalid 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.contextNostring, or blank/null for default ("from-internal")
data parameter (JSON object)sip.natNovalid choice: yes (Yes) no (No - RFC3581) never (never - no RFC3581) route (route - NAT no rport)
data parameter (JSON object)voicemailNoJSON object containing voicemail config, or null to disable
data parameter (JSON object)voicemail.contextNostring, or blank/null for default ("default")
data parameter (JSON object)voicemail.passwordNodigits, or blank/null
data parameter (JSON object)voicemail.emailAddressNovalid email address, or blank/null
data parameter (JSON object)voicemail.pagerEmailAddressNovalid email address, or blank/null
data parameter (JSON object)voicemail.optionsNoJSON object containing voicemail options with option names as keys and option values as values, or null for defaults
data parameter (JSON object)voicemail.options.attachNovalid choice: yes no
data parameter (JSON object)voicemail.options.saycidNovalid choice: yes no
data parameter (JSON object)voicemail.options.envelopeNovalid choice: yes no
data parameter (JSON object)voicemail.options.deleteNovalid choice: yes no

Return Data

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

Example:

604

Special Errors

Parameter/AttributeTypeDescription
extensionin_useA extension with the specified extension already exists
namein_useA extension with the specified name already exists

Update Extension

This endpoint is used to update an existing user extension.

PUT extension/[extension]

Parameters/Attributes

LocationNameRequiredDescription
URLextensionYesExtension
Request BodydataYesJSON object containing attributes of extension to create
data parameter (JSON object)extensionYesdigits only, not starting with 0
data parameter (JSON object)nameYes1-50 characters
data parameter (JSON object)cidMasqueradeNodigits, or blank/null
data parameter (JSON object)outboundCidNodigits, or blank/null
data parameter (JSON object)emergencyCidNodigits, or blank/null
data parameter (JSON object)callWaitingNoboolean
data parameter (JSON object)recording.inboundExternalNovalid choice: dontcare always never
data parameter (JSON object)recording.inboundInternalNovalid choice: dontcare always never
data parameter (JSON object)recording.outboundExternalNovalid choice: dontcare always never
data parameter (JSON object)recording.outboundInternalNovalid choice: dontcare always never
data parameter (JSON object)recording.onDemandNoboolean
data parameter (JSON object)sip.secretNostring, or blank/null
data parameter (JSON object)sip.dtmfModeNovalid 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.contextNostring, or blank/null for default ("from-internal")
data parameter (JSON object)sip.natNovalid choice: yes (Yes) no (No - RFC3581) never (never - no RFC3581) route (route - NAT no rport)
data parameter (JSON object)voicemailNoJSON object containing voicemail config, or null to disable
data parameter (JSON object)voicemail.contextNostring, or blank/null for default
data parameter (JSON object)voicemail.passwordNodigits, or blank/null
data parameter (JSON object)voicemail.emailAddressNovalid email address, or blank/null
data parameter (JSON object)voicemail.pagerEmailAddressNovalid email address, or blank/null
data parameter (JSON object)voicemail.optionsNoJSON object containing voicemail options with option names as keys and option values as values, or null for defaults
data parameter (JSON object)voicemail.options.attachNovalid choice: yes no
data parameter (JSON object)voicemail.options.saycidNovalid choice: yes no
data parameter (JSON object)voicemail.options.envelopeNovalid choice: yes no
data parameter (JSON object)voicemail.options.deleteNovalid choice: yes no

Return Data

[None]

Special Errors

Parameter/AttributeTypeDescription
extensionin_useA extension with the specified extension already exists
namein_useA extension with the specified name already exists

Delete Extension

This endpoint is used to delete a certain user extension.

DELETE extension/[extension]

Parameters/Attributes

LocationNameRequiredDescription
URLextensionYesExtension

Return Data

[None]

Phone

Get Phone

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

GET phone

Parameters/Attributes

LocationNameRequiredDescription
Query StringextensionYesExtension

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 }

Alert

Create Alert

This endpoint is used to create a new alert.

POST alert

Parameters/Attributes

LocationNameRequiredDescription
Request BodydataYesJSON object containing attributes of alert to create
data parameter (JSON object)userNoUser ID of supervisor the alert is for, or null for system-wide alert (custom notification type only)
data parameter (JSON object)nameYes1-48 characters
data parameter (JSON object)typeYesvalid alert type code: callQueueCallsHigh callQueueWaitTimeHigh callQueueAgentsLow callQueueAgentsAvailableLow emailQueueEmailsHigh emailQueueAgentsLow emailQueueAgentsAvailableLow licenseExceeded processStopped diskUsageHigh
data parameter (JSON object)callQueueYes, if applicableExtension of call queue
data parameter (JSON object)emailQueueYes, if applicableID of email queue
data parameter (JSON object)thresholdYes, if applicableinteger
data parameter (JSON object)notificationTypeYesvalid notification type string: realtime email sms custom
data parameter (JSON object)colorYes, if applicablecolor to display alert as for realtime notification type only RGB color string in format #XXXXXX
data parameter (JSON object)intervalYes, if applicableminimum interval in minutes between alert notifications for email, SMS, and custom notification types only
data parameter (JSON object)daysOfWeekYesdays 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)fromTimeYesbeginning 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)toTimeYesend 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/AttributeTypeDescription
namein_useAn 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

LocationNameRequiredDescription
URLidYesID of the alert
Request BodydataYesJSON object containing attributes of alert to update
data parameter (JSON object)nameYes1-48 characters
data parameter (JSON object)typeYesvalid alert type code: callQueueCallsHigh callQueueWaitTimeHigh callQueueAgentsLow callQueueAgentsAvailableLow emailQueueEmailsHigh emailQueueAgentsLow emailQueueAgentsAvailableLow licenseExceeded processStopped diskUsageHigh
data parameter (JSON object)callQueueYes, if applicableExtension of call queue
data parameter (JSON object)emailQueueYes, if applicableID of email queue
data parameter (JSON object)thresholdYes, if applicableinteger
data parameter (JSON object)notificationTypeYesvalid notification type: realtime email sms custom
data parameter (JSON object)colorYes, if applicablecolor to display alert as for realtime notification type only RGB color string in format #XXXXXX
data parameter (JSON object)intervalYes, if applicableminimum interval in minutes between alert notifications for email, SMS, and custom notification types only
data parameter (JSON object)daysOfWeekYesdays 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)fromTimeYesbeginning 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)toTimeYesend 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/AttributeTypeDescription
namein_useAn 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

LocationNameRequiredDescription
URLidYesID of the alert

Return Data

[None]

Active Supervisor Sessions

Get Active Supervisor Sessions

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

GET active-supervisor-sessions

Parameters/Attributes

LocationNameRequiredDescription

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 } ]

Active Agent Sessions

Get Active Agent Sessions

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

GET active-agent-sessions

Parameters/Attributes

LocationNameRequiredDescription

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 } ]

Queued Calls

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

LocationNameRequiredDescription
Query StringqueueNoExtension 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

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

LocationNameRequiredDescription
Request BodychannelYesChannel of the queued call to steal
Request BodydestinationYesExtension or destination to which to send the call

Return Data

[None]

Parked Calls

Get Parked Calls

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

GET parked-calls

Parameters/Attributes

LocationNameRequiredDescription

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

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

LocationNameRequiredDescription
Request BodychannelYesChannel of the parked call to pick up
Request BodydestinationYesExtension or destination to which to send the call

Return Data

[None]

Active Calls

Get Active Calls

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

GET active-calls

Parameters/Attributes

LocationNameRequiredDescription
Query StringextensionYesExtension 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 } ]

Call Recordings

Get Call Recordings

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

GET call-recordings

Parameters/Attributes

LocationNameRequiredDescription
Query StringcallYes (unless call unique ID specified)ID of the call for which to retrieve recordings
Query Stringcall_unique_idNo (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

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

LocationNameRequiredDescription
Query StringqueueNoExtension of a call queue, or blank for all queues or if specifying agent
Query StringagentNoUser ID of an agent, or blank for all agents or if specifying queue
Query StringcombinedNo0 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)

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

LocationNameRequiredDescription
Request BodyactionYesValid action type: signIn signOut pause resume exitWrapUp
Request BodyoptionsYesJSON object containing options for action
options parameter (JSON object)agentYesUser ID of agent for which to execute action
options parameter (JSON object)queueNoExtension 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)queuesNoArray of extensions of queues for which to sign agent into Example: ["500", "501", "504"]
options parameter (JSON object)skillNoSkill 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)skillsNoArray 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 signInAlso has no effect if queues parameter is not used
options parameter (JSON object)pausedNoWhether to sign queues in as paused Has no effect for actions other than signIn
options parameter (JSON object)pauseCodeNoID 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/AttributeTypeDescription
actioninvalidAction type not valid
agentblankAgent ID not specified
agentnonexistentAgent does not exist (or is deleted)
agentnot_signed_inAgent not signed in (to system, not to queue) / has no active session
queuealready_signed_inAgent already signed into queue (applies only to signIn action with certain queue specified)
queuenot_signed_inAgent not signed into queue (applies only to signOut, pause, resume, and exitWrapUp actions with certain queue specified)
pauseCodenonexistentPause code does not exist (applies only to pause action with pause code specified)

Get Call Queue Statistics

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

LocationNameRequiredDescription
Query StringqueueNoExtension 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)

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

LocationNameRequiredDescription
Request BodyextensionYesExtension
Request BodyactionYesValid action type: dial blindTransfer park hangUp
Request BodychannelNoExtension'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 BodydestinationYes, if applicablePhone number or extension For dial and blindTransfer types only

Return Data

[None]

Special Errors

Parameter/AttributeTypeDescription
extensionnonexistentExtension does not exist

Execute Call Recording Action (Start, Stop, Cancel)

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

LocationNameRequiredDescription
Request BodyextensionYesExtension
Request BodyactionYesValid action type: start stop cancel

Return Data

[None]

Special Errors

Parameter/AttributeTypeDescription
extensionnonexistentExtension does not exist

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

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

LocationNameRequiredDescription
Request BodyactionYesValid action type: spy bargeIn whisper
Request BodytargetExtensionYesExtension to monitor
Request BodymonitorExtensionYesExtension from which to monitor

Return Data

[None]

Special Errors

Parameter/AttributeTypeDescription
targetExtensionnonexistentTarget extension does not exist
monitorExtensionnonexistentMonitor extension does not exist

Execute Phone Command (Press a Key)

Execute Phone Command (Press a Key)

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

POST phone-command

Parameters/Attributes

LocationNameRequiredDescription
Request BodyphoneYes (unless extension specified)JSON object containing attributes for phone Must be a valid phone object, as returned by the phone endpoint
Request BodyextensionNoExtension of phone Can be specified in place of a phone object
Request BodykeyYesValid 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/AttributeTypeDescription
extensionnonexistentExtension does not exist
phonenonexistentPhone does not exist (extension not registered or phone type undetectable)
keyinvalidKey is not valid for phone

Get Active Conferences

Get Active Conferences

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

GET active-conferences

Parameters/Attributes

LocationNameRequiredDescription

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

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

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

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 } } }