[SR-Users] loose_route() and FQDN

Daniel-Constantin Mierla miconda at gmail.com
Fri May 7 14:22:18 CEST 2021


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) 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
>>>>>>> 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
>>>>>> -- 
>>>>>> Daniel-Constantin Mierla -- www.asipto.com
>>>>>> www.twitter.com/miconda -- 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/
>>>>>
>>>>> __________________________________________________________
>>>>> 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
>>>> -- 
>>>> Daniel-Constantin Mierla -- www.asipto.com
>>>> www.twitter.com/miconda -- 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/
>> -- 
>> Daniel-Constantin Mierla -- www.asipto.com
>> www.twitter.com/miconda -- 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/

-- 
Daniel-Constantin Mierla -- www.asipto.com
www.twitter.com/miconda -- 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/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20210507/3e279f22/attachment.htm>


More information about the sr-users mailing list