Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

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)

Info

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

...

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.

...

Quick availabilities does not differ from any other clientside created availabilities

Work schedule

Automatically sets user availability

...

Info

If user sets manual continuous OffWork availability, it will be removed and availability set to Available on the next start time of works schedule

User availability in REST API

User availability endpoints in 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 get obtained using availability endpoints in REST API,

    • terminal

    availabilites
    • availabilities have PresenceTypeId > 0

Terminal availability in REST API

Terminal availability use same endpoints as User availability endpoints in REST API

...

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

WrapUpEnd

DateTime?

If 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

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)

...