<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>