<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.E-MailFormatvorlage18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="DE" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Hello Olli,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">you can synchronize dialog profile information between Kamailio servers with the DMQ replication mechanism. You basically load and configure the DMQ module and activate it also in the
 dialog module.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">Cheers,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">Henning<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">-- <o:p>
</o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">Henning Westerholt -
</span><span style="mso-fareast-language:EN-US"><a href="https://skalatan.de/blog/"><span lang="EN-GB" style="color:#0563C1">https://skalatan.de/blog/</span></a></span><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">Kamailio services -
</span><span style="mso-fareast-language:EN-US"><a href="https://skalatan.de/services"><span lang="EN-GB" style="color:#0563C1">https://skalatan.de/services</span></a></span><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><b>From:</b> sr-users <sr-users-bounces@lists.kamailio.org>
<b>On Behalf Of </b>Olli Attila<br>
<b>Sent:</b> Sunday, September 29, 2019 10:04 AM<br>
<b>To:</b> Kamailio (SER) - Users Mailing List <sr-users@lists.kamailio.org><br>
<b>Subject:</b> [SR-Users] Call limit through shared database<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Hello,<o:p></o:p></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">I have 2 kam instances using one shared database and both kam servers running the same routing logic code. Kamailio servers are configured to use the same database as dialog backend. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">I am limiting the concurrent dialogs in the following way but it seems that kamailio is using its own memory to read profile size rather than the db. Second kam is not aware of the dialog profiles that the first
 kam wrote to the shared db. Is there a way to get multiple kam instances to read profile size from the same database when calling the get_profile_size function?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">modparam("dialog", "profiles_with_value", "concurrent_calls")<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">modparam("dialog", "dlg_flag", 4)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">modparam("dialog", "db_url", DBURL)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">modparam("dialog", "db_mode", 1)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">route[LIMIT_CALLS] {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">if (!dlg_isflagset("1")) { # $td – gateways, $fu - user<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">        if (get_profile_size("concurrent_calls", "$fu", "$avp(calls)")) {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">                if ($avp(calls) >= 3) {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">                        xlog("L_INFO", "Concurrent calls $fu at limit");<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">                        send_reply("503", "Calls limit reached"); exit;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">                } else {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">                        dlg_manage(); dlg_setflag("1");<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">                        set_dlg_profile("concurrent_calls", "$fu");<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">                }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">        }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">}<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">}<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Cheers, <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Olli<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
</div>
</div>
</body>
</html>