cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1035
Views
0
Helpful
17
Replies

Prioritising Some numbers on queue

Khurram Tariq
Beginner
Beginner

hi people

we are running call center and using call manager 8.5 with UCCX 8.5, we have some critical customers who want to attend there without waiting in the queue, please help me out and give me good suggestion to prioritize some numbers so they would not wait in thr queue and also if i want these call on a particular agent extension..?

please help me i would be highly thankfull..

3 Accepted Solutions

Accepted Solutions

Anthony Holloway
Cisco Employee
Cisco Employee

If I understand you correctly, you would like to determine if a calling number is a priority call, and if it is, find their assigned Agent, attempt that Agent, and if they cannot be reached, go to the queue.  Is that right?

If so this is one way to do that with a single script solution.  If you needed to have the feature exist in multiple scripts, then you'll want to separate your data from your logic. I.e., Subflow, Document Repository, External Data Source, etc.

Variables

java.util.HashMap priority_callers = {
     java.util.HashMap m = new java.util.HashMap();
     m.put("6125551111", "agent1");
     m.put("6125552222", "agent2");
     return m;
}
String calling_number = ""
User target_resource = null
String target_csq = "Support_CSQ"

Script

Start
Accept (--Triggering Contact--)
calling_number = Get Call Contact Info (--Triggering Contact--, Calling Number)
If (priority_callers.containsKey(calling_number))
     True
          Set Priority (--Triggering Contact--, Assign: 10)
          target_resource = Get User (User ID: (String) priority_callers.get(calling_number))
               Successful
                    Select Resource (--Triggering Contact--, target_resource)
                         Connected
                              End
                         Failed
               Unsuccessful
     False
Select Resource (--Triggering Contact--, target_csq)
     Connected
          End
     Queued
          Queue Loop:
          Play Prompt (--Triggering Contact--, P[queue_msg.wav])
          Call Hold (--Triggering Contact--)
          Delay 30 sec
          Call Unhold (--Triggering Contact--)
          Goto Queue Loop
End

Anthony Holloway

Please use the star ratings to help drive great content to the top of searches.

View solution in original post

Hi, yes, I did. I just did not have time.

Let's start with something simple. First, we are going to create an application looking up the calling number aka ANI in an XML database which is stored in the Document Repository of the UCCX server.

Save it as priorityList.xml (watch out for the encoding - must be UTF-8!) and upload it to the Document Repository.

Then try this script:

Variables:

doc - type Document

match - String

ani - String

In your final script, the value of ani will be assigned by the Get Call Contact Info step, of course. For now, let's assign the initial value of "12345". The rest of the variables have default values (DOC[] and "", respectively).

First, we create an XML document, referencing the XML file we just uploaded, like this: DOC[priorityList.xml]

Next, we run an XPath query: "//entry[@ani='"+ani+"']/@ani" Watch for the quotes.

This Xpath query in English: return the value of attribute ani of the first element named entry whose ani attribute matches the value of the script variable ani (which is, in our case, 12345 - so it actually returns "12345").

Next, if there are any matches (meaning the value of variable match is not null), we set the priority to 10.

Test it with the initial value of ani = 12345 (should be a match there) and with "00000" or any number not in priorityList.xml. There should not be a match. Use Reactive Debugging to see whether it matches (value of match should be anything other than "") or it does not (value of variable match stays "").

G.

View solution in original post

Hi,

well yes, if you update the XML file, you must upload it to the Document Repository. Otherwise, how would the UCCX know that the file has been updated?

You can put it wherever you want to, but best before the part where the script selects the agents (probably the Select Resource step).

Yes, you can make as many test applications with scripts as you want.

G.

View solution in original post

17 Replies 17

david.macias
VIP Advocate VIP Advocate
VIP Advocate

Assuming these customers are always calling from the same number, you can look at their caller ID and prioritize on that.  If they call from different numbers, do you customers enter any account number which might identify them?

david

lohjintiam
Enthusiast
Enthusiast

you can store those priority numbers either in xml file / db

you can target a particular agent 1st and after timeout/threshold then target CSQ

Khurram Tariq
Beginner
Beginner

Thanks for the reply david and lohjintiam....

david i have some managers fixed numbers and customers who will call from same number so changing of numbers is not the issue,

lohjintiam:

kindly explain me how to do it if i have to use xml file for this scenerio and yeah i will target that particular agent but from this every call will go to that agent first and than CSQ...?/

Anthony Holloway
Cisco Employee
Cisco Employee

If I understand you correctly, you would like to determine if a calling number is a priority call, and if it is, find their assigned Agent, attempt that Agent, and if they cannot be reached, go to the queue.  Is that right?

If so this is one way to do that with a single script solution.  If you needed to have the feature exist in multiple scripts, then you'll want to separate your data from your logic. I.e., Subflow, Document Repository, External Data Source, etc.

Variables

java.util.HashMap priority_callers = {
     java.util.HashMap m = new java.util.HashMap();
     m.put("6125551111", "agent1");
     m.put("6125552222", "agent2");
     return m;
}
String calling_number = ""
User target_resource = null
String target_csq = "Support_CSQ"

Script

Start
Accept (--Triggering Contact--)
calling_number = Get Call Contact Info (--Triggering Contact--, Calling Number)
If (priority_callers.containsKey(calling_number))
     True
          Set Priority (--Triggering Contact--, Assign: 10)
          target_resource = Get User (User ID: (String) priority_callers.get(calling_number))
               Successful
                    Select Resource (--Triggering Contact--, target_resource)
                         Connected
                              End
                         Failed
               Unsuccessful
     False
Select Resource (--Triggering Contact--, target_csq)
     Connected
          End
     Queued
          Queue Loop:
          Play Prompt (--Triggering Contact--, P[queue_msg.wav])
          Call Hold (--Triggering Contact--)
          Delay 30 sec
          Call Unhold (--Triggering Contact--)
          Goto Queue Loop
End

Anthony Holloway

Please use the star ratings to help drive great content to the top of searches.

yeah anthony i will test these mathod in my lab then i wil ask you if i would face any issue regarding,,,actually i am not good in scripting i just made basic script and i dont want to test this in the production environment, Thanks buddy

hello anthony

i have tried this script in editor but failed to understand that logic as i am weak in scripting but my boss has asked me to do that so i am working hard on it but unfortunately not gettiing it done.

as i am doing in production environment, tell me can i do it in test environmnet on the same ccx editor??

and also share if you have any video related to it.

Thankyou for your valuable solutions.

Hi,

well if you have access (IP addres, login name, password) to a compatible UCCX server, then yes, you can use the same script editor, why not.

About the script itself: do you understand the requirements? I mean, if I asked you to pull out a piece of paper and a pencil, would you be able to draw the scheme of the call flow? Like a flowchart? If yes, why don't you do that. I mean it. Then post it to here.

Also, can you please provide us with the license level of your UCCX (production environment) - is it Premium, Enhanced or Standard? For instance, XML is enabled in the Premium version only.

Thanks.

G.

hi

thanks for your kind support.

yes i have access to the UCCX server, can i test it separatly by making new script...?

We have Premium license and our requiremnt is:

we have some senior manager numbers to whome we want to do priority by not letting them wait in the queue, whenever they call to our contact center their call should be accepted on priority basis without waiting in the queue.hope you understand my requirement do let me know if you have question.

well i am attaching screen shot of my original script and do let me know if you want anyother information.

Hi,

about the test and production environment: well, you can create a new script for the test environment but it would be ideal to create the script in the test environment first, test it extensively and then copy it over to the production environment.

Can you tell me how often the list of senior managers change? I am thinking about a database table that would store the phone number, the name of the manager, and optionally, the extension of their preferred agent.

This database table could be administered by a simple web based application.

What's your opinion on that?

G.

hi

yeah thats agood way to do that but it needs a lot of work and time, we should simplify it by storing it in xml what u say??

and data of managers will be modify monthly i think so.

Well, XML is a way, too.

Can you please show me the script you are working on? I just want to see where to begin.

G.

i have attached in previous post...attached again please check

hi

have you got attachment...??

Hi, yes, I did. I just did not have time.

Let's start with something simple. First, we are going to create an application looking up the calling number aka ANI in an XML database which is stored in the Document Repository of the UCCX server.

Save it as priorityList.xml (watch out for the encoding - must be UTF-8!) and upload it to the Document Repository.

Then try this script:

Variables:

doc - type Document

match - String

ani - String

In your final script, the value of ani will be assigned by the Get Call Contact Info step, of course. For now, let's assign the initial value of "12345". The rest of the variables have default values (DOC[] and "", respectively).

First, we create an XML document, referencing the XML file we just uploaded, like this: DOC[priorityList.xml]

Next, we run an XPath query: "//entry[@ani='"+ani+"']/@ani" Watch for the quotes.

This Xpath query in English: return the value of attribute ani of the first element named entry whose ani attribute matches the value of the script variable ani (which is, in our case, 12345 - so it actually returns "12345").

Next, if there are any matches (meaning the value of variable match is not null), we set the priority to 10.

Test it with the initial value of ani = 12345 (should be a match there) and with "00000" or any number not in priorityList.xml. There should not be a match. Use Reactive Debugging to see whether it matches (value of match should be anything other than "") or it does not (value of variable match stays "").

G.

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Recognize Your Peers