UCCE - Pass Global call id (PeripheralCallKey) to CAD

Hello, is it possible to pass value of PeripheralCallKey to CAD as enterprise data. How can this value be set to PeripheralVariable? Is it possible to DBLookup some real time table and get the value before reaching Queue to skill group node. I need this for outbound dialer calls.
Thank you,
Stoyan

Stoyan,
You can access the RouterCallKey and RouterCallDay variables in ICM. There's no way to get the PeripheralCallKey directly. TerminationCallDetail would be your best bet for a lookup to get the PCK, but you wouldn't be able to use the DBLookup node as the primary key for TCD is the RecoveryKey... not to mention you would have to wait until about 15 seconds after at least one call leg terminates to even do a lookup on TCD on the AW/HDS. Also, it's a bad idea to do real-time queries on the TCD, there are big performance concerns with this.
Why are you using PCK? Could another unique identifier work just as well? RCK/RCKD are readily available in ICM.
-Jameson

Similar Messages

  • Passing ICM Call Variable info to CAD not working

    Hello,
    we are running UCCE 7.2(7) with CAD 7.2(1) SR2 and we seem to be having an issue with the ICM Call Variable information being populated in the CAD.
    Up until now, it's been working fine. We have our ICM scripts set ICM Call Variables 1, 2 and 3 and they all appear in the CAD when a call goes to an agent. But, just this morning, I added a new DN, mapped it to a scheduled script, and within that script I set that new DN (just like I've been doing with all the rest so far), set a Call Type, then call 'Go To Script' which is the actual script to handle that specific call.
    Dialling that DN plays the correct script, and going into the Sales queue sends me to that agent, but no ICM Call Variable info is showing up.
    So far this has been working, but now that I've added a new line, it appears to have stopped, but just for this new line, it still appears to be working for all existing lines.
    Any ideas anyone?

    Geoff,
    we just have one Layout (default) listed in Enterprise Configuration - Enterprise Data in the Desktop Admin. The fields in this default Layout did not include any of the ICM Call Variables, so we added a few of them (that we set in ICM scripts). Up until now, these have been showing up in CAD when calls to skill groups come through. It's just now that I've added a new DN and ICM script, they are not showing up for that script only. The ICM Call Vars are working for all other DNs in the system, just not this new one.
    Just to let you know, we upgraded ICM and CTIOS from 7.1(5) to 7.2(7) just recently, and with that we installed CAD 7.2(1) with SRs 1 and 2.
    This is the 1'st time I've added a new line (DN) and ICM script to the system since that upgrade, so could that have something to do with this?
    Also, there is a post where someone had this same issue (https://supportforums.cisco.com/message/1053394#1053394) and it was suggested that they shutdown and restart the CAD Services to resolve this.
    My question is what services are in fact the CAD services? I would like to try that after hours tonight to see if that resolves this issue.
    I verified via CAD that I'm running Build 7.2.1.200
    Any other suggestions?

  • Can you change what phone number is passed over Caller ID?

    Here is my scenario.
    I do not want to have two separate phones.
    My android phone has a MN phone number that I need to keep.
    My new job requires that I have a CA phone number.
    I can hard forward the CA phone number to my MN phone....but....when I'm making outbound calls for work I need the CA number to be passed so my customers see the CA number.
    Conversely, I want the MN number to passed when I make outbound calls in MN.
    Is there an app/program that will allow me to toggle which number is passed via Caller ID when I make outbound calls?
    Is there a different solution?
    Thanks! 

    Here's Wikipedia on "Caller ID spoofing"
    http://en.wikipedia.org/wiki/CallerIDspoofing
    Perhaps a businessman, working from home (or on the road), wants the Caller ID to show his office number when he makes calls...

  • Passing global variable values from databse to forms

    I am using forms 6i and database is oracle 9i.
    I am trying to run a form stand alone ( by pressing CTRL-R) without putting it in the application.
    since when this form is placed in the application menu it works fine as it has been passed global variables values from the database .
    now i am trying to run the form without menu and thus i want to pass the values of global variables .please let me know where should i pass these values in form .is it be WHEN-NEW-FORM-Instance trigger or in Pre-form trigger.
    i know what are the global variable values passing into the form from database.
    i can hard code any values to check if the form runs well or not.

    If you intend to do this sort of testing regularly you might want to consider creating a seperate form with a control block which allows entry of the name of the form you want to run, the names of the globals and their values, and do a CALL_FORM.

  • How to make the cursor global if it has parameters that would be passed through calling environment

    What I am trying to do is:
    1. Pass two dates "p_start_date" and "p_end_date" to a procedure "calc_percnt". Based on these two dates the procedure creates a collection that has ticket info between the date range provided.
    2. Iterate through this collection to find out the number of tickets that took less than 4 hrs (p_count_4), less than 8 hours (p_count_8), less than 12 hours(p_count_12) and less than 24 hours (24).
    3. I want to move the logic of the  above point 2 (also mentioned between dotted lines in the below mentioned code) to a function and call that function.
    4. For the above point 3 I will have to create a function which will accept a collection variable something like this:
    create or replace cal_perc (collection_var total_tckt_colcn) .... 
    I cannot do this because total_tckt_colcn needs to be declared
    5. I cannot make the cursor and collection type as global by putting them in package specification because of the condition in cursor:
    WHERE created_date >= p_start_date AND created_date < (p_end_date + interval '1' DAY)
    it gives the error as "p_start_date"  and "p_end_date" needs to be declared.
    What is the best way to do this????
    create or replace
    PROCEDURE calc_percnt(
      p_start_date IN N01.cc_ticket_info.LAST_CHANGED%type ,
      p_end_date   IN N01.cc_ticket_info.LAST_CHANGED%type ,
    AS
      v_start_date N01.cc_ticket_notes.LAST_UPDATED_STAMP%type;
      v_end_date N01.cc_ticket_notes.LAST_UPDATED_STAMP%type;
      CURSOR cur_total_tckt
      IS
      SELECT  * from
      WHERE created_date >= p_start_date AND created_date < (p_end_date + interval '1' DAY)
    type total_tckt_colcn
    IS
      TABLE OF cur_total_tckt%rowtype;
      total_tckt_col total_tckt_colcn;
      total_coach_col total_tckt_colcn;
    BEGIN
      total_tckt_col  := total_tckt_colcn ();
      OPEN cur_total_tckt;
      LOOP
      FETCH cur_total_tckt bulk collect INTO total_tckt_col limit 100;
    END LOOP;
      EXIT
      WHEN (cur_total_tckt%NOTFOUND);
      END LOOP ;
      CLOSE cur_total_tckt;
    -- ---I want to move the following code in a function which finds the time required to close the ticket and increment the counter ------
    FOR i IN total_tckt_col .first..total_tckt_col .last
      LOOP
      no_of_seconds       := calc_time_diff(total_coach_col(i).created_date, total_coach_col(i).closed_date);
      IF (no_of_seconds    < 14400) THEN
      p_count_4          := p_count_4  + 1;
      p_count_8          := p_count_8  + 1;
      p_count_12         := p_count_12 + 1;
      p_count_24         := p_count_24 + 1;
      ELSIF (no_of_seconds < 28800) THEN
      p_count_8          := p_count_8  + 1;
      p_count_12         := p_count_12 + 1;
      p_count_24         := p_count_24 + 1;
      ELSIF (no_of_seconds < 43200) THEN
      p_count_12         := p_count_12 + 1;
      p_count_24         := p_count_24 + 1;
      ELSIF (no_of_seconds < 86400) THEN
      p_count_24         := p_count_24 + 1;
      END IF;
      END LOOP;
    END calc_percnt;

    I cannot add cursor definition to package because  of the following condition:
    WHERE created_date >= p_start_date AND created_date < (p_end_date + interval '1' DAY)
    it gives me an error: "p_start_date"  and "p_end_date" needs to be declared.
    p_start_date and p_end_date are parameters that would be passed by the user.
    Parameterized cursor to the rescue:
    I have changed my cursor definition to:
    create or replace
    PACKAGE ES_REPORTS AS
    CURSOR cur_total_tckt (p_start_date n01.cc_ticket_status_history.created_date%type, p_end_date n01.cc_ticket_status_history.created_date%type)
      IS
      SELECT  t.ticket_id ticket_id , t.created_date created_date, t.created_by created_by, t.ticket_status ticket_status, t.last_changed last_changed, h.closed_date
      FROM n01.cc_ticket_info t
      inner join
      (SELECT  ticket_id , MAX(created_date) closed_date
      FROM n01.cc_ticket_status_history
      WHERE ticket_status = 'CLOSED' AND created_date >= p_start_date AND created_date < (p_end_date + interval '1' DAY)
      GROUP BY ticket_id
      ) h
      on (t.ticket_id         = h.ticket_id)
      WHERE (t. ticket_status = 'NOTIFIED' OR t.ticket_status = 'CLOSED') AND t.last_changed >= p_start_date AND t.last_changed < (p_end_date + interval '1' DAY);
    END ES_REPORTS;
    Not sure if it is good programing practice though?

  • How to pass global variables to call stored procedure in form personalizati

    Hi,
    We want to call a custom store procedure with 2 paramterts, I am storing values into 2 global variables.
    We want call the custom store procedure with global variable values in form personalizations.
    We tried like
    ='declare
    begin
    SUR_TEST_ORDER_LINE_UPD.update_order_line (:global.xx_line_id, :global.ship_set_id);
    end'
    Could you please suggest.
    Advance Thanks
    Subbu

    Hi,
    Doc number (MOS Doc 743490.) is avaiable in metalink or ?Yes.
    Note: 743490.1 - Customization in Oracle Applications
    https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=743490.1
    Regards,
    Hussein

  • UCCE 9.X Call In to Close Queue

    Hey all,
    Wanted to know how to setup either a CVP script or ICM script to allow a customer to call in and shutdown their call center and then call back in to reopen it. I've seen posts for CRS but can't seem to find anything for UCCE 9.X through either CVP or ICM. Any help would be great.
    Thanks,
    Marcin

    I'll give you the basics using CVP or really any IVR.
    - Create admin script with a PIN to allow to get int. Then ask the caller to press 1 for close or 2 to open the call center. Based on input, write data to some back end system, preferably a database.
    - When calls goes into queue, this application plays please hold and music at the very end it checks in the database field to see if the call center is still closed. At that point you play some message and pass a disconnect flag back to ICM to release the call.
    david

  • UCCE send a caller from agent to IVR and back to the same agent

    Hello,
    I am trying to come up with a way to implement the following logic in UCCE 7.5 with IP IVR 7.0
    A caller gets to an agent and requests a service that requires identification
    The agent sends the caller back to IVR for identification
    UCCE reserves the agent. If caller hangs up the agent is chaged back to ready state.
    After authentication the caller is taken back to the same agent.
    I am not sure how to do steps 3 and 4. I need to be sure that the agent will be available to take the call and not make the customer wait again in queue. I guess I just need a variable to store the agent ID and pass it to the other script so it can make a queue to agent step, but then how do I make the agent reserved or not ready (so he's not taken by another call) and then present the same call back to him? Then I need a way to monitor the customer's activity in IVR and notify the agent if the customer dropped the call.
    Tough one...
    Stoyan

    Hi Stoyan
    I've been looking into the same thing, did you find a solution yet?  I had considered letting the Agent do a transfer to the IVR, collect the Agent ID (or if possible the instrument number they were currently logged in with) for routing back to the Agent.  Set the Agent to permanent Not Ready so they don't receive any other Contact Centre calls.  Let the IVR play out as long as it takes without having to calculate for retries etc. or leaving long delays before the agent can be reached again.   If I could only set the AgentID in the transfer script I would perform a database lookup on the ICM real time tables to find out what extension they were currently logged in with and route direct to that (reachable even if in the Not Ready state).  The main implication of this would be that I would lose visibility of the remainder of this call with regards the skill group statistics.  However, the default skill group could be set for each agent to account for this....not ideal as reporting would become more manual but still recorded at some level.
    Regards
    Brenda

  • Is Header necessary to pass while calling a webservice ?

    Hi all,
            I am calling a webservice which has 1 input parameter.
            My question is, 'Is it mandatory to pass header information while calling the webservice',
            while testing ?
            I got this question because, I tried calling the webservice, but got an error as,
            'CX_SY_CONVERSION_NO_DATE_TIME:XSLT exception'. But I am not passing any
            DateTime field.
            Further my webservice is located in a .NET system and I am trying to consume it from SAP.
            Please advice.
            Any links for the same will be of Gr8 help.
    Thanks.
    Yats.

    Hi Venu,
    DateTime is not as an input.
    I have only 1 input parameter and that is a string.
    Thanks.
    Yats.
    Edited by: Yatin Vishwas Parab on Jun 17, 2009 7:59 AM

  • Passing Global Variable in Sql Object

    Hi
    How can i pass my global variable into SQL object? I tried to pass it but then I tried to update the schema it giving me the error at varble
    Please advise me

    The Update schema is used only to get the structure for the Output.
    Once you have a valid structure and the SQL Parses without any variables use the syntax for applying variables as in any Script within DI.
    $GV_MyVar enclosed within square brackets will be replaced by Value of the variable.
    $GV_MyVar enclosed within curly brackets will be replaced by Value of the variable enclosed in single quotes.
    When the job runs, the variables will be replaced with values OR values with quotes. It is at this time, the SQL send to the database is validated for syntax.
    Therefore, you will not know the validity of your SQL with Global Variables until you run the job.
    Hope this helps!
    Thanks & Regards
    Tiji
    Edited by: Tiji Mathew on May 8, 2009 3:40 PM
    The actual syntax was being posted as a link. edited to make the text descriptive.

  • Control's label/caption passed from calling vi

    I would like a way to pass the control name and data to a subvi so the subvi control names are overwritten. I want the subvi to take each name from the calling program and make a text header using the calling names (not the subvi control names). The files I've attached aren't exactly what I want, but may give the general idea of what I want to accomplish. I would like to NOT pass anything other than the control into the subvi (as I have currently have it, if possible). If this question is not clear, please let me know.
    -Thanks in advance.
    Attachments:
    header-append_tester.vi ‏69 KB
    vi-caller-cluster.vi ‏27 KB

    You cannot change the label of a control during runtime. This is why LabVIEW incorporates Captions.
    I will take a look at your VIs later (when I turn on my workstation) and look at your implementation to see if I can offer any further advice. I used a method similar to this to pass data to indicators and sent a string to the caption to adjust the display to indicate the "label" of the value.

  • Calls In Queue on Cad

    Is there an easy way to display Calls In Queue inside the CAD?  Maybe even longest waiting call?   Aside from clicking around the tool bar and opening windows, is there a solution for pushing this available info out to the CAD? 
    Anyway to modify the Icons in the Supervisor Agent List.  Currently it shows Ready and Not Ready, but is there a way to create customized Icons that match Not Ready States?
    Duh...           

    The Calls in Queue is displayed as a report within CAD.  Agents would have to click on the  Reports icon (or Ctrl-Q) then select Contact Service Queue Statistics.
    If you want more detail, one workaround is to use a wallboard.  There are some opensource ones available (search the forums).  If you have a web-based wallboard setup, you can customize it, then display it as a tab within the CAD integrated browser.  That way your agents always see it (without clicking), and you can show any data you want.
    I don't believe you can modify the Supervisor Desktop icons.

  • Pass Global Variables to another forms(urgent)

    Hi,
    Can someone tell me what is the best way to pass a global variable from one form to another forms. I havn't trouble with that.
    Please advise.
    Thank you very much
    Tim
    null

    You can use a parameter.
    Helena
    null

  • Passing global from Events

    I am developing a test program. I am using the full PID control, A test routine with 20 steps. It is a semi automatic test. The operator has
    a panel for input when an event occures. I am having dificulty trying to pass the global data from the event case to the test sequence.
    I am sure it is very basic. When I choose the start event. I tried to pass the boolean state & and I tried passing a 0 or a 1.
    No luck.
    Philip
    Attachments:
    State Machine (Completed) Folder.zip ‏63 KB

    Hi,
    I looked at your State Enum VI.  IT seems like you are trying to pass data through GV from a while loop at the top to the sequence structure at the bottom. 
    1. The bottom sequence structure is going to execuate only once, so it is not going to get the value that you intended to get.  You can put a while loop around the sequence structure if you want, so that it will continue to poll for the GV. 
    2. If you pass data that way, you are going to run into racing condition.  It is better to pass through between parallel section of code with a queue instead. 
    Yik
    Kudos and Accepted as Solution are welcome!

  • What do they mean ...exception  passed up call stack

    For the project I am working on, we throw a created exception. This exception is "passed up the call stack if thrown by the object". I understand how to throw exceptions and try/catch, and rethrow. What are they talking about...passing it up the call stack?? I can't find any reference to this anywhere. Am I supposed to just ignore the exception and hope it gets caught in another class or method?

    look at:
    public class A {
    public static void main(String args[]) {
      try {
        new A().foo();
      } catch (Exception e) { }
    public void foo() throws Exception {
      bar(1);
    public void bar(int i) throws Exception {
      if (i>=0) bar(i-1) else gar();
    public void gar() throws Exception {
      goo();
    public void goo() throws Exception {
      throw new Exception("ouch!");
    }  // end of class AWhen the program is run, main creates an A, and calls foo()
    foo() then calls bar()
    bar() then calls bar() again
    bar() then calls gar()
    gar() then calls goo()
    This is called the "call stack". It is (something like) the stack of method calls that are performed. The terminology comes from the fact that when a method calls another, the information about the calling method is actually pushed onto a Stack data structure. When the called method returns, the information is popped back off, so the calling method continues to run from where it left off.
    Now goo() throws an Exception to gar()
    gar() then throws it up to bar()
    bar() then throws it up to bar() again
    gar() then throws it up to bar()
    bar() then throws it up to foo()
    foo() then throws it up to main()
    That's what it means that the Exception is passed up the call stack.

Maybe you are looking for