EnreachVoice User Availability, Presence and UserStatus

User presence concept

The user presence concept in the EnreachVoice platform consists of three main components:

  1. User availability

    • The general availability state of the user, usually answers “Is the user working at the moment or not?

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

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

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

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