Hello George,
as already mentioned, you do dlg_manage() for initial requests. About the corner cases – I
can only think about some failures in the dialog tracking due to user agent issues right
now. In normal operation the module should track all in-dialog messages due to the
internal callbacks. Daniel might be able to add something as well.
Cheers,
Henning
--
Henning Westerholt –
https://skalatan.de/blog/
Kamailio services –
https://gilawa.com<https://gilawa.com/>
Kamailio Merchandising –
https://skalatan.de/merchandising
From: sr-users <sr-users-bounces(a)lists.kamailio.org> On Behalf Of George
Diamantopoulos
Sent: Monday, November 25, 2019 3:57 PM
To: Kamailio (SER) - Users Mailing List <sr-users(a)lists.kamailio.org>
Subject: [SR-Users] dialog module: Does dlg_manage() have to be called for all requests?
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