EnreachVoice User Availability, Presence and UserStatus
User presence concept
The user presence concept in the EnreachVoice platform consists of three main components:
User availability
The general availability state of the user, usually answers “Is the user working at the moment or not?”
Terminal availability (i.e. call state)
If the user has an active call on one of the terminals
a 'terminal' refers to an endpoint device that is used to initiate or terminate a telecommunication session: Mobile phone, IP softphone (Voice for Browser, Voice for Windows or MS Teams client) or IP hard phone.
UserStatus
Contains details for advanced call control (contact center agent perspective)
Good to know: There is no Offline or Logged out/in concept at all!
User availability
What it is for?
Tells the availability of the user:
The switchboard operator can see should calls be forwarded to the user or not
Control incoming direct calls:
During OffWork, mobile calls ring only on mobile, otherwise ring all terminals
Control caller number of outgoing direct calls from mobile:
During OffWork, show mobile number, otherwise show work number
Control incoming servicecalls:
No service calls when the user is OffWork or DND
What it is NOT?
Does NOT change when the user is having a call
Does NOT change when the user logs in/out to any client
Availability states
From a call control perspective, there are 3 different states:
Available:
All incoming direct calls routed to the user
Service calls allocated to the user
Same behaviour also for “Busy”, “Away” and “BRB” states
DND
Incoming direct calls to work number blocked
Incoming direct calls to mobile number depends on usage mode
Service calls not allocated to the user
OffWork
Incoming direct calls to work number blocked
Incoming direct calls to mobile number routed directly to mobile
Service calls not allocated to the user
Other important behaviours to know
If the user does not have an active availability, the user is considered Available
Availabilities can have end time or they can be continuous.
Can have a transfer number set. If set, incoming direct calls to the work number of the user are transferred to the number.
Availability can have additional free text note, which is shown in user interfaces.
Quick availabilities
Quick availabilities are pre-defined "one-click" availability activations. They are meant to give users a quick way to activate their most used availabilities, like a quick dial button to make calls.
Each user is provisioned with one Quick Availability set. Quick availability sets are defined in Voice Portal. A set contains one or more availabilities, each having rule for
Availability state
Duration
Transfer number
Note
Quick availabilities does not differ from any other clientside created availabilities
Work schedule
Automatically sets user availability
from OffWork to Available on start time
from Available to OffWork on end time
Done only if user does not have an active availability with defined endtime!
User availability in REST API
User availability endpoints in REST API
Current and upcoming user availabilities can be obtained from REST API.
Current and upcoming availabilities can be created via REST API
User availability has PresenceTypeId = 0
User availability in Webhooks
User availability change events can be subscribed via notification webhooks.
When the active availability state changes, the UserAvailability event is created.
User availability in Websocket API (RTE)
User availability change events can be subscribed via websocket API (RTE)
When the active availability state changes, the UserAvailability event is created.
Terminal availability
Is one or more terminals of the user having an active call or not?
The same as ‘talking’ in UserStatus
Terminal availabilities can be obtained using availability endpoints in REST API,
terminal availabilities have PresenceTypeId > 0
Terminal availability in REST API
Terminal availability use same endpoints as User availability endpoints in REST API
Terminal availabilities are created internally by the call control plane.
If no terminal availabilities (PresenceTypeId > 0) are returned , on ongoing calls.
Terminal availability in Webhooks
Terminal availability events cannot be subscribed via notification webhooks
Terminal availability in Websocket API (RTE)
Terminal availability events cannot be subscribed via websocket API.
UserStatus
Represents additional status from the contact center agent's perspective. Contains all information about the capability of the user to handle inbound service calls and autoallocated callbacks.
UserStatus Item | Type | Description |
---|---|---|
CanBeAllocatedTo | bool | If it is possible to allocate a servicecalls to the user. Aggregated composite value from several status items. |
FetchMode | bool | User is in FetchMode, no automatic allocation from ServiceQueues. |
Schedule | bool | User availability is not OffWork |
Available | bool | User availability is not DND |
ServiceTerminals | int | Number of active terminals |
Serving | bool | User is serving in inbound servicecall queues |
ServingCallback | bool | User is serving in autoallocation callback lists |
Talking | bool | If the user is having a call right now. Incoming and outgoing calls are considered as active calls even before call is connected to user |
TalkingStatusChanged | DateTime? | Last time the “Talking” status changed. |
WrapUpEnd | DateTime? | If the wrap-up time is active, then the end time, otherwise null |
ActiveQueueId | Guid? | If user is serving a servicecall, queueId of the queue the call was allocated from. |
ParkedCalls | int | Number of parked calls |
WrapUpStart | DateTime? | If wrap-up time is active, then the start time, otherwise null |
UserStatus in REST API
UserStatus endpoint in REST API
UserStatus is read only, and can be obtained from REST API.
Some individual items can be manipulated via REST API
User availability affects Schedule
and Available
Terminating WrapUp state is possible via /users/{userid}/features/wrapup/terminate/
Following User settings affects Serving
, ServingCallback
and FetchMode
UserStatus Item | UserSettingsKeyword | Values |
---|---|---|
Serving | Queues_Serving | 1 = serving inbound queue calls 0 = not serving inbound queue calls |
ServingCallback | CallbackLists_Serving | 1 = serving autoallocation callbacks 0 = not serving autoallocation callbacks |
FetchMode | Queues_AllocationMode | “default” = Default allocation mode “fetch” = Fetch allocation mode |
User availability in Webhooks
UserStatus change events can be subscribed via notification webhooks.
When the user status changes, the UserStatus event is created.
User availability in Websocket API (RTE)
UserStatus change events can be subscribed via websocket API (RTE)
When the user status changes, the UserStatus event is created.
© Enreach, Mannerheimintie 117, 00280 Helsinki, Finland
+358 40 450 3000, www.enreach.fi