2009/4/9 Iñaki Baz Castillo ibc@aliax.net:
Yes, using the flag it just didn't work at all. Using dlg_manage() it worked. However I saw duplicate dialog entries (in both memory and DB table). Profiles don't work for me at all.
Forget the above, now I've re-checked it:
---- Kamailio rev 5772
modparam("dialog", "dlg_match_mode", 1) modparam("dialog", "db_mode", 1) ----
I've checked basically the following two cases:
a) setflag(FLAG_DIALOG); set_dlg_profile("inbound");
b) dlg_manage(); set_dlg_profile("inbound");
In both cases I add:
[[ in-dialog section ]] is_in_profile("inbound")) xlog("L_CRIT", "*********** this request belongs to a inbound call\n"); if(dlg_isflagset("1")) xlog("L_CRIT", "*********** Dialog Flag is SET \n");
Results:
a)
- Dialog entries are created correctly in memory and DB.
- Dialog profiles are not created: profile:: name=inbound value= count=0
- is_in_profile("inbound")) obviously doesn't work.
- if(dlg_isflagset("1")) doesnt' work for in_dialog request (it just works if I check it in the initial INVITE request after setting it, so it behaves as a script flag).
b)
- Dialog entries are created correctly in memory and DB.
- Dialog profiles are correctly created: profile:: name=inbound value= count=1
- is_in_profile("inbound")) doesn't work for in-dialog requests, neither in the initial INVITE after setting: set_dlg_profile("inbound");
- if(dlg_isflagset("1")) doesnt' work for in_dialog request (it just works if I check it in the initial INVITE request after setting it, so it behaves as a script flag).
There are some things I son't know (documentation is not very extended). For example, I don't know if I must use dlg_manage() when processing in-dialog requests, perhaps it's enough with running this function when proccesing the initial request? Also, the order in which functions as dlg_manage() and set_dlg_profile() is not documented. Doesn't it matter?
Regards.