Yes, the remove_hf() et al. functions are designed to operate on requests. Only a small subset of textops-family manipulation functions operate on replies, and they should be explicitly labelled or named in a way that reflects that.
I can't say I understand the scenario you've outlined, either, but prima facie, it seems bizarre. Why would you put the Path value into a 302 redirect? The Path value simply provides a next-hop in a trapezoid where the registrar is reached indirectly through an intermediate proxy. It may be the case that you're doing something in a roundabout way that routes around the simpler, "baked in" scenarios Kamailio is prepared to handle... -- Alex > On 27 Oct 2023, at 10:23, Jawaid Bazyar via sr-users > <sr-users@lists.kamailio.org> wrote: > > Hi Henning, thanks for your reply. > I have successfully used PATH before as you describe. > This model, however, I am having Kamailio issue a 302 Redirect, and, I need > to take the recorded PATH information and put it into the 302 Redirect > Contact field, to send back with sl_send_reply. Sl_send_reply does not seem > to do that automatically even after a lookup() and reg_fetch. > I was able to figure out the textops transforms and get the data into a > Contact header, though I’m not 100% confident I’m creating a correct Contact, > as sometimes the PATH can be quite complex and I’m taking only the host part > and reconstructing a contact from that. I guess I will have to scour the RFC > and do some learning 😊 > I was hoping this particular scenario had been baked into Kamailio > previously and I just needed to find the right configuration options to > exercise it. > On my second issue: > I am left however with an inability to remove the existing Contact from the > reply. I tried remove_hf before sl_send_reply, but either it doesn’t remove > the Contact field, or, sl_send_reply adds the Contact field. > From: Henning Westerholt <h...@gilawa.com> > Date: Friday, October 27, 2023 at 10:10 AM > To: "Kamailio (SER) - Users Mailing List" <sr-users@lists.kamailio.org> > Cc: Jawaid Bazyar <baz...@gmail.com> > Subject: RE: Registrar / Path > Hello, > I probably failed to understand your scenario completely. > But basically, if you want to just forward REGISTER message from one > Kamailio to the other, you can use “forward()” or “r_relay()” for stateless > respectively stateful forwarding. The path extension was designed to take > the same way routing e.g. an INVITE to an user agent as it came through your > infrastructure. It will work automatically by setting the destination URI if > it path is set and you are using the “lookup(..)” function. > Cheers, > Henning > -- Henning Westerholt – https://skalatan.de/blog/ > Kamailio services – https://gilawa.com > From: Jawaid Bazyar via sr-users <sr-users@lists.kamailio.org> > Sent: Mittwoch, 25. Oktober 2023 21:54 > To: sr-users@lists.kamailio.org > Cc: Jawaid Bazyar <baz...@gmail.com> > Subject: [SR-Users] Registrar / Path > Hi, > I have a scenario where I have an edge proxy (named RS), which locally > stores registrations from Endpoints in its USRLOC, but which then also > forward's REGISTER requests on to another proxy (named CN), which stores > registrations in its USRLOC. (which then does DMQ with another CN like it). > Both RS and CN are storing Path information, for example: > kamctl ul show displays on both RS and CN: > "Path": "sip:vs-rs01.blah.foo.bar;lr;received=sip:3.4.5.6:33577", > So I know the path info is in there. > I want CN , when presented with an INVITE, to reply with a 302 Redirect. > Right now I have this: > if (!lookup("location",sip:$tU@nodomain)) { > } > reg_fetch_contacts("location", "$tu", "called"); > xlog("location info $ulc(called=>path)"); > sl_send_reply("302","Redirect"); > and the xlog does display the path. Good, so I have it being sent all the > way through RS and CN and into CN’s USRLOC. > but this isn’t complete. > I am now faced with two issues. > One, I need to mangle the Path into a Contact header for the Redirect. > Two, I need to delete the Contact header that sl_send_reply is putting on > there, which is the Contact as RS sees it from the endpoint. This needs to be > removed and replaced with a Contact of only the RS server. > It feels like there ought to be a simpler way to do this than parsing the > Path string and reassembling a Contact from it, but if there is it's not > readily apparent. Both Google and chatgpt have failed me :) > Thanks in advance, > Jawaid > __________________________________________________________ > Kamailio - Users Mailing List - Non Commercial Discussions > To unsubscribe send an email to sr-users-le...@lists.kamailio.org > Important: keep the mailing list in the recipients, do not reply only to the > sender! > Edit mailing list options or unsubscribe: -- Alex Balashov Principal Consultant Evariste Systems LLC Web: https://evaristesys.com Tel: +1-706-510-6800 __________________________________________________________ Kamailio - Users Mailing List - Non Commercial Discussions To unsubscribe send an email to sr-users-le...@lists.kamailio.org Important: keep the mailing list in the recipients, do not reply only to the sender! Edit mailing list options or unsubscribe: