Reservation Point System

Requirements

Or

  • SharePoint Template v 6.2 or higher

  • UCC v 6.6 or higher

 

Description

The ReservationPointSystem assigns points to Dialogues based on their Modality.

  • ​An Agent has a total Capacity of 100 Points

  • An Agent will not be hunted for a Dialogue if handling this Dialogue would cause the Agent to exceed his Capacity.

 

Examples

Either one Chat or one Call

  • Assign 100 points to both the Chat and the Audio Modality

When the Agent handles a single Dialogue (either a Chat or a Call), he will be at maximum Capacity, so he is no longer available for additional Dialogues.

 

Either one call and a chat, or 5 chats

  • Assign 80 points to Audio

  • Assign 20 points to Chat

The Agent can now take a maximum of 5 chats. As soon as he has accepted more than one Chat, he will no longer be able for Audio.

Understanding the Feature

When I configure the ReservationPointSystem across multiple UCCs, then how do these configurations interact?

All Dialogues that Agents are handling are tracked globally (= across all UCCs). But the Points required for handling a Dialogue is determined locally (= by the settings in the UCC in which the Dialogue takes place). This means that only the configuration of the UCC in which a Dialogue takes place determines if an Agent is able to handle the Dialogue.

Let's look at an example.

Consider two UCCs, ucc_one_chat_one_call and ucc_one_call_or_five_chats

We will configure ucc_one_chat_one_call to allow an Agent to handle either one call or one chat:

  • Assign 100 points to both the Chat and the Audio Modality

We will configure ucc_one_call_or_five_chats to allow an Agent to handle either one call and a chat, or five chats:

  • Assign 80 points to Audio
  • Assign 20 points to Chat

We configure sipThe Session Initiation Protocol (SIP) is a protocol to make multimedia communication (audio, video and other data communication) possible and it is also used for Voice over IP (VoIP). SIP has similarities with other Internet protocols such as HTTP and SMTP.:agent@workstreampeople.com to be an Agent in both ucc_one_chat_one_call and ucc_one_call_or_five_chats, and we assume he has the appropriate skills assigned.

Now consider the following scenario:

  • A Chat is made to ucc_one_chat_one_call

    • ​sip:agent@workstreampeople.com​ is hunted for the Chat (because he would use 100/100 points in ucc_one_chat_one_call)

    • The Agent accepts the Chat

    • The Agent has used 100/100 points in ucc_one_chat_one_call and is not available for any Chats or Calls in ucc_one_chat_one_call

    • The Agent has used 20/100 points in ucc_one_call_or_five_chats and is available for a Call, or four more Chats.

  • Another Chat is made to ucc_one_chat_one_call

    • ​sip:agent@workstreampeople.com​ is not hunted for the Chat (because he would use 200/100 points in ucc_one_chat_one_call)

  • A Call is made to ucc_one_chat_one_call

    • sip:agent@workstreampeople.com​ is not hunted for the Call (because he would use 200/100 points in ucc_one_chat_one_call)

  • A Call is made to ucc_one_call_or_five_chats

    • ​sip:agent@workstreampeople.com​ is hunted for the call (because he would use 100/100 ucc_one_call_or_five_chats​)

    • The Agent is handling a Chat and a Call

    • The Agent has used 200/100 points in ucc_one_chat_one_call and is not available for any Chats or Calls

      • ​The Agent can temporarily exceed his number of points.

      • This is, for example, also the case when an Agent tries to Take a call from the queue: no matter how many points are allocated, the UCC will still hunt the Agent.

    • The Agent has used 100/100 points in ucc_one_call_or_five_chats and is not available for any Chats or Calls

  • sip:agent@workstreampeople.com​ closes the Chat

    • The Agent is handling a Call

    • The Agent has used 100/100 points in ucc_one_chat_one_call and is not available for any Chats or Calls

    • The Agent has used 80/100 points in ucc_one_call_or_five_chats and is not available for any Calls, but can handle one more Chat

  • sip:agent@workstreampeople.com disconnects the Call

    • The Agent is not handling any Dialogues

    • The Agent has used 0/100 points in both UCCs

 

​​​​​​Aside: How is it possible that an Agent is allocated 200/100 points in one UCC? Shouldn't the number of points never exceed 100 no matter the UCC?

In the example above limiting the number of points to 100 would cause some very hard to debug behavior. sip:agent@workstreampeople.com would be handling only a Call, but would never be hunted for a Chat in ucc_one_call_or_five_chats, despite the configuration in ucc_one_call_or_five_chats stating otherwise, and still having 20 points available within that UCC. By allowing the number of points to exceed 100 we prevent that the configuration of one UCC can influence the hunting behavior of another UCC.

 

​What happens when I combine the ReservationPointSystem with the Legacy-system?

​Since the configuration is local to the UCC, everything will work seamlessly: DIalogues that happen in your ReservationPointSystem UCC will be handled according to the settings of that UCC. Dialogues that happen in your Legacy-system UCC will also be handled according to the settings of that UCC.

 

Configuration

 

​​Logging

​​H​ow to check which ReservationSystem is active?

2019-01-29 17:07:37,001 [9] ucc INFO - Using ReservationSystemType "PointSystem"​

This is logged whenever the ReservationSystem changes.

 

​How to check why the R​eservations are failing?

If you enable verbose, you will receive additional logging about the reservations, for example:

2019-01-29 17:09:29,845 [6] ucc VERBOSE - PointSystemReservationStrategy::AllowReservation, not allowing reservation { SipUri = sip:user@domain.com, Modality = Chat, CurrentPoints = 100, MaxPointsForAgent = 100, RequiredPointsForSession = 100 }

Here you see that this Agent currently has 100 points reserved (CurrentPoints), and an additional 100 points are needed for the session (RequiredPointsForSession), so the reservation fails

How to check how many Points are needed for a certain session?

2019-01-29 17:08:27,590 [11] ucc DEBUG - PointSystemReservationStrategy::AllowReservation, allowing reservation { SipUri = sip:user@domain.com, Modality = Chat, CurrentPoints = 0, MaxPointsForAgent = 100, RequiredPointsForSession = 100 }

Whenever a reservation is successful, the above will be logged under debug. In the above example you see that the Modality = Chat, and the RequiredPointsForSession = 100, so that's how many points are needed for a Chat at that point in time.​