[SR-Users] dialog module: Does dlg_manage() have to be called for all requests?

George Diamantopoulos georgediam at gmail.com
Mon Nov 25 15:56:43 CET 2019


Hello all,

I've been reading through the dialog module docs again, and there seems to
be a discrepancy in what's suggested in the docs. In the intro, it is
stated that 'To create the dialog associated with an initial INVITE
request, execute the function “dlg_manage()"'. Later on, in section "7.10"
the following example code is provided:
request_route {
...
    if(is_method("INVITE") && !has_totag())
    {
        $dlg_ctx(timeout_route) = "DLGTIMEOUT";
        $dlg_ctx(timeout_bye) = 1;
    }
    dlg_manage();
...
}
In this example code, dlg_manage seems to be called for all requests, as it
is not dependent on the conditional that only requests with no to-tag are
to be handled.

Previously, Daniel had suggested to me in person that one also run
dlg_manage() for CANCELs, and in-dialog reINVITEs, BYEs and ACKs to
mitigate some buggy corner cases. Is this still the case?

What do you guys and gals do in production? Have you had to revise how you
use dlg_manage in terms of calling it for initial INVITEs only vs all
requests? Thanks!

BR,
George
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20191125/8666e751/attachment.html>


More information about the sr-users mailing list