Call Identifiers in EnreachVoice integration interfaces
There are multiple call identifiers used in client-side and server-side integration interfaces. Unfortunately, the naming of these identifiers is not very coherent, making it possible to misinterpret callids. This document tries to shed light on the different call IDs.
Client Side
In clientside methods callId used for call control, is always an identifier of SIP-Session, which is not used at all in server-side APIs. There is an additional serverSideCallId which is the same as CallId in serverside methods.
If the same call is allocated to user multiple times, each allocation has a unique callId, but the same serverSideCallId.
JavaScript API | Description |
---|---|
callId | SIP session Id. This is not visible in any backend API, only on client side. Used for call control via Javascript API methods. |
serverSideCallId | The same as CallID in all backend APIs. |
Server side
There are also several IDs in serverside APIs:
Server Side API | Description |
---|---|
CallId | A single unique identifier for the whole call. The same as serverSideCallId in client API |
Id of call event | A separate identifier for a call event. Call event is always related to a CallId and one or more entities (user, queue, etc). Call event identifiers are generated in post-processing.
|
CallLegId | Id for call allocation leg from in call-control perspective |
REST API endpoints
There are multiple endpoints for retrieving call information.
All data is generated in post-processing → there is some delay (~10 sec) before data is available in REST API.
User-related call events (/calls
endpoint)
https://doc.enreachvoice.com/beneapi/#user-call-information
Returns call events related to a user.
There are two different types of user calls: Direct calls and Service calls (aka. AgentCalls).
Permission to events is granted via User
Inbound Service calls (/servicecall
endpoint)
https://doc.enreachvoice.com/beneapi/#service-call-information
Service calls are incoming calls made to service pools. Detailed information about call progress in the system is available via ServiceCallDetail events, while ServiceCall provides high-level information about the overall call.
Permission to events is granted via Queue
Outbound Service calls (/outbound-servicecall
endpoint)
https://doc.enreachvoice.com/beneapi/#outbound-service-call-information
Outbound queue calls are initiated by the user, but are partially taken over by the service queue on behalf of which the call is made. Usually, the agent chooses to call on behalf of a queue, for example, to contact customers without exposing their own identity. The process can be automatic as well depending on configuration.
Outbound queue calls are recorded based on queue configuration, and the resulting call information as well as the recording belong primarily to the queue.
Permission to events is granted via Queue
Outbound callback calls (/outbound-callbackcall
endpoint)
https://doc.enreachvoice.com/beneapi/#outbound-callback-call
Outbound callback calls are made to handle a pending callback request. The agent indicates they are calling to handle a specific request, and the call is taken over by the correspoding callback list and its configuration.
Outbound queue calls are recorded based on queue configuration, and the resulting call information as well as the recording belong primarily to the queue.
Permission to events is granted via CallBackList
Example scenario
In the example scenario below user A is using webphone to calls a service queue “Support”. The service call is allocated first to user B, which declines. Then it is allocated to user C, which answers the call.
The diagram below shows how different call Identifiers are generated
Client call events
WebPhone Javascript API use a unique clientside callId for each user. This is used for local call control via JavaScript API (answer()
, reject()
etc. methods)
The serverSideCallId is the same xyz
for each user.
User-specific call events in REST API
There are three user-specific call events for the same CallId xyz
returned from /calls/
endpoint
One for User A: outbound Direct call, result: Handled
Requires permission to see DirectCalls of user A
One for User B: inbound ServiceCall, result: Allocated
Requires permission to see AgentCalls of user B
One for User C: inbound ServiceCall, result: Handled
Requires permission to see AgentCalls of user C
Servicecall events in REST API
There is one ‘header’ record for a servicecall returned from /servicecall
endpoint
There are multiple ‘detail’ events for a servicecall returned from /servicecall/xyz/details
endpoint.
Both require permission to see servicecalls of queue ‘Support’
© Enreach, Mannerheimintie 117, 00280 Helsinki, Finland
+358 40 450 3000, www.enreach.fi