<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hi Bogdan,</p>
<p>Yes, we have the following enabled in our config:<br>
</p>
<p>tcp_accept_aliases=1</p>
<p>I assume this is the culprit then and we are inadvertently
sending calls down the wrong TCP socket here to the wrong user due
to this being enabled? This is quite a nasty setting to have
enabled when we are dealing with CGNAT'd customers who are sharing
public IP addresses but are completely unrelated users!</p>
<p>I will disable this setting and see if that clears up the issue
for us. We have in fact had another case just today of the same
issue happening (User A is receiving User B's incoming calls!)<br>
</p>
<p>Thanks for highlighting this and let me know if there is anything
else I should look at in our config.</p>
<p>Thanks,</p>
Ray<br>
<p>On 19/09/23 9:30 pm, Bogdan-Andrei Iancu wrote:</p>
<blockquote type="cite"
cite="mid:1e279a15-ff97-019a-3e62-55d7eab5009b@opensips.org">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<font face="monospace">Hi Ray,<br>
<br>
Do you use any TCP aliasing options in your cfg ?<br>
<br>
Regards,<br>
</font>
<pre class="moz-signature" cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a class="moz-txt-link-freetext" href="https://www.opensips-solutions.com" moz-do-not-send="true">https://www.opensips-solutions.com</a>
<a class="moz-txt-link-freetext" href="https://www.siphub.com" moz-do-not-send="true">https://www.siphub.com</a></pre>
<div class="moz-cite-prefix">On 9/2/23 3:17 AM, Ray Jackson wrote:<br>
</div>
<blockquote type="cite"
cite="mid:864e2852-950a-9cff-f38e-9910e344b417@hero.co.nz">
<meta http-equiv="content-type" content="text/html;
charset=UTF-8">
<p>Hi all,</p>
<p>I'm facing a weird issue which I think is related to broken
TCP socket reuse logic where the wrong client is receiving
incoming calls due to the wrong socket being used for the
incoming INVITE.<br>
</p>
<p>The scenario is when I have 2 clients registering using TLS
behind NAT at the same Public IPv4 address and both clients
are using the same private port number. So client 1 registers
and the Via and contact header looks like:<br>
</p>
<p><span style="box-sizing: border-box; color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-weight: bold;">Via: </span><span style="color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"> SIP/2.0/TLS 192.168.42.162:5062;</span><span style="box-sizing: border-box; color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-weight: bold;">branch=</span><span style="color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">z9hG4bK1409895926;rport;alias
</span><span style="color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">
</span><span style="box-sizing: border-box; color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-weight: bold;">Contact: </span><span style="color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"> <<a class="moz-txt-link-freetext" href="sip:201@192.168.42.162:5062" moz-do-not-send="true">sip:201@192.168.42.162:5062</a>;</span><span style="box-sizing: border-box; color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-weight: bold;">transport=</span><span style="color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">tls>;</span><span style="box-sizing: border-box; color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-weight: bold;">reg-id=</span><span style="color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">2;+sip.instance="<a class="moz-txt-link-rfc2396E" href="urn:uuid:00000000-0000-1000-8000-C074AD928AC4" moz-do-not-send="true"><urn:uuid:00000000-0000-1000-8000-C074AD928AC4></a>"</span></p>
<p>Client 2 registers from behind the same Public IPv4 address
and the Via and contact header looks like:</p>
<p><span style="box-sizing: border-box; color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-weight: bold;">Via: </span><span style="color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"> SIP/2.0/TLS 192.168.42.186:5062;</span><span style="box-sizing: border-box; color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-weight: bold;">branch=</span><span style="color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">z9hG4bK-aff1f3b3
</span><span style="box-sizing: border-box; color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-weight: bold;">Contact: </span><span style="color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"> <<a class="moz-txt-link-freetext" href="sip:202@192.168.42.186:5062" moz-do-not-send="true">sip:202@192.168.42.186:5062</a>;</span><span style="box-sizing: border-box; color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-weight: bold;">transport=</span><span style="color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">tls>;expire</span><span style="box-sizing: border-box; color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; font-weight: bold;">s=</span><span style="color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;">300</span></p>
<p>The location table shows Client 1 received field of
103.212.1.2:5062 and Client 103.212.1.2:23456 <br>
</p>
<p>When a call comes in for Client 1 the location lookup seems
to return the correct 'received' address and port (e.g.
103.212.1.2:5062) and all the logs indicate that this is where
the SIP INVITE *should* be going to (in the $du field).
However when you check the SIP traffic it selects Client 2's
socket and the traffic goes to port 23456 instead of 5062.</p>
<p>I think this is related somehow to the TCP port reuse logic
inside Opensips. My suspicion is that Opensips is looking at
the Contact or Via port number (which is the same for both
client 1 and 2) and then somehow mapping this to the wrong TCP
received socket.</p>
<p>Does anybody have any suggestions here? Should I be fixing
the NAT in the Contact header (using fix_nated_contact). I
read somewhere that you shouldn't rewrite the Contact header
to avoid problems with sending a different Contact URI to the
client on calls. Or is this issue more related to the Via
header and the TCP port reuse logic looking at this port
instead of the actual received port when choosing the outgoing
socket?</p>
<p>FYI: I am using both force_rport() and fix_nated_register()
for incoming registrations from these clients and
matching_mode of 0 in usrloc. However, I am not using
fix_nated_contact() for registrations.</p>
<p>Thanks,</p>
<p>Ray<br>
</p>
<p><br>
<span style="color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"></span><span style="color: rgb(80, 80, 80); font-family: Roboto, "Helvetica Neue", sans-serif; font-size: 13px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre-wrap; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;"></span></p>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
Users mailing list
<a class="moz-txt-link-abbreviated moz-txt-link-freetext" href="mailto:Users@lists.opensips.org" moz-do-not-send="true">Users@lists.opensips.org</a>
<a class="moz-txt-link-freetext" href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" moz-do-not-send="true">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a>
</pre>
</blockquote>
<br>
</blockquote>
</body>
</html>