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