Hey Guys,

We are facing quite often this error:

/usr/sbin/kamailio[16985]: ERROR:
<core> [dset.c:435]: print_dset(): ERROR: redirection buffeROR:
redirection buffer length exceed

When the error is generated, there will be a missing contact in the redirects (not to mention that Kamailio will crash in uac_redirect for versions before 4.2.0).

Can anyone explain the nature of this buffer and whether is affected by a single contact or all the contacts together building the final redirect? How can we control what's in that buffer from the script?

This is our script part building the redirects, out of location data:
"""
    if(!reg_fetch_contacts("location", "$ru", "called")) {
                send_reply("404", "Not Found");
                exit;
        }
        if $(ulc(called=>count)) == 0 { # No contacts for this user online
                sl_send_reply("404", "Not found");
                exit;
        }
        $var(i) = 0;
        while($var(i) < $(ulc(called=>count))) {
                $var(pathUri) = $(ulc(called=>path)[$var(i)]{s.strip,1}{s.striptail,1}); #Strip <> so we can apply real uri transformations
                $var(newRURI) = $(ulc(called=>addr)[$var(i)]) + ";ipbxep=" + $(var(pathUri){uri.host});
                if $var(i) == 0 {
                        $ru = $var(newRURI);
                } else {
                        append_branch($var(newRURI));
                }
                $var(i) = $var(i) + 1;
        }
"""

Thanks in advance for any kind of tip!

DanB