" /> Capacity rules not working correctly - Genesys CTI User Forum

Author Topic: Capacity rules not working correctly  (Read 17348 times)

Offline cavagnaro

  • Administrator
  • Hero Member
  • *****
  • Posts: 7641
  • Karma: 56330
Re: Capacity rules not working correctly
« Reply #15 on: July 31, 2012, 08:14:53 PM »
Advertisement
Interesting:
[quote]
2012-07-30 21:45:45> Init: Agent 'TTrain1' - Skill 'Train_Out_Toyota_Service' Level 1 added
2012-07-30 21:45:45> Init: Agent 'TTrain1' satisfied skill expression 'Skill("Train_Out_Toyota_Service")>=0' on Group TRAIN_INCH_SVC_TOYOTA_VAG
2012-07-30 21:45:45> Init: Adding Agent 'TTrain1'('Resources') to Group 'TRAIN_INCH_SVC_TOYOTA_VAG'('Resources')
2012-07-30 21:45:45> Client: Sending message to OCS(1468)
2012-07-30 21:45:45> Client: Message 'CurrentTargetState_TargetAdded'
'LONG_VALUE' 0
'TM_LENGTH' 0
'TM_SERVER' 1343681145
'USER_REQ_ID' 0
'REQ_ID' 0
21:45:45.463 Trc 10049 Agent 'TTrain1' has been added explicitly to virtual group 'TRAIN_INCH_SVC_TOYOTA_VAG'
21:45:45.463 Trc 04541 Message OpenStat received from 1468 ( 'OCS')
2012-07-30 21:45:45> Client: Message from OCS(1468) received
2012-07-30 21:45:45> Client: Message 'OpenStat'
'OBJECT' 'Place' (1)
'OBJECT_ID' 'Place_8013'
'TENANT_ID' 'Resources'
'CATEGORY' 'CurrentState' (10)
'SUBJECT' 'DNAction' (0)
'TM_LENGTH' 0
'NOTIFICATION_MODE' 'ChangesBasedNotification' (0)
'INSENS_PERCENTAGE' 0
'TM_NOTIFICATION_FREQ' 0
'TM_LEFT_RANGE_LIMIT' 0
'TM_RIGHT_RANGE_LIMIT' 0
'REQ_ID' 14
'USER_REQ_ID' 263
'TIME_PROFILE' 'Default'
'MainMask' all actions clear except for
'LoggedIn' (2)
'RelMask' all actions clear except for
'NotMonitored' (0)
'Monitored' (1)
'LoggedIn' (2)
'OnHook' (3)
'WaitForNextCall' (4)
'OffHook' (5)
'CallDialing' (6)
'CallRinging' (7)
'NotReadyForNextCall' (8)
'AfterCallWork' (9)
'OfflineWorkType2' (10)
'BreakType1' (11)
'BreakType2' (12)
'CallOnHold' (13)
'NotUsed' (14)
'NotUsed' (15)
'ASM_Engaged' (16)
'ASM_Outbound' (17)
'CallUnknown' (18)
'CallConsult' (19)
'CallInternal' (20)
'CallOutbound' (21)
'CallInbound' (22)
'LoggedOut' (23)
2012-07-30 21:45:45> Client: Sending message to OCS(1468)
2012-07-30 21:45:45> Client: Message 'StatOpened' [stats:0x30216a0]
'LONG_VALUE' 0
'TM_LENGTH' 0
'TM_SERVER' 1343681145
'USER_REQ_ID' 263
'REQ_ID' 14
21:45:45.463 Trc 04541 Message PeekStat received from 1468 ( 'OCS')
2012-07-30 21:45:45> Client: Message from OCS(1468) received
2012-07-30 21:45:45> Client: Message 'PeekStat'
'REQ_ID' 15
'ASSOC_REQ_ID' 14
2012-07-30 21:45:45> Client: Sending message to OCS(1468)
2012-07-30 21:45:45> Client: Message 'Info' [stats:0x30216a0]
'LONG_VALUE' 1
'TM_LENGTH' 0
'TM_SERVER' 1343681145
'USER_REQ_ID' 263
'REQ_ID' 14
[/quote]
you are using Virtual Groups and not static groups...
And OCS is asking for the Place and not the agent...so the Place is obviously free therefore the dial proceeds...

Try changing on URS and try this setting:

[quote]
use_agentid
Location in Configuration Layer by precedence: Stat Server, URS
Default value: false
Valid values: true, false
Value changes: take effect immediately
When set to true, interactions will be routed to agents based on their Employee IDs in the Configuration Database. If set to false, interactions will be routed based on agent DNs. The value of this option depends on the requirements of the T-Server for the specific switch.
[/quote]

Offline Adam_W

  • Full Member
  • ***
  • Posts: 171
  • Karma: 0
Re: Capacity rules not working correctly
« Reply #16 on: July 31, 2012, 09:48:27 PM »
Hmm, changing that option prevented any calls being routed.  I get a DN Busy error after the RequestRouteCall:

[code]
22:45:11.066_T_E_ [14:0c] EventError is received for tserver SIPTS_81[SIP-01] - DN is busy
22:45:11.066_A_E_010d02111e479014 [14:32] <-----------ERROR
22:45:11.066 Std 21003 interaction 010d02111e479014 routing error 0231 DN is busy
22:45:11.066_M_I_010d02111e479014 [17:11] VQ 0000000002692520 first available call: 010d02111e479014, reason=strategy
    _T_W_010d02111e479014 [0E:0f] emergency: reroute call due to this error
    _I_I_010d02111e479014 [01:0f] binding with Target 0000000000000000 (VQ 0000000000000000)
22:45:11.066_M_I_010d02111e479014 [10:2f] RStatCallsInQueue update: object <8013>(1558), type CfgDN value 0+0+0, reason <not a target>
22:45:11.066_M_I_010d02111e479014 [10:2f] RStatCallsInQueue update: object <TTrain1>(344), type CfgPerson value 0+0+0, reason <not a target>
22:45:11.066_M_I_010d02111e479014 [10:2f] RStatCallsInQueue update: object <Place_8013>(263), type CfgPlace value 0+0+0, reason <not a target>
    _I_I_010d02111e479014 [01:10] binding with Target 0000000000000000 (VQ 0000000000000000)
    _I_I_010d02111e479014 [07:0a] HERE IS WAIT (2 sec)
22:45:11.066_B_I_010d02111e479014 [07:0a] delay treatments for 0 msec
22:45:11.066_M_I_010d02111e479014 [10:1f] pulse for one call
    _T_I_010d02111e479014 [0E:19] check call routing states: state=4 delivery=0 treatment=0 held=(0 0) reserving=0 ivr=0 - true
22:45:11.066_M_I_010d02111e479014 [17:0e] VQ 0000000002692520 (virtual queue "TRAIN_DEFERRED_WORK_LEXUS_VQ", id=29), (1 Targets): SELECT MAX by statistic <StatAgentLoading>(random  )
    _M_I_010d02111e479014 [17:0b] VQ 0000000002692520 Target "?:Train_Out_Toyota_Service = 1"(000000000200ed50) #1, (2-1 Components): SELECT MAX by statistic <StatAgentLoading>(random )
    _M_I_010d02111e479014 [10:0c] agent TTrain1, place Place_8013, switch  dn  is blocked with call 1000000001 (3 sec from 1343771110)
    _M_I_010d02111e479014 [17:0b] VQ 0000000002692520 Target "?:Train_Out_Toyota_Service = 1"(000000000200ed50) Component #1 TTrain1: not valid
    _M_I_010d02111e479014 [17:0b] VQ 0000000002692520 Target "?:Train_Out_Toyota_Service = 1"(000000000200ed50) Component #2 TTrain2: logged out
    _M_I_010d02111e479014 [17:0b] VQ 0000000002692520 Target "?:Train_Out_Toyota_Service = 1"(000000000200ed50): Component for routing was NOT SELECTED (1 0 1 0)
    _M_I_010d02111e479014 [17:0e] VQ 0000000002692520 Target "?:Train_Out_Toyota_Service = 1"(000000000200ed50): not ready passed
    _M_I_010d02111e479014 [17:0e] VQ 0000000002692520 (virtual queue "TRAIN_DEFERRED_WORK_LEXUS_VQ" id=29): Target for routing was NOT SELECTED (0 0 0 1 0)
22:45:11.066_B_I_010d02111e479014 [07:64] start chain of treatments
received from 65200(SIPTS_81)i407svap02:3000(fd=) message EventAbandoned
[/code]


This is Genesys' advice on the issue:

[quote]
OCS takes into the account the voice Extension DN status only. Here are complete details:

OCS.20120730_213854_404.log

StatServer reports the Place status:
21:45:45.463 STAT_EVENT SEventInfo was received: RequestID: 14, UserRequestID: 263
AgentID: TTrain1
PlaceID: Place_8013
Status: CallInbound [22]
  nDNs: 2
LoginID: 9017
    DN: 8013, RealDN: 8013, Extension, WaitForNextCall, nActions 1:
      tmStart: 1343679302, Action: LoggedIn [2]
        pData: ConnID: 0000000000000000, DNIS: null, ANI: null, pUserData: 00000000.
    DN: email, RealDN: email, Unknown, CallInbound, nActions 1:
      tmStart: 1343679296, Action: LoggedIn [2]
        pData: ConnID: 0000000000000000, DNIS: null, ANI: null, pUserData: 02f9d7f0.

The  Place_8013 has two medias:
voice DN 8013 in WaitForNextCall status
email DN in CallInbound status

However OCS by design takes into the account statuses for DNs of type Position, Extension and Voice Treatment Port. The Place or email media status is not used by OCS.

As the DN 8013 is in WaitForNextCall status, the predictive call is initiated by OCS.

The blending of voice DNs used by outbound campaign and multimedia medias (like chat, email) has not been tested according to Engineering.

We suggest provisioning separate places for agents that
handle outbound voice calls and for agents that handle inbound emails.
[/quote]


So apparently blending of outbound and multimedia interactions is not possible.  Inbound and outbound voice is fine, as is inbound voice and email, but not outbound voice and email.

Fairly major oversight for a solution that markets itself based on its universal routing and blending capabilities!

Unless there's a way of having emails route to the same DN (8013 in this case) as the voice, or to some other shared DN, it doesn't seem like it will work.

Offline cavagnaro

  • Administrator
  • Hero Member
  • *****
  • Posts: 7641
  • Karma: 56330
Re: Capacity rules not working correctly
« Reply #17 on: July 31, 2012, 10:00:54 PM »
Well that sucks and having 2 Places is not quite possible, is it?
I'd put it as a eSR and a FR urgently! Makes no sense that they never tested such thing...

Offline Adam_W

  • Full Member
  • ***
  • Posts: 171
  • Karma: 0
Re: Capacity rules not working correctly
« Reply #18 on: July 31, 2012, 10:07:36 PM »
Yep, crazy.  I'm putting together an FR as we speak.

I guess my only workaround option in the mean time is to relax the capacity rules to allow email and voice simultaneously, but this will be confusing for agents who are new to handling email via Genesys.

I'm also looking to the "Assured Connection" options in the latest OCS version.  Seems like an extra way to guarantee successful connection of outbound calls to an agent before dialling the customer.  May slow down the campaign a little though.

Offline cavagnaro

  • Administrator
  • Hero Member
  • *****
  • Posts: 7641
  • Karma: 56330
Re: Capacity rules not working correctly
« Reply #19 on: August 01, 2012, 02:52:26 AM »
Maybe René or Fra can suggest some other option to try...will see

Offline Kubig

  • Hero Member
  • *****
  • Posts: 2755
  • Karma: 44
Re: Capacity rules not working correctly
« Reply #20 on: August 01, 2012, 08:20:51 AM »
I fear that this behavior is by design...:-( I tried many options (on URS,OCS,etc),but no suggest

Offline René

  • Administrator
  • Hero Member
  • *****
  • Posts: 1832
  • Karma: 62
Re: Capacity rules not working correctly
« Reply #21 on: August 01, 2012, 10:26:59 AM »
Unfortunately, I don't see any possible workaround here as root cause is that OCS doesn't support agent capacity rules. It simply monitors status of agent's extension and dials call when extension becomes ready regardless other media channel.

R.

Offline Kubig

  • Hero Member
  • *****
  • Posts: 2755
  • Karma: 44
Re: Capacity rules not working correctly
« Reply #22 on: August 01, 2012, 11:21:32 AM »
Workarounds are:
- set the agent aplication to switch automatically place status to the NotReady if agent has an email(set NotReady status on all media channels)
- use different places for email handling and for outbound calls handling

But,officially there is no way to blend outbound voice and multimedia. Like the docs say:

[i]Progressive Dialing Mode
The Progressive dialing mode dials calls from a calling list when an agent is actually available. Progressive mode is recommended for low-volume, high-value campaigns. The number of calls that are dialed depends on the number of Ready agents. The next dialing attempt is triggered by either of the following factors:
•[b] The AGENT_VOICE_MEDIA_STATUS - WaitForNextCall Stat Event message is received from Stat Server[/b]
• A non-positive call-progress result is received from the dialer
[/i]

You can create and open FR and hope that Genesys will be added this function. I hope so.
« Last Edit: August 01, 2012, 12:12:04 PM by Kubig »

Offline Adam_W

  • Full Member
  • ***
  • Posts: 171
  • Karma: 0
Re: Capacity rules not working correctly
« Reply #23 on: August 01, 2012, 01:53:19 PM »
Thanks for your input everyone.

Kubig you read my mind, I created a special Not Ready code for email and got agents to put themselves in it when they receive an email.

Having trouble automating this via the routing strategy though.  Normally after targeting the agent I do the following in URS:

SendRequest[RequestAgentNotReady, Cat['thisdn:', StrReplace[UData['RTargetPlaceSelected'],'Place_',''],'|16:4|17.ReasonCode:Email']]

The request is being submitted to Interaction Server though, which rejects it.  Any idea how to specify which TServer the request goes to?

Offline Kubig

  • Hero Member
  • *****
  • Posts: 2755
  • Karma: 44
Re: Capacity rules not working correctly
« Reply #24 on: August 01, 2012, 02:15:33 PM »
Use "Set Agent Media State" object in strategy builder(IRD).Via this object you can set status of each media on place or agent.

Offline Adam_W

  • Full Member
  • ***
  • Posts: 171
  • Karma: 0
Re: Capacity rules not working correctly
« Reply #25 on: August 01, 2012, 03:29:55 PM »
Sounds like a good solution but doesn't work if I choose "voice" as the media type.  Works with email but it's obviously the voice channel I need to make not ready to prevent calls being routed.  Error in URS log:

[code]
16:26:00.562_T_I_13ae02111e4c304d [14:1e] send to tserver InteractionServer[Switch] TRequestPrivateService on dn asl_Process ABC: server , type 111, service ResourceManagement, method SetAgentMediaState
request to 65210(--) message RequestPrivateService
AttributeReferenceID 73399
AttributeExtensions [260] 00 03 00 00..
'SWITCH' 'Switch'
'CUSTOMER_ID' 'Resources'
'Envelope3rdServer'(list) 'Version' '1.0'
                          'AppType' 111
                          'Service' 'ResourceManagement'
                          'Method' 'SetAgentMediaState'
                          'Parameters'(list) 'Tenant' '101'
                                            'Place' 'Place_8013'
                                            'Agent' 'TTrain1'
                                            'MediaType' 'voice'
                                            'State' '0'
AttributeConnID 13ae02111e4c304d
AttributeThisDN 'asl_Process ABC'
AttributePrivateMsgID 3
..sent to i001svAP4513:6130(fd=572)
16:26:00.562_I_I_13ae02111e4c304d [09:04] <<<<<<<<<<<<suspend interpretator(WAIT_EVENT_N), func:RequestServiceEx timers:00010
received from 65210(InteractionServer)i001svAP4513:6130(fd=) message EventPrivateInfo
AttributeExtensions [285] 00 01 03 00..
'Envelope3rdServer'(list) 'Version' '1.0'
                          'AppType' 111
                          'Service' 'ResourceManagement'
                          'Method' 'SetAgentMediaState'
                          'Parameters'(list) 'Tenant' '101'
                                            'Place' 'Place_8013'
                                            'Agent' 'TTrain1'
                                            'MediaType' 'voice'
                                            'State' '0'
                                            'FaultCode' '569'
                                            'FaultString' 'Not logged in with specified media'
AttributeConnID 13ae02111e4c304d
AttributeReferenceID 73399
AttributePrivateMsgID 5
[/code]

The agent is definitely logged on to the voice channel on this place.

Offline Kubig

  • Hero Member
  • *****
  • Posts: 2755
  • Karma: 44
Re: Capacity rules not working correctly
« Reply #26 on: August 01, 2012, 03:38:16 PM »
You have to use "Media Status" for change eServices channel(email,chat,twitter,etc) and SendRequest for change voice status. Unfortunately,is not possible to do all from "Set agent media status" object in strategy. "Set agent...." object is only for eServices.
I recommend you to use this as a workaround and also open #FR to Genesys.

Offline Adam_W

  • Full Member
  • ***
  • Posts: 171
  • Karma: 0
Re: Capacity rules not working correctly
« Reply #27 on: August 01, 2012, 03:59:15 PM »
I'm happy to use SendRequest to make the voice channel Not Ready but this isn't working either at the moment (rejected by Interaction Server).  Is it possible to choose which T Server the request is sent to?

Offline Adam_W

  • Full Member
  • ***
  • Posts: 171
  • Karma: 0
Re: Capacity rules not working correctly
« Reply #28 on: August 01, 2012, 05:08:32 PM »
Found the solution - took a gamble and added "tserver" parameter to the end of the request and it worked  8)

The request now looks like this:

SendRequest[RequestAgentNotReady, Cat['thisdn:', StrReplace[UData['RTargetPlaceSelected'],'Place_',''],'|16:4|17.ReasonCode:Email|tserver:SIPTS_01']]

This seems to work fine and should stop any unwanted voice calls being routed while the agent is dealing with an email.

Thanks again for the assistance from everyone.