<p></p>

<h3>Description</h3>
<p>I'm appending two contacts / branches upon receiving a call.  This is a snippet of the config I'm using to debug:</p>
<pre><code>        xlog ("=== branch 0: $(branch(uri)[0]), $(branch(q)[0])\n");
        xlog ("=== branch 1: $(branch(uri)[1]), $(branch(q)[1])\n");
        revert_uri();
        t_load_contacts();
        while (t_next_contacts()) {
            xlog ("==== $ru\n");
        }
</code></pre>
<p>We expect that the branches are rearranged by weight.  When t_next_contacts() is called, the $ru is being rewritten with the branch having the highest q value.  This behavior changed after upgrading to v5.4.0.  The order of the branches is now being reversed.</p>
<h3>Troubleshooting</h3>
<h4>Reproduction</h4>

<h4>Debugging Data</h4>

<pre><code>(paste your debugging data here)
</code></pre>
<h4>Log Messages</h4>
<p>In v5.4.0, this is what we're seeing in the logs</p>
<pre><code>ERROR: IBG_LOG: sipp-ci1-20200819163846-1-22@172.18.1.21: === branch 0: sip:1001@gateway2.carrierB.com;transport=udp, 200
ERROR: IBG_LOG: sipp-ci1-20200819163846-1-22@172.18.1.21: === branch 1: sip:1001@gateway1.carrierB.com;transport=tcp, 300
DEBUG: IBG_LOG: sipp-ci1-20200819163846-1-22@172.18.1.21: tm [t_serial.c:526]: t_load_contacts(): load_contact mode not selected, using: 0
DEBUG: IBG_LOG: sipp-ci1-20200819163846-1-22@172.18.1.21: tm [t_serial.c:340]: ki_t_load_contacts_mode(): nr_branches is 2
DEBUG: IBG_LOG: sipp-ci1-20200819163846-1-22@172.18.1.21: <core> [core/xavp.c:539]: xavp_destroy_list(): destroying xavp list 0x7fcbe3103e20
DEBUG: IBG_LOG: sipp-ci1-20200819163846-1-22@172.18.1.21: tm [t_serial.c:890]: ki_t_next_contacts(): Appending branch uri-'sip:1001@gateway1.carrierB.com;transport=tcp' dst-'' path-'' inst-'' ruid-'' location_ua-''
DEBUG: IBG_LOG: sipp-ci1-20200819163846-1-22@172.18.1.21: <core> [core/xavp.c:539]: xavp_destroy_list(): destroying xavp list 0x7fcbe3103b68
ERROR: IBG_LOG: sipp-ci1-20200819163846-1-22@172.18.1.21: ==== sip:1001@carrierB
DEBUG: IBG_LOG: sipp-ci1-20200819163846-1-22@172.18.1.21: <core> [core/xavp.c:539]: xavp_destroy_list(): destroying xavp list 0x7fcbe3103890
ERROR: IBG_LOG: sipp-ci1-20200819163846-1-22@172.18.1.21: ==== sip:1001@gateway2.carrierB.com;transport=udp
DEBUG: IBG_LOG: sipp-ci1-20200819163846-1-22@172.18.1.21: tm [t_serial.c:627]: ki_t_next_contacts(): no contacts in contacts_avp - we are done!
</code></pre>
<p>This was the behavior in v.5.3.4</p>
<pre><code>ERROR: IBG_LOG: sipp-ci1-20200819172941-1-22@172.18.1.21: === branch 0: sip:1001@gateway2.carrierB.com;transport=udp, 200
ERROR: IBG_LOG: sipp-ci1-20200819172941-1-22@172.18.1.21: === branch 1: sip:1001@gateway1.carrierB.com;transport=tcp, 300
DEBUG: IBG_LOG: sipp-ci1-20200819172941-1-22@172.18.1.21: tm [t_serial.c:191]: ki_t_load_contacts(): nr_branches is 2
DEBUG: IBG_LOG: sipp-ci1-20200819172941-1-22@172.18.1.21: <core> [core/xavp.c:529]: xavp_destroy_list(): destroying xavp list 0x7f55bdf0c1d8
ERROR: IBG_LOG: sipp-ci1-20200819172941-1-22@172.18.1.21: ==== sip:1001@gateway1.carrierB.com;transport=tcp
DEBUG: IBG_LOG: sipp-ci1-20200819172941-1-22@172.18.1.21: <core> [core/xavp.c:529]: xavp_destroy_list(): destroying xavp list 0x7f55bdf0bf00
ERROR: IBG_LOG: sipp-ci1-20200819172941-1-22@172.18.1.21: ==== sip:1001@gateway2.carrierB.com;transport=udp
DEBUG: IBG_LOG: sipp-ci1-20200819172941-1-22@172.18.1.21: <core> [core/xavp.c:529]: xavp_destroy_list(): destroying xavp list 0x7f55bdf0bc28
ERROR: IBG_LOG: sipp-ci1-20200819172941-1-22@172.18.1.21: ==== sip:1001@carrierB
DEBUG: IBG_LOG: sipp-ci1-20200819172941-1-22@172.18.1.21: tm [t_serial.c:460]: ki_t_next_contacts(): no contacts in contacts_avp - we are done!
</code></pre>
<h4>SIP Traffic</h4>

<pre><code>(paste your sip traffic here)
</code></pre>
<h3>Possible Solutions</h3>

<h3>Additional Information</h3>
<ul>
<li><strong>Kamailio Version</strong> - output of <code>kamailio -v</code></li>
</ul>
<pre><code>(paste your output here)
</code></pre>
<ul>
<li><strong>Operating System</strong>:</li>
</ul>

<pre><code>(paste your output here)
</code></pre>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/kamailio/kamailio/issues/2449">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABO7UZMWUAG4CQI3D33PZODSBQEW3ANCNFSM4QFF6F4Q">unsubscribe</a>.<img src="https://github.com/notifications/beacon/ABO7UZKU4CKDYWK7NDBUZF3SBQEW3A5CNFSM4QFF6F42YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4KFGZMUA.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/kamailio/kamailio/issues/2449",
"url": "https://github.com/kamailio/kamailio/issues/2449",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>