Thanks Ben, I understand now. Perfect.
David On Thu, 3 Jun 2021 at 14:24, Ben Newlin <[email protected]> wrote: > Yes, if a reply route is armed or the global reply route exists, they are > triggered first for any reply. Failure route, if armed, is triggered after > that for any >=300 response codes. > > > > Ben Newlin > > > > *From: *Users <[email protected]> on behalf of David > Villasmil <[email protected]> > *Date: *Thursday, June 3, 2021 at 8:10 AM > *To: *OpenSIPS users mailling list <[email protected]> > *Subject: *Re: [OpenSIPS-Users] Getting header from 302 > > Oh I didn’t register that <reply> param. I’ll try with that. > > On the other hand, I may be confused about how opensips processes >299 > replies. Does it process them on onreply route and then goes to the failure > route? I mean that’s what I’m doing right now, but is this intended by > design? I would’ve though it’d go straight to the failure route, but > actually going to the onreply route sounds smart. > > > > On Wed, 2 Jun 2021 at 22:08, Jeff Pyle <[email protected]> wrote: > > I've been working on a proxy to sit between MS Teams and "normal" SIP > stacks. Teams sends way too many 180s and RTP-less 183s so I sanitize them > like this: > > onreply_route[relay_reply] { > if (t_check_status("180")) { > if (isflagset("GOT_180")) { > drop; > } else { > setflag("GOT_180"); > } > } > > if (isflagset("GOT_180") && t_check_status("183")) { > drop; > } > > } > > > > With this I stop superfluous 18x messages from being relayed downstream. > The 'drop' here kills the message completely. You could include the drop > if you want to stop the message from being relayed (which you probably do) > and are finished processing it in the script (which you are probably not). > > > > If I understand your application correctly, I'd populate the AVP in the > reply route and do everything else in the failure route. Or, try Liviu's > suggestion of using $(<reply>hdr(Identity)) in the failure_route directly. > Either way, then continue in the failure_route to do whatever else needs to > happen. > > > > > > - Jeff > > > > > > > > On Wed, Jun 2, 2021 at 2:10 PM David Villasmil < > [email protected]> wrote: > > Hello Jeff, > > > > That's exactly what I'm doing: > > > > # Relay to REDIRECT server > route[relay_to_REDIRECT] > { > t_on_reply("reply_from_REDIRECT"); > t_on_failure("failure_from_REDIRECT"); > > xlog("L_ERR", "[$ci][$rm]: Relaying to REDIRECT"); > if (!t_relay()) { > xlog("L_ERR", "[$ci][$rm]: unable to relay request $ru to $tU -- > replying with error"); > sl_reply_error(); > } > > exit; > } > > # Response from REDIRECT will come in here. > failure_route[failure_from_REDIRECT] > { > xlog("L_ERR", "[$ci][$rm]: I'm in > failure_route[failover_from_REDIRECT]"); > if (t_was_cancelled()) { > exit; > } > > if(is_avp_set("$avp(myheader)")) { > xlog("L_ERR", "[$ci][$rm]: Got Identity Header: $(hdr(myheader))"); > setflag(100); > route(invite); > } > } > > # Response 302 from REDIRECT will come in here. > onreply_route[reply_from_REDIRECT] > { > xlog("L_ERR", "[$ci][$rm]: I'm in onreply_route[reply_from_REDIRECT]"); > if (t_was_cancelled()) { > exit; > } > > # detect redirect, store the header and send to "invite" as normally > if (t_check_status("302") && is_present_hf("myheader")) { > $avp(identity_header) = $(hdr(myheader)); > setflag(100); > drop(); > } > } > > > > So I suppose i don't need the drop()? > > > > Regards, > > > > David Villasmil > > email: [email protected] > > phone: +34669448337 > > > > _______________________________________________ > Users mailing list > [email protected] > http://lists.opensips.org/cgi-bin/mailman/listinfo/users > -- Regards, David Villasmil email: [email protected] phone: +34669448337
_______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
