[SR-Users] Adding dialogs to a profile in a failure_route
abalashov at evaristesys.com
Mon Apr 28 19:49:29 CEST 2014
Am I not allowed to call dlg_manage() and add a dialog to a profile
inside a request_route that is called out of a failure_route?
The sequence of events is like this:
1. INVITE ---------------->
2. <---------- 302 redirect
3. ACK ------------------->
4. INVITE (new branch) --->
It's in #4 that I add the dialog to a profile and call dlg_manage().
There's a slight ambiguity because I am calling in a request_route, but
the request_route is really called from a failure_route that catches the
302. It contains common logic that is used in both #1 and #4. So, the
message being processed is 302, but the execution context is request_route.
The docs say that dlg_manage() can be used in a request_route, and that
set_dlg_profile() can be called from request/branch/reply/failure
routes. But, I suppose it's logical that dlg_manage() ought to operate
on the initial dialog-opening request. However, since the 302 is part of
the same transaction as the initial INVITE, I would think that's okay.
Anyway, I get these messages a lot:
Apr 28 17:41:04 p01 /usr/local/sbin/kamailio: CRITICAL: dialog
[dlg_profile.c:444]: set_dlg_profile(): BUG - dialog not found in a non
REQUEST route (1)
Apr 28 17:41:04 p02 /usr/local/sbin/kamailio: ERROR: dialog
[dialog.c:800]: w_set_dlg_profile(): failed to set profile
At no point am I actually calling set_dlg_profile() outside of a
request_route, but the request_route might be called from a failure_route.
So, the question is, am I doing something wrong? What's the best way to
accommodate this scenario? I don't know if I want to track the dialog or
add it to a profile until after I get the 302.
Alex Balashov - Principal
Evariste Systems LLC
235 E Ponce de Leon Ave
Decatur, GA 30030
Web: http://www.evaristesys.com/, http://www.alexbalashov.com/
More information about the sr-users