[SR-Users] Trouble with 302 Redirect

David Villasmil david.villasmil.work at gmail.com
Thu Feb 27 09:57:19 CET 2020


AFAIK a 480 is a failed (negative) response, so you’d need yo use either
on_failure or on_branch_failure routes. That’s what they’re there for.

On Thu, 27 Feb 2020 at 08:42, Marco Capetta <mcapetta at sipwise.com> wrote:

> Hi Muhammad,
>
> you can try to use set the 't_on_branch_failure' in your branch and then
> catch the 302 message in the 'event_route[tm:branch-failure:id]'. From
> there you should be able to do what you need.
>
> Regards
> Marco
>
> On 2/26/20 6:37 PM, Muhammad Zaka wrote:
>
> Hi Alex,
>
> We have a similar issue (slightly complex) as it involves sip parallel forking.
>
> The issue is that failure_route[] occurs when all sip forked are exhausted even though "302 Moved Temporarily" has been responded back by one of the SIP endpoint quite quickly.
>
> So, we wish to handle 302 onreply_route[] as it is received quite promptly but as you pointed out Kamailio doesn’t let us set the contact header or append_to_reply.
>
> Please can you suggest me is there any way out we can change the sip contact when using sip parallel forking.
>
> Many Thanks
>
> Regards
> Muhammad Adil M Zaka
>
> -----Original Message-----
> From: sr-users <sr-users-bounces at lists.kamailio.org> <sr-users-bounces at lists.kamailio.org> On Behalf Of Alex Balashov
> Sent: 16 January 2020 22:32
> To: sr-users at lists.kamailio.org
> Subject: Re: [SR-Users] Trouble with 302 Redirect
>
> Try doing this in a failure_route[]; onreply_route[] isn't really meant to transform replies, just to passively observe or drop them.
>
> Also, you'll want to use append_to_reply():
>
>    https://kamailio.org/docs/modules/5.3.x/modules/textops.html#textops.f.append_to_reply
>
> Note that the conditions that give rise to the invocation of a failure_route are broader and somewhat more abstract than any given SIP reply -- e.g. transaction reply timeouts. So, you would want to structure your failure_route like this:
>
>    failure_route[REDIRECT_HANDLE] {
>       if(t_is_canceled())
>          exit;
>
>       if(t_branch_timeout()) {
>          # Handle the timeout case...
> 	
> 	 exit;
>       }
>
>       # Use $T_rpl to access reply code ($rs) and reply reason if needed
>       # ($rs), per:
>       #
>       # https://www.kamailio.org/wiki/cookbooks/5.3.x/pseudovariables#t_rpl_pv
>
>       if($T_rpl($rs) == 486) {
>          append_to_reply("Contact: <sip:...>\r\n");
>          t_reply("302", "Moved Temporarily");
> 	 exit;
>       }
>
>       # Some other case.
>    }
>
> -- Alex
>
> On Thu, Jan 16, 2020 at 03:54:54PM -0500, Jim Leahy wrote:
>
>
> Hi All,
>    I'm having some issues trying to properly send a '302 Moved Temporarily'
> reply to the calling UAC (UAC1) when the remote UAC (UAC2) returns a
> 486 status (Do Not Disturb). The goal is to redirect UAC1 to a
> voicemail server when UAC2 is in DND.
> Here are the pertinent parts of my config:
>
> route {
>         # drop some things right away
>         route(DROP);
>
>         # perform sanity check
>         route(SANITYCHECK);
>
>         # handle registrations
>         if(is_method("REGISTER")) {
>                 route(REGISTRATION);
>                 exit;
>         }
>
>         # handle invites
>         if(is_method("INVITE")) {
>                 route("INVITE");
>                 exit;
>         }
>
>         route(RELAY);
> }
>
> route[INVITE] {
>         # add this proxy to the record-route so it stays in the loop
>         record_route();
>
>         # if we can find this user in the location DB...
>         if(lookup("location")) {
>                 # relay the invite to the new dURI
>                 t_on_failure("FOURDIGITFAIL");
>                 t_on_reply("FOURDIGITREPLY");
>                 route(RELAY);
>                 # go back to the main route
>                 return;
>         }
>
> onreply_route[FOURDIGITREPLY] {
>         if(t_check_status("4[0-9]{2}")) {
>                 t_reply("302", "Moved Temporarily");
>         }
> }
>
> I'm having issues with the t_reply in the onreply_route. It
> successfully sends the reply, but I can't seem to set the Contact
> header properly. I'm trying to set it to the location of the user's
> mailbox on the voicemail sever (ie sip:1000 at vmpbx.domain.com), but nothing I try works. I've tried:
>      remove_hf("Contact");
>      insert_hf("Contact: sip:1000 at vmpbx.domain.com");
>      t_reply("302", "Moved Temporarily");
>
> But as I understand it, that just changes the header in the reply from
> UAC2, not the reply I'm sending to UAC1
>
> Then I tried:
>      append_to_reply("Contact: sip:1000 at vmpbx.domain.com" );
>      t_reply("302", "Moved Temporarily");
>
> But I can't use append_to_reply in an onreply block.
> How can I change the Contact header in the reply that's sent? Am I
> just going about this the wrong way? Any help would be appreciated.
> Thanks
>
> _______________________________________________
> Kamailio (SER) - Users Mailing Listsr-users at lists.kamailio.orghttps://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>
> --
> Alex Balashov | Principal | Evariste Systems LLC
>
> Tel: +1-706-510-6800 / +1-800-250-5920 (toll-free)
> Web: http://www.evaristesys.com/, http://www.csrpswitch.com/
>
> _______________________________________________
> Kamailio (SER) - Users Mailing Listsr-users at lists.kamailio.orghttps://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
> _______________________________________________
> Kamailio (SER) - Users Mailing Listsr-users at lists.kamailio.orghttps://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>
>
> --
> * Marco Capetta *
> VoIP Developer
>
> Sipwise GmbH <http://www.sipwise.com> , Campus 21/Europaring F15
> <https://www.google.com/maps/search/21%2FEuroparing+F15+%0D%0A++++++++++AT-2345+Brunn+am+Gebirge?entry=gmail&source=g>
> AT-2345 Brunn am Gebirge
> <https://www.google.com/maps/search/21%2FEuroparing+F15+%0D%0A++++++++++AT-2345+Brunn+am+Gebirge?entry=gmail&source=g>
>
> Phone:  +43(0)1 301 2044 <+4313012044>
> Email:  mcapetta at sipwise.com
> Website:  www.sipwise.com
>
> Particulars according Austrian Companies Code paragraph 14
> "Sipwise GmbH" - Europaring F15 - 2345 Brunn am Gebirge
> FN:305595f, Commercial Court Vienna, ATU64002206
> _______________________________________________
> Kamailio (SER) - Users Mailing List
> sr-users at lists.kamailio.org
> https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>
-- 
Regards,

David Villasmil
email: david.villasmil.work at gmail.com
phone: +34669448337
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20200227/a2afd3c3/attachment.html>


More information about the sr-users mailing list