[Kamailio-Users] Dialog profile size not resetting in 1.4.4.
Alex Balashov
abalashov at evaristesys.com
Tue May 19 13:34:17 CEST 2009
Alex Balashov wrote:
> Greetings,
>
> I've run into an issue with 1.4.4 in which the following appears to be
> happening, and I'm yet to determine the cause:
>
> The total amount of open inbound calls (dialogs) is tracked with the
> dialog module by putting them in a global profile. Because of a
> segfault bug with profiles with "no values," a workaround is used
> wherein a profile "with" values is created and the hash key is always
> the same value (i.e. "1"). The dialog tracking flag is 2:
>
> modparam("dialog", "dlg_flag", 2)
>
> And profile looks like this:
>
> modparam("dialog", "profiles_with_value",
> "globalinbound;specificinbound")
>
> Anyway, inbound INVITEs get handed off to a route (route[1]) that
> performs some logic like this:
>
> route[1] {
> # Check if DID is assigned to an account with database
> # and store value in AVP, along with other values.
>
> if($avp(S:did_assigned) == "0") {
> sl_send_reply("404", "Not Found");
> exit;
> }
>
> get_profile_size("specificinbound", "$avp(S:account_id)",
> "$var(a_concurrent_calls)");
>
> if($var(a_concurrent_calls) >= $avp(S:port_limit)) {
> sl_send_reply("486", "Busy");
> exit;
> }
>
> setflag(2); # Track dialog.
>
> set_dlg_profile("globalinbound", "1");
> set_dlg_profile("specificinbound", "$avp(S:account_id)");
For completeness, I should add here:
# Perform dispatcher election - ds_select_domain().
t_on_reply("1");
t_on_failure("1");
if(!t_relay())
sl_reply_error();
exit;
> }
--
Alex Balashov
Evariste Systems
Web : http://www.evaristesys.com/
Tel : (+1) (678) 954-0670
Direct : (+1) (678) 954-0671
Mobile : (+1) (678) 237-1775
More information about the Users
mailing list