<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>Hello,</p>
<p>you can look at the code of lookup("location") function to see
what other attributes are set vs what you set via config
operations, as you wrote that with lookup("location") you don't
face the issue.</p>
<p>Cheers,<br>
Daniel<br>
</p>
<div class="moz-cite-prefix">On 14.05.21 12:44, Marrold wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAC-Lcd8xvFQP4Qch2yTjSRCBcbqfH6jS9sgvbdng7KGrN9RMvw@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">Hi,
<div><br>
</div>
<div>Apologies for the delay updating this one - it took longer
than expected to get our test platform upgraded to the latest
kamailio version that included the newer TCPOPS functions.</div>
<div><br>
</div>
<div>I can confirm that using tcp_get_conid() and
tcp_set_otcpid() appears to work around the issue. I'm still
curious why Kamailio is intermittently getting the wrong
connection ID internally.</div>
<div><br>
</div>
<div>Thinking about it some more, the issue is actually occuring
on the <i>main</i> branch when we set the following vars from
the output of reg_fetch_contacts, as it's only returning a
single contact during testing.</div>
<div><br>
</div>
<div> $ru = $var(addr);<br>
$du = $var(received);<br>
$bf = $var(cflags);<br>
$fs = $var(socket);<br>
</div>
<div><br>
</div>
<div>Thanks</div>
<div><br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Tue, Mar 30, 2021 at 12:08
PM Daniel-Constantin Mierla <<a
href="mailto:miconda@gmail.com" moz-do-not-send="true">miconda@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p>Hello,</p>
<p>can you try with master branch to use sbranch-related
functions from pv module along with the result from
reg_fetch_contact().</p>
<p>Cheers,<br>
Daniel<br>
</p>
<div>On 19.03.21 11:13, Marrold wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">We don't see the issue when using the
standard lookup() function, only when we start manually
appending branches with the results
from reg_fetch_contact()
<div><br>
</div>
<div>Thanks</div>
<div>Matthew</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, Mar 17, 2021
at 7:18 AM Daniel-Constantin Mierla <<a
href="mailto:miconda@gmail.com" target="_blank"
moz-do-not-send="true">miconda@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px
0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<p>Hello,</p>
<p><br>
</p>
<div>On 11.03.21 10:55, Marrold wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hi Daniel,
<div><br>
</div>
<div>I didn't spot those TCPOPs functions, I'll
give them a try and let you know how I get on.</div>
<div><br>
</div>
<div>Do you have any idea why Kamailio is
intermittently selecting the wrong connection
using ID vs peer address? <br>
</div>
</div>
</blockquote>
<p><br>
</p>
<p>have you tried and got that with
lookup("location") or only with your script-based
reg_fetch_contact()?</p>
<p>Cheers,<br>
Daniel<br>
</p>
<blockquote type="cite">
<div dir="ltr">
<div><br>
</div>
<div>Thanks for the suggestions.</div>
<div>Matthew</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, Mar
10, 2021 at 7:27 AM Daniel-Constantin Mierla
<<a href="mailto:miconda@gmail.com"
target="_blank" moz-do-not-send="true">miconda@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<p>Hello,</p>
<p>a while ago I did some work to make
possible to specify the outgoing tcp
connection id, see:</p>
<p> * <a
href="https://www.kamailio.org/docs/modules/stable/modules/tcpops.html#tcpops.f.tcp_set_otcpid"
target="_blank" moz-do-not-send="true">https://www.kamailio.org/docs/modules/stable/modules/tcpops.html#tcpops.f.tcp_set_otcpid</a></p>
<p>And the next function after it.</p>
<p>However, the testing was minimal, maybe
not verifying the entire chain with
t_relay()/forward(). Even more, the
specifying of the outbound tcp connection
was supposed to be done internally by the
lookup("location"), the functions from
tcpops being added for more config
flexibility, suitable for single branch
forwarding or branch_route blocks.</p>
<p>However, in your seem to do manual
processing with reg_fetch_contacts(), not
rely on lookup location. You can test with
master and use $sbranch(...) and
corresponding functions from pv module,
instead of setting the r-uri and
append_branch().</p>
<p>Cheers,<br>
Daniel<br>
</p>
<div>On 10.03.21 06:00, Marrold wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Hi,<br>
<br>
I've done a bit more digging and
realised that $conid is read-only, and
only available for an inbound connection
- so I dont think it will achieve what I
need.
<div><br>
</div>
<div>I did a bit more troubleshooting
and observed the differences in the
debug log between two identical calls:
<div><br>
This example failed - the INVITEs
went out to the incorrect endpoint /
TCP connection. The "ulc_conid" from
the location table for the TCP
endpoint is 13:<br>
<br>
</div>
<div><font face="monospace">Mar 9
10:30:20 proxy-01
/sbin/kamailio[27014]: ERROR:
<script>: Adding to main
branch. ua: Yealink SIP-T42G
29.83.0.120 ru: <a
href="http://sip:442079460000@10.0.130.218:5060"
target="_blank"
moz-do-not-send="true">sip:442079460000@10.0.130.218:5060</a>
du: sip:<a
href="http://203.0.113.1:1046"
target="_blank"
moz-do-not-send="true">203.0.113.1:1046</a> ulc_conid:
0 flags: 192 ci:
162e3e84-4036-48d7-a1d1-79cc92b7cea4-2-1@sip-server-01<br>
Mar 9 10:30:20 proxy-01
/sbin/kamailio[27014]: ERROR:
<script>: Adding to child
branch. ua: Yealink SIP-T58
58.85.0.5 ru: <a
moz-do-not-send="true">sip:442079460000@10.0.130.241:50130;transport=TCP</a>
du: <a moz-do-not-send="true">sip:203.0.113.1:50130;transport=tcp</a>
ulc_conid: 13 flags: 192 ci:
162e3e84-4036-48d7-a1d1-79cc92b7cea4-2-1@sip-server-01<br>
<br>
</font>The debug log shows the wrong
connection was found <i>by id, </i>which
in this case was 2, but should have
been 13:</div>
<div><br>
<font face="monospace">Mar 9
10:30:21 proxy-01
/sbin/kamailio[27014]: INFO:
<script>: ONSEND: rm: INVITE
ru: <a
href="http://sip:442079460000@10.0.130.218:5060"
target="_blank"
moz-do-not-send="true">sip:442079460000@10.0.130.218:5060</a>
du: sip:<a
href="http://203.0.113.1:1046"
target="_blank"
moz-do-not-send="true">203.0.113.1:1046</a>
proto: udp src: <a
href="http://185.28.212.61:5060"
target="_blank"
moz-do-not-send="true">185.28.212.61:5060</a>
dest: <a
href="http://203.0.113.1:1046"
target="_blank"
moz-do-not-send="true">203.0.113.1:1046</a> ci:
162e3e84-4036-48d7-a1d1-79cc92b7cea4-2-1@sip-server-01</font><br>
<font face="monospace">Mar 9
10:30:21 proxy-01
/sbin/kamailio[27014]: INFO:
<script>: ONSEND: rm: INVITE
ru: <a
href="http://sip:442079460000@10.0.130.218:5060"
target="_blank"
moz-do-not-send="true">sip:442079460000@10.0.130.218:5060</a>
du: sip:<a
href="http://203.0.113.1:1046"
target="_blank"
moz-do-not-send="true">203.0.113.1:1046</a>
proto: tcp src: <a
href="http://185.28.212.61:5062"
target="_blank"
moz-do-not-send="true">185.28.212.61:5062</a>
dest: <a
href="http://203.0.113.1:50130"
target="_blank"
moz-do-not-send="true">203.0.113.1:50130</a> ci:
162e3e84-4036-48d7-a1d1-79cc92b7cea4-2-1@sip-server-01</font><br>
<font face="monospace">Mar 9
10:30:21 proxy-01
/sbin/kamailio[27014]: DEBUG:
<core>
[core/tcp_main.c:1651]:
_tcpconn_find(): found connection
by id: 2</font><br>
<font face="monospace">Mar 9
10:30:21 proxy-01
/sbin/kamailio[27014]: DEBUG:
<core>
[core/tcp_main.c:2545]:
tcpconn_send_put(): found fd in
cache (5, 0x7fedc49d2448, 2)</font><br>
<br>
This example worked - the INVITEs
went out to the correct endpoints /
TCP connections. The "ulc_conid"
from the location table for the TCP
endpoint is still 13:</div>
<div><br>
<font face="monospace">Mar 9
10:42:30 proxy-01
/sbin/kamailio[27016]: ERROR:
<script>: Adding to main
branch. ua: Yealink SIP-T42G
29.83.0.120 ru: <a
href="http://sip:442079460000@10.0.130.218:5060"
target="_blank"
moz-do-not-send="true">sip:442079460000@10.0.130.218:5060</a>
du: sip:<a
href="http://203.0.113.1:1046"
target="_blank"
moz-do-not-send="true">203.0.113.1:1046</a> ulc_conid:
0 flags: 192 ci:
95ba0691-bdfc-4293-b99d-d46946cb5180-2-1@sip-server-01<br>
Mar 9 10:42:30 proxy-01
/sbin/kamailio[27016]: ERROR:
<script>: Adding to child
branch. ua: Yealink SIP-T58
58.85.0.5 ru: <a
moz-do-not-send="true">sip:442079460000@10.0.130.241:50130;transport=TCP</a>
du: <a moz-do-not-send="true">sip:203.0.113.1:50130;transport=tcp</a>
ulc_conid: 13 flags: 192 ci:
95ba0691-bdfc-4293-b99d-d46946cb5180-2-1@sip-server-01</font><br>
<br>
The debug log shows the correct
connection was found <i>by peer
address </i>and determined the
correct connection 13:</div>
<div><br>
<font face="monospace">Mar 9
10:42:31 proxy-01
/sbin/kamailio[27016]: INFO:
<script>: ONSEND: rm: INVITE
ru: <a
href="http://sip:442079460000@10.0.130.218:5060"
target="_blank"
moz-do-not-send="true">sip:442079460000@10.0.130.218:5060</a>
du: sip:<a
href="http://203.0.113.1:1046"
target="_blank"
moz-do-not-send="true">203.0.113.1:1046</a>
proto: udp src: <a
href="http://185.28.212.61:5060"
target="_blank"
moz-do-not-send="true">185.28.212.61:5060</a>
dest: <a
href="http://203.0.113.1:1046"
target="_blank"
moz-do-not-send="true">203.0.113.1:1046</a>
conid: <null> ci:
95ba0691-bdfc-4293-b99d-d46946cb5180-2-1@sip-server-01<br>
Mar 9 10:42:31 proxy-01
/sbin/kamailio[27016]: INFO:
<script>: ONSEND: rm: INVITE
ru: <a
href="http://sip:442079460000@10.0.130.218:5060"
target="_blank"
moz-do-not-send="true">sip:442079460000@10.0.130.218:5060</a>
du: sip:<a
href="http://203.0.113.1:1046"
target="_blank"
moz-do-not-send="true">203.0.113.1:1046</a>
proto: tcp src: <a
href="http://185.28.212.61:5062"
target="_blank"
moz-do-not-send="true">185.28.212.61:5062</a>
dest: <a
href="http://203.0.113.1:50130"
target="_blank"
moz-do-not-send="true">203.0.113.1:50130</a>
conid: <null> ci:
95ba0691-bdfc-4293-b99d-d46946cb5180-2-1@sip-server-01<br>
Mar 9 10:42:31 proxy-01
/sbin/kamailio[27016]: DEBUG:
<core>
[core/tcp_main.c:1670]:
_tcpconn_find(): found connection
by peer address (id: 13)<br>
Mar 9 10:42:31 proxy-01
/sbin/kamailio[27016]: DEBUG:
<core>
[core/tcp_main.c:2548]:
tcpconn_send_put(): tcp connection
found (0x7fedc49ce0e8), acquiring
fd<br>
</font><br>
Additionally I checked the
connection IDs and IPs / Ports
before a failed and working call and
they had not changed, it was the
same TCP connection - so it doesn't
appear to be some interaction with a
connection closing or changing. We
also don't see this issue using <font
face="arial, sans-serif">the
standard <span
style="background-color:rgb(252,255,252);color:rgb(0,0,0)">lookup</span>()
function.</font><br>
<br>
Does anyone know why Kamailio is
intermittently switching between
finding by peer address and id, and
why it's using the wrong ID? <br>
<br>
Thanks again<br>
Matthew<br>
<br>
</div>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On
Tue, Mar 9, 2021 at 8:56 AM Marrold
<<a
href="mailto:kamailio@marrold.co.uk"
target="_blank"
moz-do-not-send="true">kamailio@marrold.co.uk</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Hi all,
<div><br>
</div>
<div>I'm currently adding a feature
to our Kamailio configuration to
fork calls based on user agent.</div>
<div><br>
</div>
<div>To do so I'm getting the
registered endpoints
with reg_fetch_contacts()
iterating through and matching on
them, then using seturi() /
append_branch() and setting the
dst-uri and flags as required.</div>
<div><br>
</div>
<div>However, calls are
intermittently going to the wrong
TCP connection, despite the logs
showing the correct destination IP
and port in the ONSEND route.</div>
<div><br>
</div>
<div>Looking in the location table I
can see each registration has a
connection_id, and the debug log
indicates it's finding the
connection by ID:</div>
<div><br>
</div>
<div> DEBUG: <core>
[core/tcp_main.c:1651]:
_tcpconn_find(): found connection
by id: 3<br>
</div>
<div><br>
</div>
<div>Is there a way to set the conid
per branch? Is it necessary?<br>
</div>
<div><br>
</div>
<div>We're using kamailio 5.3.3 on
Debian 10.</div>
<div><br>
</div>
<div>Thanks</div>
<div>Matthew</div>
</div>
</blockquote>
</div>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
Kamailio (SER) - Users Mailing List
<a href="mailto:sr-users@lists.kamailio.org" target="_blank" moz-do-not-send="true">sr-users@lists.kamailio.org</a>
<a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" target="_blank" moz-do-not-send="true">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a>
</pre>
</blockquote>
<pre cols="72">--
Daniel-Constantin Mierla -- <a href="http://www.asipto.com" target="_blank" moz-do-not-send="true">www.asipto.com</a>
<a href="http://www.twitter.com/miconda" target="_blank" moz-do-not-send="true">www.twitter.com/miconda</a> -- <a href="http://www.linkedin.com/in/miconda" target="_blank" moz-do-not-send="true">www.linkedin.com/in/miconda</a>
Funding: <a href="https://www.paypal.me/dcmierla" target="_blank" moz-do-not-send="true">https://www.paypal.me/dcmierla</a></pre>
</div>
</blockquote>
</div>
</blockquote>
<pre cols="72">--
Daniel-Constantin Mierla -- <a href="http://www.asipto.com" target="_blank" moz-do-not-send="true">www.asipto.com</a>
<a href="http://www.twitter.com/miconda" target="_blank" moz-do-not-send="true">www.twitter.com/miconda</a> -- <a href="http://www.linkedin.com/in/miconda" target="_blank" moz-do-not-send="true">www.linkedin.com/in/miconda</a>
Funding: <a href="https://www.paypal.me/dcmierla" target="_blank" moz-do-not-send="true">https://www.paypal.me/dcmierla</a></pre>
</div>
</blockquote>
</div>
</blockquote>
<pre cols="72">--
Daniel-Constantin Mierla -- <a href="http://www.asipto.com" target="_blank" moz-do-not-send="true">www.asipto.com</a>
<a href="http://www.twitter.com/miconda" target="_blank" moz-do-not-send="true">www.twitter.com/miconda</a> -- <a href="http://www.linkedin.com/in/miconda" target="_blank" moz-do-not-send="true">www.linkedin.com/in/miconda</a>
Funding: <a href="https://www.paypal.me/dcmierla" target="_blank" moz-do-not-send="true">https://www.paypal.me/dcmierla</a></pre>
</div>
</blockquote>
</div>
</blockquote>
<pre class="moz-signature" cols="72">--
Daniel-Constantin Mierla -- <a class="moz-txt-link-abbreviated" href="http://www.asipto.com">www.asipto.com</a>
<a class="moz-txt-link-abbreviated" href="http://www.twitter.com/miconda">www.twitter.com/miconda</a> -- <a class="moz-txt-link-abbreviated" href="http://www.linkedin.com/in/miconda">www.linkedin.com/in/miconda</a>
Kamailio Advanced Training - Online
May 17-20, 2021 (Europe Timezone) - June 7-10, 2021 (America Timezone)
* <a class="moz-txt-link-freetext" href="https://www.asipto.com/sw/kamailio-advanced-training-online/">https://www.asipto.com/sw/kamailio-advanced-training-online/</a></pre>
</body>
</html>