cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
2266
Views
25
Helpful
8
Replies

Independent MRD states?

I wanted to give my agents the ability to pause inbound chats while still taking calls.  However, in testing on an agent who is Ready for all MRDs, sending <Media><routable>false</routable></Media> to the chat MRD's endpoint causes the Voice status in Finesse to change to "Withdrawn" and the /api/User/XXXXX/ state (MRD=1) to become <state>NOT_READY</state>.

Does Cisco allow separate management of Voice and non-Voice MRD states?
2 Accepted Solutions

Accepted Solutions

dekwan
Cisco Employee
Cisco Employee

Hi,

 

As far as I know, the non-voice MRD state is independent of the voice state. I tested this out on the DevNet PCCE 12.5 sandbox and was able to have a voice agent state of READY, a non-voice MRD state of READY and routable of false. The agent was able to receive calls during this combination and the agent wasn't receiving chat.

 

Untitled.png

Are you using the Media—Change Agent to Routable/Not Routable API to change the agent from routable to not routable?

 

I tried to see if there is a CCE configuration that is causing your behavior but didn't see one: https://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cust_contact/contact_center/icm_enterprise/icm_enterprise_11_5_1/Configuration/Guide/UCCE_BK_U882D859_00_ucce-features-guide/UCCE_BK_U882D859_00_ucce-features-guide_chapter_01000.html 

 

Thanx,

Denise

View solution in original post

Hi,

 

I tested the RONA situation on the PCCE 12.5 setup that I was using earlier and it seems like when the agent goes RONA for a task, the routable changes to false but remains in READY state.

 

<Update>
  <data>
    <media>
      <description></description>
      <dialogLogoutAction>TRANSFER</dialogLogoutAction>
      <id>5000</id>
      <interruptAction>ACCEPT</interruptAction>
      <interruptible>true</interruptible>
      <maxDialogLimit>5</maxDialogLimit>
      <name>TaskType1</name>
      <routable>false</routable>
      <state>READY</state>
      <stateChangeTime>2021-06-01T20:50:44.492Z</stateChangeTime>
      <uri>/finesse/api/User/123000/Media/5000</uri>
    </media>
  </data>
  <event>PUT</event>
  <requestId></requestId>
  <source>/finesse/api/User/123000/Media/5000</source>
</Update>

 

Thanx,

Denise

View solution in original post

8 Replies 8

dekwan
Cisco Employee
Cisco Employee

Hi,

 

As far as I know, the non-voice MRD state is independent of the voice state. I tested this out on the DevNet PCCE 12.5 sandbox and was able to have a voice agent state of READY, a non-voice MRD state of READY and routable of false. The agent was able to receive calls during this combination and the agent wasn't receiving chat.

 

Untitled.png

Are you using the Media—Change Agent to Routable/Not Routable API to change the agent from routable to not routable?

 

I tried to see if there is a CCE configuration that is causing your behavior but didn't see one: https://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cust_contact/contact_center/icm_enterprise/icm_enterprise_11_5_1/Configuration/Guide/UCCE_BK_U882D859_00_ucce-features-guide/UCCE_BK_U882D859_00_ucce-features-guide_chapter_01000.html 

 

Thanx,

Denise

Thank you for doing such thorough research, Denise!

I am using the API you mentioned, directed at the same Finesse server the agent is logged into (which isn’t the primary), with the agent’s own credentials.

Now that I know the out-of-box should work as expected, I’m thinking that the chat gadget (upstreamworks) may be misinterpreting the BOSH event that’s acknowledging the routability change as a blanket state change (although Withdrawn is an odd NotReady state). I’ll have to comb through the copious logs to see if there’s any obvious indicators one way or another.

More later! And thanks again!

Hi,

 

Another suggestion would be for you to grab the Finesse webservices logs to see the notification event that it is sending to the chat gadget. Finesse is a pass through in terms of agent state, so check to see if the CTI is setting this Not ready with Withdrawn. This will help you determine if the issue is with the gadget or Finesse/CCE itself.

 

Also, it might be good to use the TaskManagement gadget, which you can find here: https://github.com/CiscoDevNet/finesse-sample-code/tree/master/TaskManagementSampleGadget and do the same test as I did. Is it producing the same bad behavior? If it is, then you can open a TAC case because it becomes a product issue rather than a third-party implementation issue.

 

Thanx,

Denise

Denise,

Thank you again for all the detailed information! I'll definitely take a look at the sample gadget to up my game.  But, as it turns out, there is code in the vendor's event listener which treats any media update that includes routable==false as a RONA, and then forces voice state to that special NotReady.  

This is explicitly counter to both the 12.5 dev guide (which actually encourages separate media state management!) as well as your example. If the project team feels that giving agents more control over individual routing domains is as good an idea as I think it is, they will have to request the vendor fix that part of their codebase.

I've set your original answer as the solution because as you know, it shouldda worked!

Chris

Hi,

 

I'm glad that you were able to figure it out! That is strange that the vendor would treat any media update as RONA, but maybe they had a reason. Giving the agent more control over the routing domain is definitely a good idea. That is why it is an option!

 

Thanx,

Denise

Just to finish off the conversation - I'm assuming that the actual RONA events will be a Not Routable along with Not Ready / 32767, which is the RONA reason code.  The Not Routable event alone wouldn't indicate a RONA on an MRD.  Is this a good assumption?

Hi,

 

I tested the RONA situation on the PCCE 12.5 setup that I was using earlier and it seems like when the agent goes RONA for a task, the routable changes to false but remains in READY state.

 

<Update>
  <data>
    <media>
      <description></description>
      <dialogLogoutAction>TRANSFER</dialogLogoutAction>
      <id>5000</id>
      <interruptAction>ACCEPT</interruptAction>
      <interruptible>true</interruptible>
      <maxDialogLimit>5</maxDialogLimit>
      <name>TaskType1</name>
      <routable>false</routable>
      <state>READY</state>
      <stateChangeTime>2021-06-01T20:50:44.492Z</stateChangeTime>
      <uri>/finesse/api/User/123000/Media/5000</uri>
    </media>
  </data>
  <event>PUT</event>
  <requestId></requestId>
  <source>/finesse/api/User/123000/Media/5000</source>
</Update>

 

Thanx,

Denise

Thanks so much for taking the time to test that, Denise! I guess using <routable> as a RONA indicator is not as much of a bug as I’d thought. 

Any chance of submitting a change request to include the Voice RONA behavior (Not Ready/32767) for all MRD’s?  
I’ll have to check the docs again - I understood that Not Ready alone would not stop ICM from routing tasks to an MRD.