[SR-Users] remove_hf_value
Daniel-Constantin Mierla
miconda at gmail.com
Mon Mar 23 09:08:39 CET 2015
Hello,
you remove header Route and insert header Record-Route, is it what you
wanted to do? Maybe removing same Record-Route header, but be careful in
the case you have more than one proxy in the chain of signaling.
Cheers,
Daniel
On 22/03/15 18:32, Slava Bendersky wrote:
> Hello Daniel,
> I end up insert routes like this. And right now on client side I see
> only public ip route and private side only private ip routes.
>
> route[ROUTE_HDR_ORG] {
> # Getting record routes
> if(is_present_hf("Route")) {
> xlog("L_INFO", "[$rm], Inbound connection from <$si>\n");
> if(is_method("NOTIFY")) {
> if(is_ip_rfc1918($si)) {
> xlog("L_INFO", "[$rm], Present Route:
> $(route_uri{uri.host})\n");
> remove_hf("Route");
> insert_hf("Record-Route: <"sip" +
> $sel(cfg_get.kamailio.bindpublicip) + ":"
> $sel(cfg_get.kamailio.bindpublicport);transport=tcp;lr=on;ftag=$ft;nat=yes>\r\n");
> $fs = "tcp" + ":"
> + $sel(cfg_get.kamailio.bindpublicip) + ":" +
> $sel(cfg_get.kamailio.bindpublicport);
> } else {
> xlog("L_INFO", "[$rm], Present Route:
> $(route_uri{uri.host})\n");
> remove_hf("Route");
> insert_hf("Record-Route: <"sip" + ":"
> $sel(cfg_get.kamailio.bindip) + ":"
> + $sel(cfg_get.kamailio.bindport);lr=on;ftag=$ft;nat=yes>\r\n");
> $fs = "udp" + ":" +
> $sel(cfg_get.kamailio.bindip) + ":" + $sel(cfg_get.kamailio.bindport);
> }
> }
> }
> }
>
> And for initial SUBSCRIBE INVITE
>
> if (is_method("INVITE|SUBSCRIBE")) {
> remove_hf("Route");
> insert_hf("Record-Route: <"sip" + ":" +
> $sel(cfg_get.kamailio.bindip) + ":" +
> $sel(cfg_get.kamailio.bindport);lr=on;ftag=$ft;nat=yes>\r\n");
> #record_route();
> }
>
>
> Slava.
>
> ------------------------------------------------------------------------
> *From: *"Daniel-Constantin Mierla" <miconda at gmail.com>
> *To: *"Slava Bendersky" <volga629 at networklab.ca>, "sr-users"
> <sr-users at lists.sip-router.org>
> *Sent: *Wednesday, March 18, 2015 4:15:28 AM
> *Subject: *Re: [SR-Users] remove_hf_value
>
> Hello,
>
> but the INVITE request goes out with 2 Record Route headers, if you
> get them in the 200ok.
>
> Not sure how it is going to work overall, you will have to manually
> set local sockets for requests within dialog, because you are doing
> also trasport layer gatewaying (tcp-udp).
>
> Anyhow, as a solution, maybe you should just not be using
> record_route() function and just add the header with insert_hf() for
> the invite, remove the Record-Route header for 200ok with remove_hf()
> and insert a new one again with insert_hf()
>
> If you know the local address (IP/port/transport) you want to put in
> the Record-Route, you can build the header as:
>
> insert_hf("Record-Route:
> <sip:_LOCAL_IP_:_LOCAL_PORT_;transport=_LOCAL_TRANSPORT_;lr=on;ftag=$ft;nat=yes>\r\n");
>
> Requests within the dialog can be handled with loose_route(), but
> again, you have to do more in config for selecting the local socket to
> send to next hop.
>
> Cheers,
> Daniel
>
> On 16/03/15 13:35, Slava Bendersky wrote:
>
> Hello Daniel,
> I want do clean up on routes from first SUBSCRIBE, that when
> traffic goes to public side of kamailio will be only public route
> and when traffic is internal the Record-Route will stay internal
> only. In SDP I see like this.
> I tired double routes set 0 in rr, but didn't clean enough.
>
> <--- Transmitting (NAT) to 10.18.130.46:5060 --->
> SIP/2.0 200 OK
> Via: SIP/2.0/UDP
> 10.18.130.46;branch=z9hG4bKf852.e0223f39c2bbad8366fdf1b7cb22b336.0;i=8;received=10.18.130.46;rport=5060
> Via: SIP/2.0/TCP
> 192.168.88.252:5062;received=client_pub_ipbranch=z9hG4bK0bbe1f7d27257bba9;rport=5062
> Record-Route:
> <sip:10.18.130.46;r2=on;lr=on;ftag=a185d974ec;nat=yes> On public
> side remote this Record-Route
> Record-Route:
> <sip:kamailio_pub_ip:5084;transport=tcp;r2=on;lr=on;ftag=a185d974ec;nat=yes>
> On private side remote this Record-Route
> From: "Slava Bendersky" <sips:10101 at networklab.ca>;tag=a185d974ec
> To: <sips:10101 at networklab.ca>;tag=as00757d3e
> Call-ID: b08adb1ad1804a83
> CSeq: 236711034 SUBSCRIBE
> Server: FPBX-2.11.0(11.15.1)
> Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE,
> NOTIFY, INFO, PUBLISH, MESSAGE
> Supported: replaces, timer
> Expires: 3600
> Contact: <sip:10101 at 10.18.130.50:5060>;expires=3600
> Content-Length: 0
>
>
> Slava.
>
> ------------------------------------------------------------------------
> *From: *"Daniel-Constantin Mierla" <miconda at gmail.com>
> *To: *"sr-users" <sr-users at lists.sip-router.org>
> *Sent: *Monday, March 16, 2015 7:01:54 AM
> *Subject: *Re: [SR-Users] remove_hf_value
>
> Hello,
>
> can you give an example of incoming header and how you want to be
> after modification?
>
> It is not clear for me what end result you want/expect.
>
> Cheers,
> Daniel
>
> On 14/03/15 06:41, Slava Bendersky wrote:
>
> Hello Everyone,
> Here updated version. Trying remove Record-Route after the coma.
> My log shows
>
> Mar 14 01:25:21 canlvprx01 /usr/sbin/kamailio[751]: INFO:
> <script>: [SUBSCRIBE], Inbound connection from <Client Public IP>
> Mar 14 01:25:21 canlvprx01 /usr/sbin/kamailio[751]: ERROR:
> <script>: <null>
> Mar 14 01:25:21 canlvprx01 /usr/sbin/kamailio[751]: INFO:
> <script>: [SUBSCRIBE], Route for removal: '<null>'
>
> route snippet.
>
> route[ROUTE_HDR_ORG] {
> # Getting record routes
> if(is_present_hf("Route")) {
> xlog("L_INFO", "[$rm], Inbound connection from
> <$si>\n");
> if(is_method("SUBSCRIBE")) {
> if(is_ip_rfc1918($si)) {
>
> xlog("$sel(@hf_value.Record_Route[-1])");
> xlog("L_INFO", "[$rm], Route
> for removal: '$sel(@hf_value.Record_Route[-1])'\n");
>
> remove_hf_value("Record-Route[-1]");
> } else {
>
> xlog("$sel(@hf_value.Record_Route[1])");
> xlog("L_INFO", "[$rm], Route
> for removal: '$sel(@hf_value.Record_Route[1])'\n");
>
> remove_hf_value("Record-Route[1]");
> }
> }
> }
> return;
> }
>
>
> Slava,
> ------------------------------------------------------------------------
> *From: *"Slava Bendersky" <volga629 at networklab.ca>
> *To: *"sr-users" <sr-users at lists.sip-router.org>
> *Sent: *Friday, March 13, 2015 1:00:44 PM
> *Subject: *[SR-Users] remove_hf_value
>
> Hello Everyone,
> I am trying adjust Record-Route, but can't match headers value
>
> And I am call route(ROUTE_HDR_ORG); right after route(WITHINDLG);
>
> route[ROUTE_HDR_ORG] {
> # Getting record routes
> if(is_present_hf("Record-Route")) {
> if(is_method("SUBSCRIBE")) {
> xlog("$sel(@hf_value.Record_Route[1])");
> xlog("L_INFO", "[$rm], Route for
> removal: '$sel(@hf_value.Record_Route[1])'\n");
> remove_hf_value("Record-Route[1]");
> }
> }
> return;
> }
>
> Any help Thank you,
> Slava.
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users
> mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>
> --
> Daniel-Constantin Mierla
> http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
> Kamailio World Conference, May 27-29, 2015
> Berlin, Germany - http://www.kamailioworld.com
>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing
> list
> sr-users at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>
> --
> Daniel-Constantin Mierla
> http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
> Kamailio World Conference, May 27-29, 2015
> Berlin, Germany - http://www.kamailioworld.com
>
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio World Conference, May 27-29, 2015
Berlin, Germany - http://www.kamailioworld.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20150323/4fb5c642/attachment.html>
More information about the sr-users
mailing list