Hi All,
I am trying to implement serial forking and am using the example on voice-systems website as a guide. The problem I am experiencing is as follows.


Failure route rewrite ruri with the next uri to try and calls route[17]
route 17 performs a lookup("location"), finds the usrloc information and rewrites ruri, however, when t_relay is called it uses the original ruri (one before the lookup) to do t_relay.


Another issue I'm experiencing is that when processing call after failure route, ruri_user_avp. Once i rewrite the uri in failure route, I have to use the following to manually write a value for ruri_user_avp. Can someone explain why this is happening?

Thanks in advance for your help!!

--
Zahid
]


Some relevant config and debug  info:


modparam("lcr", "gw_uri_avp", "1400")
modparam("lcr", "ruri_user_avp", "1402")

route[18] {    # used to process pstn/ off system calls
......

if (!is_avp_set("$avp(i:1402)")) {
        xlog("L_INFO","$ci: route[22] ** setting ruri_user_avp **\n");
        $avp(i:1402) = $rU;
xlog("L_INFO","$ci: route[22] ** setting ruri_user_avp = $avp (i:1402) **\n");
    }
........

} #end route 18


route[11] {
# load all numbers asscociated with the pilot number in $avp (serial_fork) array xlog("L_INFO","$ci: route[11] - M=$rm RURI=$ru F=$fu T=$tu IP=$si \n");
      $avp(serial_fork) = "sip:*6" + $rU + "@sipdev.oursiphost.com";
if (avp_db_query("select username from fork where pilot = $rU order by pri" , "$avp(serial_fork)")) { xlog("L_INFO", "route[11] $ci: method $rm r-uri <$ru> \n"); xlog("L_INFO", "route[11] serial_fork = $avp (serial_fork) remote-user = $rU \n");
              t_on_failure("5");
              route(17);
              exit;
      } else {
xlog("L_ERR", "route[11] failed to load serial_fork info.\n");
      }
      avp_print();   # debugging only
      setflag(8);
} # end of route[11]


route[17] {
xlog("L_INFO","$ci: route[17] - M=$rm RURI=$ru F=$fu T=$tu IP=$si \n");
     $avp(s:inv_timeout) = "10";
if (lookup("location")) { # currently online registered UA. xlog("L_INFO","$ci: route[17] - M=$rm RURI=$ru F=$fu T=$tu IP=$si -- inside location lookup \n");
        if (!t_relay()) {
            sl_reply_error();
        };
        return;
    } else {                                # not online
        if (does_uri_exist()) {         # but exists
            xlog("L_INFO", "$ci: Subscriber is offline [$ru]\n");
            sl_send_reply("480", "Temporarily Unavailable.");
            return;
        }
xlog("L_INFO","$ci: route[17] - M=$rm RURI=$ru F=$fu T=$tu IP=$si -- outside location lookup \n");
    };
    if (uri=~"^sip:(([0-9()+-])|(%20))+@") {
        subst_user('/[()+-]//g');   # strip out the punctuation.
        subst_user('/%20//g');  # strip out the white space.
route(18); # all numerics just go to route(18) -- off system calls
        return;
    };
} # end route[17]

failure_route[5] {
xlog("L_INFO","$ci: failure_route[5] - M=$rm RURI=$ru F=$fu T=$tu IP=$si\n");
        avp_print();
        if (avp_pushto("$ruri", "$avp(serial_fork)")) {
                append_branch();
xlog("L_INFO","$ci: failure_route[5] $rm r-uri <$ru> from <$fu> to <$tu>\n");
                avp_delete("$avp(serial_fork)");
                t_on_failure("5");
                route(17);
       } else {
xlog("L_INFO","$ci: failure_route[5] $rm r-uri <$ru> from <$fu> to <$tu>\n");
        }
}



Debug info


Aug 31 10:54:56 mousse openser[6815]: a410a3c1- [EMAIL PROTECTED]: failure_route[5] - M=INVITE RURI=sip: [EMAIL PROTECTED]:8891 F=sip:[EMAIL PROTECTED] T=sip: [EMAIL PROTECTED];user=phone IP=10.1.12.174 Aug 31 10:54:56 mousse openser[6815]: INFO:avpops:print_avp: p=0xb6039c28, flags=0x0003 Aug 31 10:54:56 mousse openser[6815]: INFO: name=<inv_timeout> Aug 31 10:54:56 mousse openser[6815]: INFO: val_str=<10 / 2> Aug 31 10:54:56 mousse openser[6815]: INFO:avpops:print_avp: p=0xb6039bf0, flags=0x0002
Aug 31 10:54:56 mousse openser[6815]: INFO:                     id=<655>
Aug 31 10:54:56 mousse openser[6815]: INFO: val_str=<sip:[EMAIL PROTECTED] / 29> Aug 31 10:54:56 mousse openser[6815]: INFO:avpops:print_avp: p=0xb6039bb8, flags=0x0002
Aug 31 10:54:56 mousse openser[6815]: INFO:                     id=<655>
Aug 31 10:54:56 mousse openser[6815]: INFO: val_str=<sip:[EMAIL PROTECTED] / 29> Aug 31 10:54:56 mousse openser[6815]: INFO:avpops:print_avp: p=0xb6039b80, flags=0x0002
Aug 31 10:54:56 mousse openser[6815]: INFO:                     id=<655>
Aug 31 10:54:56 mousse openser[6815]: INFO: val_str=<sip:[EMAIL PROTECTED] / 29> Aug 31 10:54:56 mousse openser[6815]: INFO:avpops:print_avp: p=0xb6039b48, flags=0x0002
Aug 31 10:54:56 mousse openser[6815]: INFO:                     id=<655>
Aug 31 10:54:56 mousse openser[6815]: INFO: val_str=<sip:[EMAIL PROTECTED] / 31> Aug 31 10:54:56 mousse openser[6815]: INFO:avpops:print_avp: p=0xb6039b18, flags=0x0083 Aug 31 10:54:56 mousse openser[6815]: INFO: name=<is_pilot> Aug 31 10:54:56 mousse openser[6815]: INFO: val_str=<y / 1> Aug 31 10:54:56 mousse openser[6815]: DEBUG:avpops:pushto_avps: 1 avps were processed Aug 31 10:54:56 mousse openser[6815]: ******* setting for branch 0 flags 0 Aug 31 10:54:56 mousse openser[6815]: a410a3c1- [EMAIL PROTECTED]: failure_route[5] INVITE r-uri <sip: [EMAIL PROTECTED]> from <sip:[EMAIL PROTECTED]> to <sip:[EMAIL PROTECTED];user=phone> Aug 31 10:54:56 mousse openser[6815]: DEBUG:avpops:delete_avps: 1 avps were removed Aug 31 10:54:56 mousse openser[6815]: a410a3c1- [EMAIL PROTECTED]: route[17] - M=INVITE RURI=sip: [EMAIL PROTECTED] F=sip:[EMAIL PROTECTED] T=sip: [EMAIL PROTECTED];user=phone IP=10.1.12.174 Aug 31 10:54:56 mousse openser[6815]: rewrite_uri: Rewriting Request- URI with 'sip:[EMAIL PROTECTED]:8891' Aug 31 10:54:56 mousse openser[6815]: a410a3c1- [EMAIL PROTECTED]: route[17] - M=INVITE RURI=sip: [EMAIL PROTECTED]:8891 F=sip:[EMAIL PROTECTED] T=sip: [EMAIL PROTECTED];user=phone IP=10.1.12.174 -- inside location lookup Aug 31 10:54:56 mousse openser[6815]: DEBUG: mk_proxy: doing DNS lookup... Aug 31 10:54:56 mousse openser[6815]: DEBUG:sip_resolvehost2: no port, no proto -> do NAPTR lookup! Aug 31 10:54:56 mousse openser[6815]: DEBUG:filter_and_sort_naptr: found valid SIP+D2U -> _sip._udp.sipdev.oursiphost.com Aug 31 10:54:56 mousse openser[6815]: DEBUG:do_srv_lookup: SRV (_sip._udp.sipdev.oursiphost.com) = mousse.cc.oursiphost.com:5060
Aug 31 10:54:56 mousse openser[6815]: DEBUG:sip_resolvehost2: found!
Aug 31 10:54:56 mousse openser[6815]: check_via_address(10.1.12.174, 10.1.12.174, 0) Aug 31 10:54:56 mousse openser[6815]: DEBUG:tm:set_timer: relative timeout is 500000 Aug 31 10:54:56 mousse openser[6815]: DEBUG: add_to_tail_of_timer[4]: 0xb6039eb4 (61500000) Aug 31 10:54:56 mousse openser[6815]: DEBUG:tm:set_timer: relative timeout is 30 Aug 31 10:54:56 mousse openser[6815]: DEBUG: add_to_tail_of_timer[0]: 0xb6039ed0 (91) Aug 31 10:54:56 mousse openser[6815]: DEBUG:tm:relay_reply: branch=0, save=1, relay=-1 >, CSEQ_N=<CSeq: 1> [EMAIL PROTECTED];user=phone>ocal: using FROM=<From: "Zahid 10510" <sip: [EMAIL PROTECTED]>;tag=BF787F6-F6DD44ED Aug 31 10:54:56 mousse openser[6815]: DEBUG: cancel_branch: sending cancel... Aug 31 10:54:56 mousse openser[6815]: DEBUG:tm:set_timer: relative timeout is 500000 Aug 31 10:54:56 mousse openser[6815]: DEBUG: add_to_tail_of_timer[4]: 0xb6039e20 (61500000) Aug 31 10:54:56 mousse openser[6815]: DEBUG:tm:set_timer: relative timeout is 30 Aug 31 10:54:56 mousse openser[6815]: DEBUG: add_to_tail_of_timer[0]: 0xb6039e3c (91)


_______________________________________________
Users mailing list
Users@openser.org
http://openser.org/cgi-bin/mailman/listinfo/users

Reply via email to