Hello,
On 19/06/15 12:14, Muhammad Shahzad wrote:
Hi,
Lasting night i was doing some tests and identified a strange behavior
from dialog module. I am using Kamailio v4.3.0 rev. c6aa95.
I basically wanted to identify if an incoming sequential ACK (from
caller for an answered call) or a BYE (from callee who wants to hangup
the call) belong to an existing dialog.
First I tried to use dialog profiles as they were already enabled in
my kamailio.cfg for every call. Calling the function "is_in_profile"
after loose_route in WITHINDLG route, does not works for ACK, but
works for BYE.
Then I added dialog flags to initial INVITE (using function
"dlg_setflag") and check them for ACK and BYE after loose_route (using
"dlg_isflagset" method), i have the same behavior. They worked/matched
only for BYE, not for ACK.
Lastly I set dialog variables (e.g. dlg_var(my_call) = "1") in initial
INVITE and checked for them for ACK and BYE requests after
loose_route. Only they worked perfectly, i.e. i can match them for
both incoming ACK and BYE requests.
Is this correct and expected behavior? Why dialog profile and flags do
not match for a dialog in unconfirmed state (i.e. ACK from caller
after successful call answer)? They only work for confirmed dialogs
(e.g. BYE from callee).On the other hand, dialog variables seems to
work everywhere (i.e. all sequential requests).
open an issue on the tracker at github project, because the dlg flags
should be visible always for requests belonging to the same dialog. I
will investigate when I get a bit of time, having it on traker makes
sure it is not forgotten.
Cheers,
Daniel
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda -
http://www.linkedin.com/in/miconda
Book: SIP Routing With Kamailio -
http://www.asipto.com