10-26-2018 02:23 PM - edited 03-14-2019 06:34 PM
Hello,
I've seen a number of questions related to this but thought I would try to get some clarification. I have a script that front ends all my other scripts and does database dips to pull data from a couple of databases. I store this data into variables within the script. I then use a Get Session step to create a new session and use a Set Session Info step to store my data from script variables into the session and do a call redirect to my next app/script
My 2nd script does a Get Session step (not new) and then a Get Session Info to read my data from the session back into my script variables. This is working fine and my data is consistent (as far as I can tell). The problem is that for some calls, I transfer to yet a 3rd script depending on what options the caller pressed or if they have been in queue for too long. In my 3rd script, again I use a Get Session step (not new) followed by a Get Session Info step to read data from the session into script variables. Many times, the data I read back into the 3rd script appears to be data from a different (wrong) session and my data is not what I'm expecting.
In each script I write my data using CPV's so I can validate and report on everything
I read another post where another user was experiencing similar behavior and the recommendation was to use Get and Set Call Contact steps instead of Get and Set Session steps.
So I have 2 questions, what is the difference between setting and getting the session info using a call contact step vs using the session steps and secondly, how and why is my session data getting mixed up with data from other calls? I was always under the impression every call has a unique session associated with it.
Thanks in advance,
Glenn
Solved! Go to Solution.
11-02-2018 03:04 PM
My go to strategy for passing info between scripts within the same CCX cluster is to use the CM call leg ID which can be obtained as the implementation ID in CCX via the Get Contact Info step. If you are calling sub-flows, the best way to do this is to is copy the triggering contact into a Contact type variable and pass that to the sub-flow. As long as you are transferring between route points in the same CCX/CUCM cluster, the implementation ID will always be the same for that caller.
11-02-2018 03:08 PM - edited 11-02-2018 03:16 PM
Here is what my code block locks like for session passing. WorkingContact is defined as a Contact type variable and is a parameter. If it is a direct call (via JTAPI route point), the Get Trigger Info populates WorkingContact.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide