<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Yes, 4.3 should have all fixes in 4.2.<br>
<br>
Cheers,<br>
Daniel<br>
<br>
<div class="moz-cite-prefix">On 12/06/15 06:06, Ding Ma wrote:<br>
</div>
<blockquote
cite="mid:ABFC70A5-D656-4AC3-A178-9A246747E2B4@gmail.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div class="">OK, we’ll try to update and report back. Wonder if
the latest 4.3 has all the fixes went into the latest 4.2.x. We
already have plan to upgrade to 4.3. </div>
<div class="">Thanks. </div>
<br class="">
<div>
<blockquote type="cite" class="">
<div class="">On Jun 10, 2015, at 10:01 AM, Daniel-Constantin
Mierla <<a moz-do-not-send="true"
href="mailto:miconda@gmail.com" class="">miconda@gmail.com</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<meta content="text/html; charset=utf-8"
http-equiv="Content-Type" class="">
<div bgcolor="#FFFFFF" text="#000000" class=""> It was a fix
for maxload during 4.2.x, but don't recall exactly when
was backported. Can you upgrade to latest 4.2.x and see
the results? Your config file and database don't require
any change, only deploy the binaries for latest 4.2.x and
restart.<br class="">
<br class="">
If the issue is still there with latest 4.2.x, report here
and I will look at it with the first chance.<br class="">
<br class="">
Cheers,<br class="">
Daniel<br class="">
<br class="">
<div class="moz-cite-prefix">On 10/06/15 16:50, Ding Ma
wrote:<br class="">
</div>
<blockquote
cite="mid:CAD6FCvMoNoxxEjWfqz5zXqA3WtykNrgcW0vE0fZZ2aFCPY3PHg@mail.gmail.com"
type="cite" class="">
<div dir="ltr" class="">
<div class="">We're running kamailio 4.2.3. Are there
any changes to dispatcher in 4.2.x?</div>
<div class="">Thanks,</div>
<div class=""><br class="">
</div>
<div class=""># kamailio -V</div>
<div class="">version: kamailio 4.2.3 (x86_64/linux)
5596bd</div>
<div class="">flags: STATS: Off, USE_TCP, USE_TLS,
TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST,
DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC,
F_MALLOC, DBG_F_MALLOC, USE_FUTEX,
FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE,
USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST,
HAVE_RESOLV_RES</div>
<div class="">ADAPTIVE_WAIT_LOOPS=1024,
MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16,
MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE
8MB</div>
<div class="">poll method support: poll, epoll_lt,
epoll_et, sigio_rt, select.</div>
<div class="">id: 5596bd</div>
<div class="">compiled on 09:32:37 May 6 2015 with
gcc 4.4.7</div>
<div class=""><br class="">
</div>
<div class="gmail_extra"><br class="">
<div class="gmail_quote">On Wed, Jun 10, 2015 at
7:01 AM, Daniel-Constantin Mierla <span dir="ltr"
class=""><<a moz-do-not-send="true"
href="mailto:miconda@gmail.com"
target="_blank" class="">miconda@gmail.com</a>></span>
wrote:<br class="">
<blockquote class="gmail_quote" style="margin:0 0
0 .8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000" class="">
Hello,<br class="">
<br class="">
what version of kamailio are you using?<br
class="">
<br class="">
Cheers,<br class="">
Daniel
<div class="">
<div class="h5"><br class="">
<br class="">
<div class="">On 09/06/15 20:51, Ding Ma
wrote:<br class="">
</div>
</div>
</div>
<blockquote type="cite" class="">
<div class="">
<div class="h5">
<div dir="ltr" class="">I'm trying to
set up kamailio dispatcher to
distribute calls to 2 asterisk
servers. So far, the failover case
seems ok, but I cannot get the
dispatcher to distribute load. All
calls are going to the last
destination entry in the dispatcher
table even if I have set the maxload
attributes. I'm using algorithm 10 for
load distribution. The number of calls
sent to one asterisk is well above the
maxload. Hope someone more experienced
in dispatcher can review my config and
give me some recommendations. Thanks
in advance.
<div class=""><br class="">
</div>
<div class="">Here is the content of
dispatcher table in postgresql db.</div>
<div class=""><br class="">
<div class="">
<div class="">select * from
dispatcher;</div>
<div class=""> id | setid |
destination | flags |
priority | attrs
| description</div>
<div class="">----+-------+--------------------+-------+----------+---------------------------+-------------</div>
<div class=""> 1 | 1 | sip:<a
moz-do-not-send="true"
href="http://10.0.1.31:5061/"
target="_blank" class="">10.0.1.31:5061</a>
| 0 | 0 |
duid=asterisk1;maxload=25 |
Asterisk1</div>
<div class=""> 2 | 1 | sip:<a
moz-do-not-send="true"
href="http://10.0.1.33:5061/"
target="_blank" class="">10.0.1.33:5061</a>
| 0 | 0 |
duid=asterisk2;maxload=25 |
Asterisk2</div>
<div class="">(2 rows)</div>
</div>
</div>
<div class=""><br class="">
</div>
<div class="">Here are the dispatcher
sections in kamailio.cfg.</div>
<div class="">
<div class=""># ----- dispatcher
params -----</div>
<div class="">#!ifdef
WITH_DISPATCHER</div>
<div class="">modparam("dispatcher",
"db_url", DBASTURL)</div>
<div class="">modparam("dispatcher",
"table_name", "dispatcher")</div>
<div class="">modparam("dispatcher",
"force_dst", 1). </div>
<div class=""># If flag 2 is set,
then failover support is enabled.<br
class="">
</div>
<div class="">modparam("dispatcher",
"flags", 3)</div>
<div class=""># the last address in
destination set is used as a final
option to send the request to</div>
<div class="">modparam("dispatcher",
"use_default", 1)</div>
<div class=""># load balancing fail
over</div>
<div class="">modparam("dispatcher",
"dst_avp", "$avp(dsdst)")</div>
<div class="">modparam("dispatcher",
"grp_avp", "$avp(dsgrp)")</div>
<div class="">modparam("dispatcher",
"cnt_avp", "$avp(dscnt)")</div>
<div class="">modparam("dispatcher",
"dstid_avp", "$avp(dsdstid)")</div>
<div class="">modparam("dispatcher",
"attrs_avp", "$avp(dsattrs)")</div>
<div class=""># PVs for hashing</div>
<div class="">modparam("dispatcher",
"hash_pvar", "$fU@$ci")</div>
<div class=""># PVs to store results
when calling ds_is_from_list</div>
<div class="">modparam("dispatcher",
"setid_pvname", "$var(setid)")</div>
<div class="">modparam("dispatcher",
"attrs_pvname", "$var(attrs)")</div>
<div class=""># method to probe the
gateways</div>
<div class="">modparam("dispatcher",
"ds_ping_method", "OPTIONS")</div>
<div class="">modparam("dispatcher",
"ds_ping_from", <a
moz-do-not-send="true" class="">"sip:dispatcher@localhost"</a>)</div>
<div class="">modparam("dispatcher",
"ds_ping_interval", 30)</div>
<div class="">modparam("dispatcher",
"ds_probing_threshhold", 10)</div>
<div class="">modparam("dispatcher",
"ds_ping_reply_codes",
"class=2;code=403;code=404;code=484;code=488;class=3")</div>
<div class="">modparam("dispatcher",
"ds_probing_mode", 1)</div>
<div class=""># size of hash table
storing data for call load
dispatching, power of two</div>
<div class="">modparam("dispatcher",
"ds_hash_size", 10)</div>
<div class=""># expiration time in
seconds to remove the load on a
destination if no BYE was received</div>
<div class="">modparam("dispatcher",
"ds_hash_expire", 3600)</div>
<div class=""># expiration time in
seconds to remove the load on a
destination if no 200 OK for
INVITE was received</div>
<div class=""># and state updated
with ds_load_update</div>
<div class="">modparam("dispatcher",
"ds_hash_initexpire", 60)</div>
<div class="">modparam("dispatcher",
"ds_hash_check_interval", 30)</div>
<div class="">#!endif</div>
</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">route[WITHINDLG] {</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>if
(has_totag()) {</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span># sequential
request withing a dialog should</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span># take the
path determined by record-routing</div>
<div class=""><br class="">
</div>
<div class="">#!ifdef
WITH_DISPATCHER</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>if(is_method("BYE|CANCEL")
&& ds_is_from_list("1",
"3"))</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>ds_load_update();</div>
<div class="">#!endif</div>
</div>
<div class="">......</div>
<div class=""> }</div>
<div class="">}</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">route[FROMASTERISK] {</div>
<div class="">#!ifdef
WITH_DISPATCHER<br class="">
</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>if(ds_is_from_list("1",
"3")) {</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>xlog("L_DBG","$rm
from $fU@$si:$sp: Call from
Asterisk cluster\n");</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>return 1;</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>}</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>return -1;</div>
<div class="">#!else</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>if
($si==$sel(cfg_get.asterisk.bindip))
{</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>return 1;</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>}</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>return -1;</div>
<div class="">#!endif</div>
<div class="">}</div>
</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">onreply_route[MANAGE_REPLY]
{</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>xdbg("incoming
reply\n");</div>
<div class="">#!ifdef
WITH_DISPATCHER</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>if(is_method("INVITE")
&& ds_is_from_list("1",
"3")) {</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>if(status=~"2[0-9][0-9]")
{</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>ds_load_update();</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>}</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>else
if(status=~"[3-7][0-9][0-9]") {</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>ds_load_unset();</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>}</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>}</div>
<div class="">#!endif</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>if(status=~"[12][0-9][0-9]")</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>route(NATMANAGE);</div>
<div class="">}</div>
</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">#!ifdef
WITH_DISPATCHER</div>
<div class="">failure_route[RTF_DISPATCH]
{</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>if
(t_is_canceled()) {</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>exit;</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>}</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span># next DST -
only for 500 or local timeout</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>if
(t_check_status("500") or
(t_branch_timeout() and
!t_branch_replied())) {</div>
<div class=""> # mark
the destination Inactive and
Probing</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>ds_mark_dst("IP");</div>
<div class=""> #
select the new destination</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>if(ds_next_dst())
{</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>t_on_failure("RTF_DISPATCH");</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>route(RELAY);</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>exit;</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>}</div>
<div class=""> else {</div>
<div class="">
# last available node failed to
reply, no other destinations
available</div>
<div class="">
send_reply("404", "No
destination");</div>
<div class="">
exit;</div>
<div class=""> }</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>}</div>
<div class="">}</div>
<div class="">#!endif</div>
</div>
<div class=""><br class="">
</div>
<div class="">
<div class="">route[TOASTERISK] {</div>
<div class="">#!ifdef
WITH_DISPATCHER</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>#
ds_mark_dst("IP");</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span># Call load
distribution</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>if(!ds_select_dst("1",
"10")) {</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>sl_send_reply("500",
"Service Unavailable");</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>xlog("L_INFO","$rm
from $fU@$si:$sp: No destinations
available for $rd\n");</div>
<div class=""> exit;</div>
<div class=""> }</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>xlog("L_DBG",
"--- SCRIPT: going to <$ru>
via <$du>\n");</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>t_on_failure("RTF_DISPATCH");</div>
<div class="">#!else</div>
<div class=""><br class="">
</div>
<div class=""> <span
style="white-space:pre-wrap"
class=""> </span>$du = "sip:" +
$sel(cfg_get.asterisk.bindip) +
":"</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>+
$sel(cfg_get.asterisk.bindport);</div>
<div class="">#!endif</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>route(RELAY);</div>
<div class=""><span
style="white-space:pre-wrap"
class=""> </span>exit;</div>
<div class="">}</div>
</div>
<div class=""><br class="">
</div>
<div class="">
<div class=""><br class="">
</div>
<div class=""># Dispatcher detects a
destination goes down</div>
<div class="">event_route[dispatcher:dst-down]
{</div>
<div class=""> xlog("L_ERR",
"Destination down: $rm $ru
($du)\n");</div>
<div class="">}</div>
<div class=""><br class="">
</div>
<div class=""># Dispatcher detects a
destination comes up </div>
<div class="">event_route[dispatcher:dst-up]
{</div>
<div class=""> xlog("L_ERR",
"Destination up: $rm $ru\n");</div>
<div class="">}</div>
</div>
</div>
<br class="">
<fieldset class=""></fieldset>
<br class="">
</div>
</div>
<pre class="">_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
<a moz-do-not-send="true" href="mailto:sr-users@lists.sip-router.org" target="_blank" class="">sr-users@lists.sip-router.org</a>
<a moz-do-not-send="true" href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users" target="_blank" class="">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a><span class="HOEnZb"><font class="" color="#888888">
</font></span></pre>
<span class="HOEnZb"><font class=""
color="#888888"> </font></span></blockquote>
<span class="HOEnZb"><font class=""
color="#888888"> <br class="">
<pre cols="72" class="">--
Daniel-Constantin Mierla
<a moz-do-not-send="true" href="http://twitter.com/#%21/miconda" target="_blank" class="">http://twitter.com/#!/miconda</a> - <a moz-do-not-send="true" href="http://www.linkedin.com/in/miconda" target="_blank" class="">http://www.linkedin.com/in/miconda</a>
Book: SIP Routing With Kamailio - <a moz-do-not-send="true" href="http://www.asipto.com/" target="_blank" class="">http://www.asipto.com</a></pre>
</font></span></div>
<br class="">
_______________________________________________<br
class="">
SIP Express Router (SER) and Kamailio (OpenSER)
- sr-users mailing list<br class="">
<a moz-do-not-send="true"
href="mailto:sr-users@lists.sip-router.org"
class="">sr-users@lists.sip-router.org</a><br
class="">
<a moz-do-not-send="true"
href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users"
target="_blank" class="">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a><br
class="">
<br class="">
</blockquote>
</div>
<br class="">
</div>
</div>
</blockquote>
<br class="">
<pre class="moz-signature" cols="72">--
Daniel-Constantin Mierla
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://twitter.com/#%21/miconda">http://twitter.com/#!/miconda</a> - <a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://www.linkedin.com/in/miconda">http://www.linkedin.com/in/miconda</a>
Book: SIP Routing With Kamailio - <a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://www.asipto.com/">http://www.asipto.com</a></pre>
</div>
</div>
</blockquote>
</div>
<br class="">
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
Daniel-Constantin Mierla
<a class="moz-txt-link-freetext" href="http://twitter.com/#!/miconda">http://twitter.com/#!/miconda</a> - <a class="moz-txt-link-freetext" href="http://www.linkedin.com/in/miconda">http://www.linkedin.com/in/miconda</a>
Book: SIP Routing With Kamailio - <a class="moz-txt-link-freetext" href="http://www.asipto.com">http://www.asipto.com</a></pre>
</body>
</html>