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:

Reply via email to