Write RNI

Version 1
    This document was generated from CDN thread

    Created by: Ruben De Los Santos on 08-04-2013 10:18:01 AM
    I am looking for a way to pass the redirect counter to the PSTN. I have been able to retireve when the PSTN submits to me with the following command:   set rc_rni [object get gtd gtd_iam rni.1.rc]   Does anyone know how to "write". I have use the following without any success:   set callInfo(originationNum) 1212121212    <-- this passes set callInfo(redirectCount) 2    <-- this DOES NOT pass set callInfo(redirectNum) 444444    <-- this passes set callInfo(redirectReason) rr_cfb    <-- this passes

    Subject: RE: Write RNI
    Replied by: Yaw-Ming Chen on 08-04-2013 11:22:32 AM
     
    redirect count we can use "infotag get leg_redirect_cnt" to retrive as well. How did you retrive this at the destination end ?
    What protocol is used in outgoing leg ? Is it possible to get "deb voice(or voip) ccapi inout" debug ?
     
     

    Subject: RE: Write RNI
    Replied by: Ruben De Los Santos on 08-04-2013 12:02:22 PM
    Yaw-Ming, You are correct, I can retrieve with the that command as well. I have confirmed. Here is what I currently have to retrieve when the call originates ISDN:   set ocn_rni [object get gtd gtd_iam rni.1.rc]   set isup_rni [infotag get leg_redirect_cnt]   I am simulating a VoIP call that will have no redirect counter in the VoIP leg, I would like that I can inject a hard coded value via the TCL that will terminate to the ISDN. I have attemtped using set callInfo(redirectCount) 2 or any value for that matter, on my debugs I always come back with redirection counter = 1.    I have attached a file with the requested debug, but keep in mind that this is s sumlated call that will orginate with NO redirection Counter.     
    Yaw-Ming Chen:
      redirect count we can use "infotag get leg_redirect_cnt" to retrive as well. How did you retrive this at the destination end ? What protocol is used in outgoing leg ? Is it possible to get "deb voice(or voip) ccapi inout" debug ?    
               

    Subject: RE: Write RNI
    Replied by: Yaw-Ming Chen on 08-04-2013 12:29:19 PM
    How it looks like in outgoinh leg ISDN debug ? I have feeling that this counet is also related to other value/ For example. if there is no redirect number why there is a redirect count number .....etc.

    Is it possible it can attach you script to show how you do call setup ?
     

    Subject: RE: Write RNI
    Replied by: Ruben De Los Santos on 08-04-2013 01:33:43 PM
    It's very possible but I do see the redirection number on my wireshark traces:   proc act_Setup { } {     global dest     global beep     global ipaddr     global ani     global sessionID     global dnis     global authdestination     set beep 0     set dest [infotag get leg_dnis]     set ani [infotag get leg_ani]         puts "~~~~~~~  ORIGINAL DNIS: $dest ANI: $ani"   set callInfo(originationNum) 640123456789 set callInfo(redirectCount) 2 set callInfo(redirectNum) 4444444 set callInfo(redirectReason) rr_cfb   puts "~~~~~~ I got here BEFORE Setup"   leg setup $dest callInfo leg_incoming puts "~~~~~~ I got here AFTER Setup" }  
    Yaw-Ming Chen:
    How it looks like in outgoinh leg ISDN debug ? I have feeling that this counet is also related to other value/ For example. if there is no redirect number why there is a redirect count number .....etc. Is it possible it can attach you script to show how you do call setup ?  


    Subject: RE: Write RNI
    Replied by: Ruben De Los Santos on 08-04-2013 03:02:53 PM
    Not sure your call flow but those commands are for ISDN inbound calls when a redirect counter exists. This is on a cameleon ss7 simulator that is hardcoding that redirect counter. My issue is with the other direction where we terminate to ISDN. 
     
    Yaw-Ming Chen:
    I just tried it in my lab, I always got redirect_cnt = "not_present" instead of a number doesn't matter direct calling script or hit script by transfer to.
    Don't know waht did I miss.
    set redirect_pi [infotag get leg_rdn_pi]
       set redirect_cnt [infotag get leg_redirect_cnt]
     
     //20674//TCL :/tcl_PutsObjCmd: >>> Tcl: proc act_Setup <<<
    Apr  8 19:16:00.309:
    Apr  8 19:16:00.309: //20674//TCL :/tcl_PutsObjCmd: >>>***** Tcl: Redirect PI is : not_present *****<<<
    Apr  8 19:16:00.309:
    Apr  8 19:16:00.309: //20674//TCL :/tcl_PutsObjCmd: >>>***** Tcl: Redirect Count is : not_present *****<<<
    Apr  8 19:16:00.309:


    Subject: RE: Write RNI
    Replied by: Yaw-Ming Chen on 08-04-2013 02:44:17 PM
    I just tried it in my lab, I always got redirect_cnt = "not_present" instead of a number doesn't matter direct calling script or hit script by transfer to.
    Don't know waht did I miss.
    set redirect_pi [infotag get leg_rdn_pi]
       set redirect_cnt [infotag get leg_redirect_cnt]
     
     //20674//TCL :/tcl_PutsObjCmd: >>> Tcl: proc act_Setup <<<
    Apr  8 19:16:00.309:
    Apr  8 19:16:00.309: //20674//TCL :/tcl_PutsObjCmd: >>>***** Tcl: Redirect PI is : not_present *****<<<
    Apr  8 19:16:00.309:
    Apr  8 19:16:00.309: //20674//TCL :/tcl_PutsObjCmd: >>>***** Tcl: Redirect Count is : not_present *****<<<
    Apr  8 19:16:00.309:

    Subject: RE: Write RNI
    Replied by: Yaw-Ming Chen on 08-04-2013 03:29:23 PM
    Wonder if we need to do something about redirectNumSI
    redirectNumSI—Redirect number Screening Indication value.
    Values allowed are:
    usr_provided_unscreened
    usr_provided_screening_passed
    usr_provided_screening_failed
    network_provided
    This parameter does not allow indexing.

    redirectCount<count>—Used to set the redirect number Screening Indication value. Valid count
    values are in the range of 0–7. The count is automatically incremented with each forwarding
    request from the destination. The decision of when to stop forwarding at a specified count is the
    responsibility of the script. This parameter does not allow indexing.

    Subject: RE: Write RNI
    Replied by: Ruben De Los Santos on 08-04-2013 05:19:36 PM
    Yaw-Ming,
    Tried a few of those with no success.  
     
    Here is my full script:
     
    # Script Name:  Redirect Counter
    # Copyright 2013 VoIP Atlantic, Inc.
    # CiscoPGW.com
    #------------------------------------------------------------------
     
    proc init { } {
        global version
    set version "Redirect Counter 0.9"
    }
     
    proc act_Setup { } {
    global version
    global dnis
    global ani
    global call_id
     
    set call_id [infotag get leg_incoming] 
     
    set dnis ""
    set dnis [infotag get leg_dnis]
    set ani [infotag get leg_ani]
     
            set callInfo(redirectNumSI) usr_provided_screening_passed
            set callInfo(redirectNum) 4444444
            set callInfo(redirectReason) rr_cfb
            set callInfo(redirectCount) 2
     
    puts "\n====== $version ============"
    puts "DNIS:          $dnis "
    puts "ANI:           $ani"
     
    leg setup $dnis callInfo leg_incoming
    }
     
    proc act_CallSetupDone { } {
    global version
    global call_id
     
    set status [infotag get evt_status]
    if { $status == "ls_000"} {
    puts "\n======$version Connected $call_id =============\n"
    return
    }
     
    puts "\n======$version CallSetup $call_id Failed: $status"
    call close
    }
     
    proc act_Cleanup { } {
         global version
    global call_id
    puts "\n======$version  Cleanup  $call_id ========"
         call close
    }
     
    init
    set fsm(any_state,ev_disconnected)      "act_Cleanup          same_state"
    set fsm(any_state,ev_disconnect_done)   "act_Cleanup          same_state"
    set fsm(CALL_INIT,ev_setup_indication)  "act_Setup            PLACECALL"
    set fsm(PLACECALL,ev_setup_done)        "act_CallSetupDone    same_state"
     
    fsm define fsm CALL_INIT

    Subject: RE: Write RNI
    Replied by: Ruben De Los Santos on 09-04-2013 09:56:41 AM
    With this scipt I actually see the redirect counter on the API debugs:
     
    *Apr  9 12:53:26.647: //-1/xxxxxxxxxxxx/CCAPI/ccSetRedirectionCount:
       (rdn count=0x2)

    Subject: RE: Write RNI
    Replied by: Yaw-Ming Chen on 09-04-2013 10:36:25 AM
    Do you mean you see it in ccapi but not in ISDN ?
     
     

    Subject: RE: Write RNI
    Replied by: Ruben De Los Santos on 09-04-2013 12:18:49 PM
    Yaw-Ming...what is the best debug to run to view this?  I do not see on my GTD debugs nor do I see on Q931.

    Subject: RE: Write RNI
    Replied by: Yaw-Ming Chen on 09-04-2013 12:45:30 PM
    I don't know which IE in Q931 has redirect count. I know there is one in ISUP. If there is one we should be able to see in Q931 debug.
     

    Subject: RE: Write RNI
    Replied by: Yaw-Ming Chen on 15-04-2013 02:07:58 PM
    When doing forwarding I was able to overwrite redircet count.
    Script revice a call which is forwading from a phone I saw redierct count = 1 thwn I use callinf to set it to 3 and was able to see it was set it to 3 at distination

    Subject: RE: Write RNI
    Replied by: Ruben De Los Santos on 15-04-2013 02:22:40 PM
    Yaw-Ming,
    Can you please explain how you were able to make that happen?
    Please include your sample script.

    Subject: RE: Write RNI
    Replied by: Yaw-Ming Chen on 15-04-2013 02:56:41 PM
    I only do "set cllInfo(redirectCount) 3"
    The key is it has to be a forwrading call. Once we see  [infotag get leg_redirct _cnt] has a value (not not_present) then we are able to modify it. So I think IOS also check when is allowed to modified this value.
     

    Subject: Re: New Message from Yaw-Ming Chen in Voice Gateway API (VGAPI) - TCL-API:
    Replied by: LEON MCCALLA on 15-04-2013 10:46:35 PM
    in a SIP->IOS->PGW->SS7 scenario where redirect count is part of the original SIP message, the redirect count is dropped from the message path completely.  Direct insertion via TCL was merely an attempt to modify a basic call in order to recreate the scenario. Observation from this recreation was that IOS is indeed omitting the redirect count not only when it arrives as part of a sip message but also when it is injected via TCL.

    Im not sure why you would say IOS is not allowed to modify the redirect count when all other values of the redirect field are adjustable and there is a commend dedicated to modifying the redirect count. can you at least request that an engineer investigate the operation?

    I find that this forum provides assistance to the general public for easy questions but advanced scenarios or bug reports are rejected. On the other hand TCL Bug reports or IOS bugs that involve TCL scripts are 100% redirected to this same group of engineers for support. I find that the Cisco VGAPI provides a powerful platform for voice development that is limited only by the fact that as developers we are NOT allowed access to VGAPI engineering staff. As experts who use cisco VGs in the field we continuously see areas where cisco equipment will be rejected and alternative hardware will be purchased due to minor issues.

    This bug will possibly cost Cisco a relatively large project valued at hundreds of thousands of dollars in new hardware sales because of failed compliance testing.

    Leon
    Sent from my android device.

    -----Original Message-----
    From: Cisco Developer Community Forums <cdicuser@developer.cisco.com>
    To: "cdicuser@developer.cisco.com" <cdicuser@developer.cisco.com>
    Sent: Mon, 15 Apr 2013 3:56 PM
    Subject: New Message from Yaw-Ming Chen in Voice Gateway API (VGAPI) - TCL-API: RE: Write RNI

    Yaw-Ming Chen has created a new message in the forum "TCL-API": -------------------------------------------------------------- I only do "set cllInfo(redirectCount) 3"
    The key is it has to be a forwrading call. Once we see  [infotag get leg_redirct _cnt] has a value (not not_present) then we are able to modify it. So I think IOS also check when is allowed to modified this value.

    --
    To respond to this post, please click the following link: http://developer.cisco.com/web/vgapi/community/-/message_boards/view_message/14281589 or simply reply to this email.

    Subject: RE: Write RNI
    Replied by: Yaw-Ming Chen on 15-04-2013 11:50:13 PM
    I don't think I said IOS is not allowed to modify the redirect count. As I mentioned I was able to modified it in certian scenario. I said "I think IOS also check when is allowed to modified this value". Waht I meant maybe when we do ccapi debug we can see something missing there already. If someone can collect enough infomation that we can convince dev team that there is a bug then we will be more than happy to present it to dev team to have a ticket open. Do you mean in this scenario  SIP->IOS->PGW->SS7  (Without Tcl) redirect count cannot be passed  If this is true then Cisco TAC should be able to talk to dev team to open a bug for this scenario. If there is Tcl IVR application involved then need to go thru CDN team. Thanks.