[SR-Users] loose_route() and FQDN

Igor Olhovskiy igorolhovskiy at gmail.com
Mon May 10 08:55:05 CEST 2021


Sergiu,

Actually, yes

Problem is in order of checking in this function

https://github.com/kamailio/kamailio/blob/02240711239149e2f5c4890a70ab158d10fa8187/src/modules/siputils/sipops.c#L183

         if (((ip = str2ip(&(puri.host))) == NULL)
                 && ((ip = str2ip6(&(puri.host))) == NULL)) {
             LM_DBG("uri host is not an ip address\n");
             return -1;
         }

So, it's checking if Record-Route is an IP address before actually 
calling *check_self()* function. I'll add an issue.

Regards,
Igor

On 08.05.2021 02:42, Sergiu Pojoga wrote:
> May be related to a previous topic about is_first_hop() and 'myself'
>
> https://lists.kamailio.org/pipermail/sr-users/2018-October/103261.html 
> <https://lists.kamailio.org/pipermail/sr-users/2018-October/103261.html>
>
> On Fri, May 7, 2021 at 7:22 PM David Villasmil 
> <david.villasmil.work at gmail.com 
> <mailto:david.villasmil.work at gmail.com>> wrote:
>
>
>     Can you share a trace?
>
>     On Fri, 7 May 2021 at 21:12, Igor Olhovskiy
>     <igorolhovskiy at gmail.com <mailto:igorolhovskiy at gmail.com>> wrote:
>
>         Yes. It passesuri == myself condition on auth.
>
>         Regards,
>         Igor
>
>         On 07.05.2021 17:32, David Villasmil wrote:
>>         Have you tried verifying Kamailio actually believes the FQDN
>>         is itself?
>>
>>         Regards,
>>
>>         David Villasmil
>>         email: david.villasmil.work at gmail.com
>>         <mailto:david.villasmil.work at gmail.com>
>>         phone: +34669448337
>>
>>
>>         On Fri, May 7, 2021 at 4:18 PM Igor Olhovskiy
>>         <igorolhovskiy at gmail.com <mailto:igorolhovskiy at gmail.com>> wrote:
>>
>>             David,
>>
>>             Yes, I did added it, means it was there, but
>>             is_first_hop() was blocking adding it. I think it's some
>>             leftovers from default config.
>>
>>             So, my conclusion, that is_first_hop() is ok with IP
>>             addresses, but not ok with FQDN in route. Although FQDN
>>             is added as alias
>>
>>             Regards,
>>             Igor
>>
>>             On 07.05.2021 16:07, David Villasmil wrote:
>>>             Did you add the handle_ruri_alias() as suggested by
>>>             Daniel? I had something like this where I would get
>>>             “unable to resolve blah blah blah" and it’s because the
>>>             RURI is the actual wss “address” which is unresolvable,
>>>             so executing the function forces kamailio to take the
>>>             alias instead.
>>>
>>>
>>>             On Fri, 7 May 2021 at 13:48, Igor Olhovskiy
>>>             <igorolhovskiy at gmail.com
>>>             <mailto:igorolhovskiy at gmail.com>> wrote:
>>>
>>>                 Daniel,
>>>
>>>                 Seems to be it's really the case, but with other
>>>                 function
>>>
>>>                 With FQDN in RR
>>>
>>>
>>>                       |is_first_hop()|
>>>
>>>                 is not acting correctly for reply.
>>>
>>>>                 For incoming SIP replies, it means that top
>>>>                 Record-Route URI is 'myself' and source address is
>>>>                 not matching it
>>>                 But in Record-Route we have "myself", but
>>>                 *is_first_hop()* returning 0.
>>>
>>>                 Thanks!
>>>
>>>                 Regards,
>>>                 Igor
>>>
>>>                 On 07.05.2021 14:22, Daniel-Constantin Mierla wrote:
>>>>
>>>>                 OK, because looping was something that should not
>>>>                 have happened in this case.
>>>>
>>>>                 Then the problem is that you do not do
>>>>                 nat-traversal-like processing for websocket/webrtc
>>>>                 traffic. You have to use set_contact_alias() +
>>>>                 handle_ruri_alias() because the webrtc endpoints do
>>>>                 not set "valid" contact addresses.
>>>>
>>>>                 Cheers,
>>>>                 Daniel
>>>>
>>>>                 On 07.05.21 14:13, Igor Olhovskiy wrote:
>>>>>
>>>>>                 Ah, no, sorry, I was wrong at this one,
>>>>>
>>>>>                 This just is not sent with "unable to resolve
>>>>>                 address toleivu2gdbh.invalid".
>>>>>
>>>>>                 Sorry. Looping were something else during my
>>>>>                 tests, this just with *advertise* added
>>>>>
>>>>>                 Regards,
>>>>>                 Igor
>>>>>                 On 07.05.2021 14:02, Daniel-Constantin Mierla wrote:
>>>>>>
>>>>>>                 This looks like incoming ACK, because there is
>>>>>>                 only one Via header, so it is not what proxy
>>>>>>                 forwards -- that one is relevant to see what
>>>>>>                 headers were consumed and added.
>>>>>>
>>>>>>                 Cheers,
>>>>>>                 Daniel
>>>>>>
>>>>>>                 On 07.05.21 13:51, Igor Olhovskiy wrote:
>>>>>>>                 Sure.
>>>>>>>
>>>>>>>                 ACK sip:88290 at toleivu2gdbh.invalid;transport=wss
>>>>>>>                 SIP/2.0
>>>>>>>                 Via: SIP/2.0/UDP
>>>>>>>                 A_IP_ADDRESS:5060;rport;branch=z9hG4bKPj8d05548a-91ef-4332-8617-32f8eeebf8f2
>>>>>>>                 From:
>>>>>>>                 <sip:88881 at A_IP_ADDRESS>;tag=0a3e31a6-96ad-42d0-9310-81b35cedbd3d
>>>>>>>                 To: <sip:88290 at KAMAILIO_FQDN>;tag=hvra7mj3q0
>>>>>>>                 Call-ID: 46f44741-d155-4dd5-8fd8-78e540fc1acb
>>>>>>>                 CSeq: 18326 ACK
>>>>>>>                 Route:
>>>>>>>                 <sip:KAMAILIO_FQDN;lr;r2=on;ftag=0a3e31a6-96ad-42d0-9310-81b35cedbd3d;nat=wss>
>>>>>>>                 Route:
>>>>>>>                 <sip:KAMAILIO_FQDN:8089;transport=ws;lr;r2=on;ftag=0a3e31a6-96ad-42d0-9310-81b35cedbd3d;nat=wss>
>>>>>>>                 Max-Forwards: 70
>>>>>>>                 User-Agent: Asterisk PBX 13.33.0
>>>>>>>                 Content-Length:  0
>>>>>>>
>>>>>>>
>>>>>>>                 By loop I meant, Kamailio just relaying it back
>>>>>>>                 to self and discard.
>>>>>>>
>>>>>>>                 Regards,
>>>>>>>                 Igor
>>>>>>>                 On 07.05.2021 13:48, Daniel-Constantin Mierla wrote:
>>>>>>>>
>>>>>>>>                 Can you paste the ACK that loops, after being
>>>>>>>>                 handled once by Kamailio?
>>>>>>>>
>>>>>>>>                 Cheers,
>>>>>>>>                 Daniel
>>>>>>>>
>>>>>>>>                 On 07.05.21 13:25, Igor Olhovskiy wrote:
>>>>>>>>>
>>>>>>>>>                 Daniel,
>>>>>>>>>
>>>>>>>>>                 Yes, it is.
>>>>>>>>>
>>>>>>>>>                 alias=...
>>>>>>>>>
>>>>>>>>>                 Also tried with
>>>>>>>>>
>>>>>>>>>                 listen = IP advertise FQDN
>>>>>>>>>
>>>>>>>>>                 same behavior, loose_route() stops acting
>>>>>>>>>                 correctly.
>>>>>>>>>
>>>>>>>>>                 PS: Forgot to add, Kamailio 5.4.3 / 5.4.4
>>>>>>>>>
>>>>>>>>>                 Regards,
>>>>>>>>>                 Igor
>>>>>>>>>                 On 07.05.2021 13:21, Daniel-Constantin Mierla
>>>>>>>>>                 wrote:
>>>>>>>>>>
>>>>>>>>>>                 Hello,
>>>>>>>>>>
>>>>>>>>>>                 is the KAMAILIO_FQDN set as local domain for
>>>>>>>>>>                 Kamailio (via alias parameter or domain
>>>>>>>>>>                 module+register myself)?
>>>>>>>>>>
>>>>>>>>>>                 Cheers,
>>>>>>>>>>                 Daniel
>>>>>>>>>>
>>>>>>>>>>                 On 07.05.21 11:17, Igor Olhovskiy wrote:
>>>>>>>>>>>
>>>>>>>>>>>                 Hello,
>>>>>>>>>>>
>>>>>>>>>>>                 I saw there are some topics on this already
>>>>>>>>>>>                 and carefully walked through all of them,
>>>>>>>>>>>                 but can't solve following issue.
>>>>>>>>>>>
>>>>>>>>>>>                 For a reason I do need that in Record-Route
>>>>>>>>>>>                 header sent to endpoint would present FQDN.
>>>>>>>>>>>                 If it matters, it's UDP/WSS conversion done
>>>>>>>>>>>                 on Kamailio.
>>>>>>>>>>>
>>>>>>>>>>>                 So, scheme is quite simple
>>>>>>>>>>>
>>>>>>>>>>>                 Enpoint A ->UDP-> Kamailio ->WSS-> Endpoint
>>>>>>>>>>>                 B (NAT)
>>>>>>>>>>>
>>>>>>>>>>>                 Main issue here, that if in Record-Route
>>>>>>>>>>>                 headers it's FQDN, but not IP addresses, on
>>>>>>>>>>>                 a new transactions with a dialog (ACK on
>>>>>>>>>>>                 200, PRACK, BYE), Kamailio*loose_route()*
>>>>>>>>>>>                 function resolves address of destination not
>>>>>>>>>>>                 current dialog, but actual R-URI (or itself,
>>>>>>>>>>>                 if R-URI is something from WebRTC world)
>>>>>>>>>>>                 that is not correct due to NAT.
>>>>>>>>>>>
>>>>>>>>>>>                 If in RR headers IP addresses are present -
>>>>>>>>>>>                 all is working as expected.
>>>>>>>>>>>
>>>>>>>>>>>                 As an example (RR with FQDN)
>>>>>>>>>>>
>>>>>>>>>>>                 B answers 200
>>>>>>>>>>>
>>>>>>>>>>>                 SIP/2.0 200 OK
>>>>>>>>>>>                 Record-Route:
>>>>>>>>>>>                 <sip:KAMAILIO_FQDN:8089;transport=ws;r2=on;lr=on;ftag=0a3e31a6-96ad-42d0-9310-81b35cedbd3d;nat=wss>
>>>>>>>>>>>                 Record-Route:
>>>>>>>>>>>                 <sip:KAMAILIO_FQDN;r2=on;lr=on;ftag=0a3e31a6-96ad-42d0-9310-81b35cedbd3d;nat=wss>
>>>>>>>>>>>                 Via: SIP/2.0/UDP
>>>>>>>>>>>                 <A_IP_ADDRESS>:5060;received=A IP
>>>>>>>>>>>                 ADDRESS;rport=5060;branch=z9hG4bKPj67fb6d86-97d7-4231-995b-e54b0f62881e
>>>>>>>>>>>                 To: <sip:88290@<KAMAILIO_FQDN>>;tag=hvra7mj3q0
>>>>>>>>>>>                 From:
>>>>>>>>>>>                 <sip:+XXXX7688881@<KAMAILIO_FQDN>>;tag=0a3e31a6-96ad-42d0-9310-81b35cedbd3d
>>>>>>>>>>>                 Call-ID: 46f44741-d155-4dd5-8fd8-78e540fc1acb
>>>>>>>>>>>                 CSeq: 18326 INVITE
>>>>>>>>>>>                 Contact:
>>>>>>>>>>>                 <sip:88290 at toleivu2gdbh.invalid;transport=wss>
>>>>>>>>>>>                 Allow:
>>>>>>>>>>>                 ACK,CANCEL,INVITE,MESSAGE,BYE,OPTIONS,INFO,NOTIFY,REFER
>>>>>>>>>>>                 Supported: outbound
>>>>>>>>>>>                 Content-Type: application/sdp
>>>>>>>>>>>                 Content-Length: 817
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>                 ACK looks like
>>>>>>>>>>>
>>>>>>>>>>>                 ACK
>>>>>>>>>>>                 sip:88290 at toleivu2gdbh.invalid;transport=wss
>>>>>>>>>>>                 SIP/2.0
>>>>>>>>>>>                 Via: SIP/2.0/UDP
>>>>>>>>>>>                 A_IP_ADDRESS:5060;rport;branch=z9hG4bKPj8d05548a-91ef-4332-8617-32f8eeebf8f2
>>>>>>>>>>>                 From:
>>>>>>>>>>>                 <sip:88881 at A_IP_ADDRESS>;tag=0a3e31a6-96ad-42d0-9310-81b35cedbd3d
>>>>>>>>>>>                 To: <sip:88290 at KAMAILIO_FQDN>;tag=hvra7mj3q0
>>>>>>>>>>>                 Call-ID: 46f44741-d155-4dd5-8fd8-78e540fc1acb
>>>>>>>>>>>                 CSeq: 18326 ACK
>>>>>>>>>>>                 Route:
>>>>>>>>>>>                 <sip:FQDN;lr;r2=on;ftag=0a3e31a6-96ad-42d0-9310-81b35cedbd3d;nat=wss>
>>>>>>>>>>>                 Route:
>>>>>>>>>>>                 <sip:FQDN:8089;transport=ws;lr;r2=on;ftag=0a3e31a6-96ad-42d0-9310-81b35cedbd3d;nat=wss>
>>>>>>>>>>>                 Max-Forwards: 70
>>>>>>>>>>>                 User-Agent: Asterisk PBX 13.33.0
>>>>>>>>>>>                 Content-Length: 0
>>>>>>>>>>>
>>>>>>>>>>>                 And Kamailio on *loose_route()* loops ACK to
>>>>>>>>>>>                 itself. (with result of function == 1)
>>>>>>>>>>>
>>>>>>>>>>>                 In a case if in Record-Route/Route headers
>>>>>>>>>>>                 just IP address of Kamailio present, all
>>>>>>>>>>>                 works as expected, but it's not really
>>>>>>>>>>>                 behavior I want to achieve.
>>>>>>>>>>>
>>>>>>>>>>>                 I've tried to play with
>>>>>>>>>>>                 *record_route_preset("...")* specifying only
>>>>>>>>>>>                 WSS part (as suggested in
>>>>>>>>>>>                 https://skalatan.de/de/blog/kamailio-sbc-teams
>>>>>>>>>>>                 <https://skalatan.de/de/blog/kamailio-sbc-teams>)
>>>>>>>>>>>                 with FQDN, but no luck.
>>>>>>>>>>>
>>>>>>>>>>>                 Also wanted to try approach using
>>>>>>>>>>>                 record_route_preset() function in branch
>>>>>>>>>>>                 route, but it was working only with first
>>>>>>>>>>>                 branch, not affecting others (but I assume
>>>>>>>>>>>                 having different RR headers across branches
>>>>>>>>>>>                 is not a good idea)
>>>>>>>>>>>
>>>>>>>>>>>                 -- 
>>>>>>>>>>>                 Regards,
>>>>>>>>>>>                 Igor
>>>>>>>>>>>
>>>>>>>>>>>                 __________________________________________________________
>>>>>>>>>>>                 Kamailio - Users Mailing List - Non Commercial Discussions
>>>>>>>>>>>                    *sr-users at lists.kamailio.org  <mailto:sr-users at lists.kamailio.org>
>>>>>>>>>>>                 Important: keep the mailing list in the recipients, do not reply only to the sender!
>>>>>>>>>>>                 Edit mailing list options or unsubscribe:
>>>>>>>>>>>                    *https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users  <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
>>>>>>>>>>                 -- 
>>>>>>>>>>                 Daniel-Constantin Mierla --www.asipto.com  <http://www.asipto.com>
>>>>>>>>>>                 www.twitter.com/miconda  <http://www.twitter.com/miconda>  --www.linkedin.com/in/miconda  <http://www.linkedin.com/in/miconda>
>>>>>>>>>>                 Kamailio Advanced Training - Online
>>>>>>>>>>                 May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
>>>>>>>>>>                    *https://www.asipto.com/sw/kamailio-advanced-training-online/  <https://www.asipto.com/sw/kamailio-advanced-training-online/>
>>>>>>>>>
>>>>>>>>>                 __________________________________________________________
>>>>>>>>>                 Kamailio - Users Mailing List - Non Commercial Discussions
>>>>>>>>>                    *sr-users at lists.kamailio.org  <mailto:sr-users at lists.kamailio.org>
>>>>>>>>>                 Important: keep the mailing list in the recipients, do not reply only to the sender!
>>>>>>>>>                 Edit mailing list options or unsubscribe:
>>>>>>>>>                    *https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users  <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
>>>>>>>>                 -- 
>>>>>>>>                 Daniel-Constantin Mierla --www.asipto.com  <http://www.asipto.com>
>>>>>>>>                 www.twitter.com/miconda  <http://www.twitter.com/miconda>  --www.linkedin.com/in/miconda  <http://www.linkedin.com/in/miconda>
>>>>>>>>                 Kamailio Advanced Training - Online
>>>>>>>>                 May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
>>>>>>>>                    *https://www.asipto.com/sw/kamailio-advanced-training-online/  <https://www.asipto.com/sw/kamailio-advanced-training-online/>
>>>>>>                 -- 
>>>>>>                 Daniel-Constantin Mierla --www.asipto.com  <http://www.asipto.com>
>>>>>>                 www.twitter.com/miconda  <http://www.twitter.com/miconda>  --www.linkedin.com/in/miconda  <http://www.linkedin.com/in/miconda>
>>>>>>                 Kamailio Advanced Training - Online
>>>>>>                 May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
>>>>>>                    *https://www.asipto.com/sw/kamailio-advanced-training-online/  <https://www.asipto.com/sw/kamailio-advanced-training-online/>
>>>>                 -- 
>>>>                 Daniel-Constantin Mierla --www.asipto.com  <http://www.asipto.com>
>>>>                 www.twitter.com/miconda  <http://www.twitter.com/miconda>  --www.linkedin.com/in/miconda  <http://www.linkedin.com/in/miconda>
>>>>                 Kamailio Advanced Training - Online
>>>>                 May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
>>>>                    *https://www.asipto.com/sw/kamailio-advanced-training-online/  <https://www.asipto.com/sw/kamailio-advanced-training-online/>
>>>                 __________________________________________________________
>>>                 Kamailio - Users Mailing List - Non Commercial
>>>                 Discussions
>>>                   * sr-users at lists.kamailio.org
>>>                 <mailto:sr-users at lists.kamailio.org>
>>>                 Important: keep the mailing list in the recipients,
>>>                 do not reply only to the sender!
>>>                 Edit mailing list options or unsubscribe:
>>>                   *
>>>                 https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>>                 <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
>>>
>>>             -- 
>>>             Regards,
>>>
>>>             David Villasmil
>>>             email: david.villasmil.work at gmail.com
>>>             <mailto:david.villasmil.work at gmail.com>
>>>             phone: +34669448337
>>>
>>>             __________________________________________________________
>>>             Kamailio - Users Mailing List - Non Commercial Discussions
>>>                *sr-users at lists.kamailio.org  <mailto:sr-users at lists.kamailio.org>
>>>             Important: keep the mailing list in the recipients, do not reply only to the sender!
>>>             Edit mailing list options or unsubscribe:
>>>                *https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users  <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
>>             __________________________________________________________
>>             Kamailio - Users Mailing List - Non Commercial Discussions
>>               * sr-users at lists.kamailio.org
>>             <mailto:sr-users at lists.kamailio.org>
>>             Important: keep the mailing list in the recipients, do
>>             not reply only to the sender!
>>             Edit mailing list options or unsubscribe:
>>               *
>>             https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>>             <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
>>
>>
>>         __________________________________________________________
>>         Kamailio - Users Mailing List - Non Commercial Discussions
>>            *sr-users at lists.kamailio.org  <mailto:sr-users at lists.kamailio.org>
>>         Important: keep the mailing list in the recipients, do not reply only to the sender!
>>         Edit mailing list options or unsubscribe:
>>            *https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users  <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
>         __________________________________________________________
>         Kamailio - Users Mailing List - Non Commercial Discussions
>           * sr-users at lists.kamailio.org
>         <mailto:sr-users at lists.kamailio.org>
>         Important: keep the mailing list in the recipients, do not
>         reply only to the sender!
>         Edit mailing list options or unsubscribe:
>           *
>         https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>         <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
>
>     -- 
>     Regards,
>
>     David Villasmil
>     email: david.villasmil.work at gmail.com
>     <mailto:david.villasmil.work at gmail.com>
>     phone: +34669448337
>     __________________________________________________________
>     Kamailio - Users Mailing List - Non Commercial Discussions
>       * sr-users at lists.kamailio.org <mailto:sr-users at lists.kamailio.org>
>     Important: keep the mailing list in the recipients, do not reply
>     only to the sender!
>     Edit mailing list options or unsubscribe:
>       * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
>     <https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users>
>
>
> __________________________________________________________
> Kamailio - Users Mailing List - Non Commercial Discussions
>    * sr-users at lists.kamailio.org
> Important: keep the mailing list in the recipients, do not reply only to the sender!
> Edit mailing list options or unsubscribe:
>    * https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20210510/844cd8af/attachment.htm>


More information about the sr-users mailing list