cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
14176
Views
50
Helpful
40
Replies

UCCX Scripting question

PhillDay1
Level 1
Level 1
We have a requirement from our client running UCCX version 8.5 to
route calls within a certain time period to the same agent that dealt with the last call
from that specific calling number.  I recognise that this is probably a fairly complex scripting issue,
but it's very pressing nonetheless, and any helpful pointers I could get from an expert
would be most gratefully received.  We are working on a project which will depend on this
feature, and I don't know how to achieve it.  Thanks in advance
40 Replies 40

for information

i did it with a

set enterprise in the first script and get enterprise info in the second..

That's fine, and there are several ways to store persistent data about a caller, but giving up on the Session approach just because you couldn't figure it out is not a good excuse to use Enterprise data.

Use the solution that's right for you, not the easier to figure out one.

Good luck and happy scripting.

Anthony Holloway

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

Hi Anthony,

Hope you are doing great. I just would like to have your assistance to do with priority callers.

Well scenario is for internal organizational users, who basically calls to service desk. We have identified top management and other pririty users whom we want them to be treated on higher priority.

So, the trigger would remains the same and I need to identify the callers on the basis of "Calling ID" not on the Called no.

How to put those callers which i know say 10 users (41110 - 41119 ) and then mark them as priority and for rest the call should follow as normal.

I would appreciate if you guys can assist in this. I know I can use Get Call Contact (Caller ID ) but how to add those Priority Callers (41110 - 41119 ) in some variable and then compare them is my question.

Thank you.

M Taha

Hi

Firstly - it's best to start a new thread for a new question. Also, there is no point posting the same question multiple times on lots of threads.

What you need to do in your case is have the IDs that you want to prioritise stored 'somewhere'. The most simple way would be to simple compare them in an IF step, e.g.

String callerID = Get Call Contact(Caller ID)

IF (callerID == "41110")

     - true : set priority = 5

     - false : no steps

IF (callerID == "41111")

     - true : set priority = 5

     - false : no steps

If your numbers are consecutive as in your example you could have:

IF (callerID.startsWith("4111")

     - true : set priority = 5

     - false : no steps

But in practice you'll probably find that you have a lot of unrelated random numbers that you need to prioritise. In that case I would probably:

1) Store the numbers in an XML file, and read/compare those numbers when the call comes in

2) Store the numbers in a database, and do a select against that DB to see if the call should be prioritised.

There are lots of examples of XML file and DB usage around waiting to be googled.

Aaron

Aaron Please remember to rate helpful posts to identify useful responses, and mark 'Answered' if appropriate!

Here is everything you need to make this work.  You are very close to the solution.

Also, I will be typing this out as opposed to uploading a script for two reasons:

So that the contents of the script can be searched for

I am on UCCX 8.5 and I realize that if I upload a script, everyone not on UCCX 8.5 will not be able to open it

Script 1 - Trigger 1000

Variables

Session this_session = null

String session_data = ""

Script

Start

Accept(--Triggering Contact--)

/* The Get Contact Info step grabs a reference to the Session for the Triggering Contact */

this_session = Get Contact Info (--Triggering Contact--, Session)

Set session_data = "Yippee-ki-yay"

/* In the Set Session Info step, you use the context tab to store the session data. */

/* The name is a quoted string you make up. I.e., "the_session_data" or "my_secret" */

/* For me, I will use the same name as my variable in order to keep it consistent: "session_data" */

/* The value is the variable in your script which holds the value you wish to store.  For me: session_data */

Set Session Info (this_session)

Call Redirect (--Triggering Contact--, "2000")

     Successful

     Busy

     Invalid

     Unsuccessful

End

Script 2 - Trigger 2000

Variables

Session this_session = null

String session_data = ""

Script

Start

Accept(--Triggering Contact--)

/* The Get Contact Info step grabs a reference to the Session for the Triggering Contact */

/* In this example scenario, this will be the exact same session as in Script 1. */

/* That is because the session is attached to the contact, and not to the script */

/* If the caller had hung up, and called script 2 directly, then this would not be the same session */

/* In that case, you would have had to create a session mapping in script 1, and then use the Get Session step */

/* in this script to try and retrieve a reference to an existing session.  Session only last for 30 minutes by default. */

this_session = Get Contact Info (--Triggering Contact--, Session)

/* In the Get Sessoin Info step, you use the context tab to retrieve the session data */

/* Just like the Set Session Info step, you need to specify the name, and which variable you will hold the value in */

/* What is neat here is, the step knows about the names you've typed in previously, and makes them available from a drop down list. */

/* However, if your's in not shown, don't panic, just type the name in again, just as you did with the Set Session Info step. */

session_data = Get Session Info (this_session, "session_data")

/* If the session_data variable (or any variables you use in the Get Session Info step) return null after the Get Session Info step, */

/* That means that they were not set (not found) within the session object. */

If (session_data != null && session_data.trim() != "")

     True

          /* We now hold a good value for session_data from the first script.  Yay!  We did it! */

     False

          /* Oops, something went wrong and now we're left standing in the rain all alone. */

End

Anthony Holloway

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

Thanks Anthony,

5/5

philippe.cousineau wrote:

Thanks Anthony,

5/5

The points!  I need them to level up my CSC character!

But serisouly, thanks for hanging in there and reading what I had to write on the subject.  Hopefully Sessions don't seem so mysterious anymore.

Anthony Holloway

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

I cant, no idea why.. the stars are gray  ( and Iam connect with my cco )

LOL, I'm kidding.  Yes, I have seen that too.  It seems there is a forum software defect with managing...wait for it...sessions.

Anthony Holloway

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

Hello Antony

Great explanation!!! Great lesson!!

I had been very useful for my, it has solved a big problema that I had to conect two scripts

Thank you!!!

Awesome, glad to hear it!

Anthony Holloway

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