<div dir="ltr">Do we have any option for the dispatcher function,where i can give more that one startergy ( parameter). Like &quot;0&quot; for hash on callid and &quot;4&quot; for round robin.<br><br>thanks<br><br><br><div class="gmail_quote">
On Mon, Aug 18, 2008 at 4:54 PM, Bogdan-Andrei Iancu <span dir="ltr">&lt;<a href="mailto:bogdan@voice-system.ro">bogdan@voice-system.ro</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi there,<br>
<br>
technocrat voip wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="Ih2E3d">
Thanks for the response.<br>
<br>
I think i got the required action.<br>
<br>
following is the DBG messages<br>
<br></div>
[....]<div class="Ih2E3d"><br>
<br>
<br>
Few concerns / doubts are.<br>
<br>
1) If i use &nbsp;the &quot;0&quot; (hash on callid) instead of &quot;4&quot; (round robin) , does this mean that there is no gaurenty that all the messages of one UA will be going to same server.<br>
</div></blockquote>
hash on callid guarantees that all requests for a dialog will go to the same destination (callid is constant across dialog)<div class="Ih2E3d"><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
2) If i use the &quot;0&quot; does this also take care of load balancing. In round robin i observed it is like 1:1 forwarding to the servers , what would be in the &quot;0&quot; case ?<br>
</blockquote></div>
yes, it will do dispatching across all the available destinations from the class.<div class="Ih2E3d"><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
3) In general what would be the best option to use with the dispatcher in load balancing for the half a million users.<br>
</blockquote></div>
depends of what you want to balance and if the peers behind are or not identical.<br>
<br>
Regards,<br>
Bogdan<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
<br>
thanks ..<div class="Ih2E3d"><br>
On Mon, Aug 18, 2008 at 1:56 PM, Bogdan-Andrei Iancu &lt;<a href="mailto:bogdan@voice-system.ro" target="_blank">bogdan@voice-system.ro</a> &lt;mailto:<a href="mailto:bogdan@voice-system.ro" target="_blank">bogdan@voice-system.ro</a>&gt;&gt; wrote:<br>

<br>
 &nbsp; &nbsp;Hi David,<br>
<br>
 &nbsp; &nbsp;This should not be an issue - normally you should do dispatching<br>
 &nbsp; &nbsp;only on<br>
 &nbsp; &nbsp;the original requests and use record_route/loose_route for the<br>
 &nbsp; &nbsp;sequential requests (with no dispatching). CANCEL are automatically<br>
 &nbsp; &nbsp;routed to the same destination as INVITE by TM, so again, you do not<br>
 &nbsp; &nbsp;need to do dispatching on them.<br>
<br>
 &nbsp; &nbsp;Regards<br>
 &nbsp; &nbsp;Bogdan<br>
<br>
 &nbsp; &nbsp;David Villasmil wrote:<br>
 &nbsp; &nbsp;&gt; Hello,<br>
 &nbsp; &nbsp;&gt;<br>
 &nbsp; &nbsp;&gt; &nbsp; &nbsp; &nbsp;You can&#39;t simply do a round-robin on all messages, you must<br>
 &nbsp; &nbsp;do it<br>
 &nbsp; &nbsp;&gt; with hash on call id. At least in my experience. That&#39;s because<br>
 &nbsp; &nbsp;if you<br>
 &nbsp; &nbsp;&gt; send an invite to server 1 and receive a CANCEL and your simply<br>
 &nbsp; &nbsp;doing<br>
 &nbsp; &nbsp;&gt; rr it is not guarateed to go to the same server you sent the<br>
 &nbsp; &nbsp;original<br>
 &nbsp; &nbsp;&gt; INVITE to.... But if you use hash over call-id you can be sure all<br>
 &nbsp; &nbsp;&gt; subsequent messages are delivered to the correct server.<br>
 &nbsp; &nbsp;&gt;<br>
 &nbsp; &nbsp;&gt;<br>
 &nbsp; &nbsp;&gt; David<br>
 &nbsp; &nbsp;&gt;<br>
 &nbsp; &nbsp;&gt; On Sun, Aug 17, 2008 at 8:12 PM, Bogdan-Andrei Iancu<br></div><div><div></div><div class="Wj3C7c">
 &nbsp; &nbsp;&gt; &lt;<a href="mailto:bogdan@voice-system.ro" target="_blank">bogdan@voice-system.ro</a> &lt;mailto:<a href="mailto:bogdan@voice-system.ro" target="_blank">bogdan@voice-system.ro</a>&gt;&gt; wrote:<br>
 &nbsp; &nbsp;&gt;<br>
 &nbsp; &nbsp;&gt;&gt; Hi there,<br>
 &nbsp; &nbsp;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt; do you get any error into the logs?<br>
 &nbsp; &nbsp;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt; have you tried to use a different algorithm like 0 (hash over the<br>
 &nbsp; &nbsp;&gt;&gt; callid) - second param, to see if there is any difference?<br>
 &nbsp; &nbsp;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt; Regards,<br>
 &nbsp; &nbsp;&gt;&gt; Bogdan<br>
 &nbsp; &nbsp;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt; technocrat voip wrote:<br>
 &nbsp; &nbsp;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; I am have openser installed and my expectation with the below<br>
 &nbsp; &nbsp;&gt;&gt;&gt; configuration is open ser will forward the request it gets to the<br>
 &nbsp; &nbsp;&gt;&gt;&gt; other servers ( dispatch.cfg ) in round robin fashion .<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; I mean first will goto the first serer and second to the<br>
 &nbsp; &nbsp;second server<br>
 &nbsp; &nbsp;&gt;&gt;&gt; and third again to first server like that..<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; My configs are like below<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; openser.cfg<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; children=4<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; /* uncomment the following lines to enable debugging */<br>
 &nbsp; &nbsp;&gt;&gt;&gt; debug=9<br>
 &nbsp; &nbsp;&gt;&gt;&gt; fork=no<br>
 &nbsp; &nbsp;&gt;&gt;&gt; log_stderror=yes<br>
 &nbsp; &nbsp;&gt;&gt;&gt; port=5060<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; /* uncomment and configure the following line if you want<br>
 &nbsp; &nbsp;openser to<br>
 &nbsp; &nbsp;&gt;&gt;&gt; &nbsp; &nbsp;bind on a specific interface/port/proto (default bind on all<br>
 &nbsp; &nbsp;&gt;&gt;&gt; available) */<br>
 &nbsp; &nbsp;&gt;&gt;&gt; listen=udp:xxx.xxx.xxx.204:5060<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; ####### Modules Section ########<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; #set module path<br>
 &nbsp; &nbsp;&gt;&gt;&gt; mpath=&quot;/usr/local/lib/openser/modules/&quot;<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; /* uncomment next line for MySQL DB support */<br>
 &nbsp; &nbsp;&gt;&gt;&gt; #loadmodule &quot;mysql.so&quot;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; loadmodule &quot;sl.so&quot;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; loadmodule &quot;tm.so&quot;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; loadmodule &quot;rr.so&quot;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; loadmodule &quot;maxfwd.so&quot;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; loadmodule &quot;usrloc.so&quot;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; loadmodule &quot;registrar.so&quot;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; loadmodule &quot;textops.so&quot;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; loadmodule &quot;mi_fifo.so&quot;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; loadmodule &quot;uri_db.so&quot;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; loadmodule &quot;uri.so&quot;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; loadmodule &quot;xlog.so&quot;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; loadmodule &quot;acc.so&quot;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; loadmodule &quot;dispatcher.so&quot;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; # ----------------- setting module-specific parameters<br>
 &nbsp; &nbsp;---------------<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; # ----- mi_fifo params -----<br>
 &nbsp; &nbsp;&gt;&gt;&gt; modparam(&quot;mi_fifo&quot;, &quot;fifo_name&quot;, &quot;/tmp/openser_fifo&quot;)<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; # ----- rr params -----<br>
 &nbsp; &nbsp;&gt;&gt;&gt; # add value to ;lr param to cope with most of the UAs<br>
 &nbsp; &nbsp;&gt;&gt;&gt; modparam(&quot;rr&quot;, &quot;enable_full_lr&quot;, 1)<br>
 &nbsp; &nbsp;&gt;&gt;&gt; # do not append from tag to the RR (no need for this script)<br>
 &nbsp; &nbsp;&gt;&gt;&gt; modparam(&quot;rr&quot;, &quot;append_fromtag&quot;, 0)<br>
 &nbsp; &nbsp;&gt;&gt;&gt; # ----- rr params -----<br>
 &nbsp; &nbsp;&gt;&gt;&gt; modparam(&quot;registrar&quot;, &quot;method_filtering&quot;, 1)<br>
 &nbsp; &nbsp;&gt;&gt;&gt; # ----- uri_db params -----<br>
 &nbsp; &nbsp;&gt;&gt;&gt; /* by default we disable the DB support in the module as we do<br>
 &nbsp; &nbsp;not need it<br>
 &nbsp; &nbsp;&gt;&gt;&gt; &nbsp; &nbsp;in this configuration */<br>
 &nbsp; &nbsp;&gt;&gt;&gt; modparam(&quot;uri_db&quot;, &quot;use_uri_table&quot;, 0)<br>
 &nbsp; &nbsp;&gt;&gt;&gt; modparam(&quot;uri_db&quot;, &quot;db_url&quot;, &quot;&quot;)<br>
 &nbsp; &nbsp;&gt;&gt;&gt; # ----- usrloc params -----<br>
 &nbsp; &nbsp;&gt;&gt;&gt; modparam(&quot;usrloc&quot;, &quot;db_mode&quot;, &nbsp; 0)<br>
 &nbsp; &nbsp;&gt;&gt;&gt; /* uncomment the following lines if you want to enable DB<br>
 &nbsp; &nbsp;persistency<br>
 &nbsp; &nbsp;&gt;&gt;&gt; &nbsp; &nbsp;for location entries */<br>
 &nbsp; &nbsp;&gt;&gt;&gt; #modparam(&quot;usrloc&quot;, &quot;db_mode&quot;, &nbsp; 2)<br>
 &nbsp; &nbsp;&gt;&gt;&gt; #modparam(&quot;usrloc&quot;, &quot;db_url&quot;,<br>
 &nbsp; &nbsp;&gt;&gt;&gt; # &nbsp; &nbsp;&quot;mysql://openser:openserrw@localhost/openser&quot;)<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; # ----- auth_db params -----<br>
 &nbsp; &nbsp;&gt;&gt;&gt; /* uncomment the following lines if you want to enable the DB<br>
 &nbsp; &nbsp;based<br>
 &nbsp; &nbsp;&gt;&gt;&gt; &nbsp; &nbsp;authentication */<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; #------ dispatcher params -----<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;modparam(&quot;dispatcher&quot;,&quot;list_file&quot;,&quot;/usr/local/etc/openser/dispatcher.cfg&quot;)<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; ####### Routing Logic ########<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; # main request routing logic<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; route{<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; &nbsp; &nbsp; log(1,&quot;This is the another log message \n&quot;);<br>
 &nbsp; &nbsp;&gt;&gt;&gt; &nbsp; &nbsp; xlog(&quot;L_INFO&quot;, &quot;SIP Request: method [$rm] from [$fu] to<br>
 &nbsp; &nbsp;[$tu]\n&quot;);<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; &nbsp; &nbsp; if (!mf_process_maxfwd_header(&quot;10&quot;)) {<br>
 &nbsp; &nbsp;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; sl_send_reply(&quot;483&quot;,&quot;Too Many Hops&quot;);<br>
 &nbsp; &nbsp;&gt;&gt;&gt; &nbsp; &nbsp; &nbsp; &nbsp; exit;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; &nbsp; &nbsp; }<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; &nbsp; &nbsp; ds_select_dst(&quot;2&quot;,&quot;4&quot;);<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; &nbsp; &nbsp; forward();<br>
 &nbsp; &nbsp;&gt;&gt;&gt; }<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; dispatcher.cfg<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; # $Id: dispatcher.list 3662 2008-02-07 13:06:00Z miconda $<br>
 &nbsp; &nbsp;&gt;&gt;&gt; # dispatcher destination sets<br>
 &nbsp; &nbsp;&gt;&gt;&gt; #<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; # line format<br>
 &nbsp; &nbsp;&gt;&gt;&gt; # setit(integer) destination(sip uri) flags (integer, optional)<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; # proxies<br>
 &nbsp; &nbsp;&gt;&gt;&gt; 2 sip:xx.xx.xxx.137:5080<br>
 &nbsp; &nbsp;&gt;&gt;&gt; 2 sip:xxx.xxx.xx.59:5080<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; continously it goes to 59 only it never goes to 137 ..<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; Any help in this would be appreciated.<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; Please<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;------------------------------------------------------------------------<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt; _______________________________________________<br>
 &nbsp; &nbsp;&gt;&gt;&gt; Users mailing list<br></div></div>
 &nbsp; &nbsp;&gt;&gt;&gt; <a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a> &lt;mailto:<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a>&gt;<div class="Ih2E3d">
<br>
 &nbsp; &nbsp;&gt;&gt;&gt; <a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt; _______________________________________________<br>
 &nbsp; &nbsp;&gt;&gt; Users mailing list<br></div>
 &nbsp; &nbsp;&gt;&gt; <a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a> &lt;mailto:<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a>&gt;<div class="Ih2E3d">
<br>
 &nbsp; &nbsp;&gt;&gt; <a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
 &nbsp; &nbsp;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;&gt;<br>
 &nbsp; &nbsp;&gt;<br>
 &nbsp; &nbsp;&gt; _______________________________________________<br>
 &nbsp; &nbsp;&gt; Users mailing list<br></div>
 &nbsp; &nbsp;&gt; <a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a> &lt;mailto:<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a>&gt;<div class="Ih2E3d"><br>

 &nbsp; &nbsp;&gt; <a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
 &nbsp; &nbsp;&gt;<br>
 &nbsp; &nbsp;&gt;<br>
<br>
<br>
 &nbsp; &nbsp;_______________________________________________<br>
 &nbsp; &nbsp;Users mailing list<br></div>
 &nbsp; &nbsp;<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a> &lt;mailto:<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a>&gt;<div class="Ih2E3d"><br>
 &nbsp; &nbsp;<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
<br>
<br>
</div></blockquote>
<br>
</blockquote></div><br></div>