Hello all,<br><br>I've questions 'bout the redirect/forward with 30x requests.<br><br>Actually, it does not work, it seems the uac redirect module doesn' t use the new contact for the new invite.<br><br>simple schema : pstn gw -> kamailio -> linksys -> call forward unconditionnal to another pstn number -> kamailio -> gw pstn<br>
<br>the 302 as seen with ngrep tool :<br><br>#SIP/2.0 302 Moved Temporarily.<br>#To: <sip:B@sip_proxy;user=phone>;tag=91515579fff6b8d1i0.<br>#From: <sip:A@pstn_gw1;user=phone>;tag=16627-UI-00020cf3-54eea92c4.<br>
#Call-ID: 16627-RO-00020cf2-4186e9762@pstn_gw1.<br>#CSeq: 81990 INVITE.<br>#Via: SIP/2.0/UDP sip_proxy;branch=z9hG4bK0f0c.22989b87.1.<br>#Via: SIP/2.0/UDP pstn_gw1:5060;rport=5060;received=ip_pstn_gw1;branch=z9hG4bK-25EA-243F3.<br>
#Record-Route: <sip:sip_proxy;lr=on;ftag=16627-UI-00020cf3-54eea92c4;did=f65.bcc44f06>.<br>#Contact: <sip:C@sip_proxy>.<br>#Diversion: "B" <sip:B@sip_proxy>;reason=unconditional.<br>#Server: Linksys/SPA942-6.1.3(a).<br>
<br>DBG:uac_redirect:shmcontact2dset: adding contact <sip:C@sip_proxy> <br>dest set : Contact: sip:B@ip_B, <sip:C@sip_proxy>;q=0.01<br>contact $ct: <sip:pstn_gw1:5060><br><br>the second pstn gateway received a request to B, and not C (so it creates a loop through pstn ...).<br>
<br>in my config :<br><br>loadmodule "uac.so"<br>modparam("uac", "rr_store_param", "vsf")<br>modparam("uac", "from_restore_mode", "auto")<br><br>loadmodule "uac_redirect.so"<br>
modparam("uac_redirect", "default_filter", "accept")<br>modparam("uac_redirect","bflags", 1)<br><br>loadmodule "diversion.so"<br><br>failure_route[2]<br>{<br>Â Â Â Â Â Â Â setdebug(4);<br>
<br>Â Â Â Â Â Â Â if (t_check_status("301|302"))<br>Â Â Â Â Â Â Â {<br>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â route(26)Â Â Â Â # acc fwd<br>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â $avp(s:acc_status) = "cfu";<br><br>Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â if (!get_redirects("2:1"))<br>
               {<br>                       xlog("L_NOTICE", "failed to extract contact info from 30x header");<br>                       route(10);     # stop rtp<br>                       t_reply("480", "Temporarily Unavailable");<br>
                       exit;<br>               }<br><br>               # flag 3xx status, open a new branch and back to find the new callee<br>               setflag(28);<br>               append_branch();<br>               t_on_branch("1");<br>
               route(3);    # search the new callee<br>               setdebug();<br>               exit;<br>       }<br><br>       t_on_branch("1");<br>       setdebug();<br>       route(3);      # find callee <br>
       route(12);     # local outbound<br>       route(10);     # stop rtp<br>}<br><br>I'm using lcr module to route calls, kamailio v. 1.5.3.<br><br>I've another question, is the 30x always considered as a failure_route ?<br>
<br>Any help and/or explanations about the tricks would be really appreciated ... thanks,<br><br clear="all">--<br>Samuel MULLER<br><a href="mailto:sml@l33.fr">sml@l33.fr</a><br>