Hi,<br><br>I&#39;m using Opensips 1.5.2 to distribute incoming calls to my clients using dispatcher module. I&#39;m keeping my gateway list in db_mysql and use ds_select_dst(&quot;1&quot;, &quot;4&quot;); to select a gateway using round-robin algorithm. I have a few issues about the module behaviour.<br>
<br>- The first one is about pinging. I&#39;ve configured dispatcher to send ping requests every 20 seconds. But if destination is not available, ping requests are repeated every 4 seconds. I guess there is another module which repeats the unresponded sip messages. How can I prevent this and change the repeat timeout about this?<br>
<br>- The second issue is about selecting gateways. When I receive busy from one of the destinations I&#39;m calling ds_next_dst() and this returns me a destination which is not alive and does not respond to ping requests. I&#39;m expecting to have only destinations which are alive, and don&#39;t understand why it is returned. Another issue here is: I&#39;m sending INVITE request to this dead destination and dead host is not responding as expected. After that, every 4 seconds INVITE request is repeated for this dead destination.<br>
<br>How can I fix these issues?<br><br>Thanks,<br><br>--------------------<br>modparam(&quot;dispatcher&quot;, &quot;db_url&quot;, &quot;mysql://opensips:opensipsrw@localhost/opensips&quot;)<br>modparam(&quot;dispatcher&quot;, &quot;table_name&quot;, &quot;dispatcher&quot;)<br>
modparam(&quot;dispatcher&quot;, &quot;setid_col&quot;, &quot;setid&quot;)<br>modparam(&quot;dispatcher&quot;, &quot;destination_col&quot;, &quot;destination&quot;)<br>modparam(&quot;dispatcher&quot;, &quot;flags_col&quot;, &quot;flags&quot;)<br>
modparam(&quot;dispatcher&quot;, &quot;flags&quot;, 3)<br>modparam(&quot;dispatcher&quot;, &quot;force_dst&quot;, 1)<br>modparam(&quot;dispatcher&quot;, &quot;ds_ping_method&quot;, &quot;OPTIONS&quot;)<br>modparam(&quot;dispatcher&quot;, &quot;ds_ping_from&quot;, &quot;<a href="mailto:sip%3Adispatcher@10.210.154.201">sip:dispatcher@10.210.154.201</a>&quot;)<br>
modparam(&quot;dispatcher&quot;, &quot;ds_ping_interval&quot;, 20)<br>modparam(&quot;dispatcher&quot;, &quot;ds_probing_threshhold&quot;, 1)<br>modparam(&quot;dispatcher&quot;, &quot;ds_probing_mode&quot;, 1)<br>#modparam(&quot;dispatcher&quot;, &quot;use_default&quot;, 0) <br>
modparam(&quot;dispatcher&quot;, &quot;dst_avp&quot;, &quot;$avp(i:271)&quot;)<br>modparam(&quot;dispatcher&quot;, &quot;grp_avp&quot;, &quot;$avp(i:272)&quot;)<br>modparam(&quot;dispatcher&quot;, &quot;cnt_avp&quot;, &quot;$avp(i:273)&quot;)<br>
--------------------<br>t_on_failure(&quot;11&quot;); <br>  <br>ds_select_dst(&quot;1&quot;, &quot;4&quot;);<br><br>xlog(&quot;L_INFO&quot;,&quot;ds_dispatcher $avp(i:271) $avp(i:272) $avp(i:273)&quot;);<br>xlog(&quot;L_INFO&quot;,&quot;ds_dispatcher Trying first route $dd $od $rd $td $br&quot;);<br>
  <br>t_relay();<br>--------------------<br>failure_route[11] {<br>    xlog(&quot;L_INFO&quot;,&quot;ds_dispatcher First route failed. Trying second&quot;);<br>    if(t_check_status(&quot;408&quot;) ){<br>         if (ds_next_dst()){<br>
             xlog(&quot;L_INFO&quot;,&quot;ds_dispatcher $avp(i:271) $avp(i:272) $avp(i:273)&quot;);<br>             t_on_failure(&quot;11&quot;);<br>             t_relay();<br>        } else {<br>                xlog(&quot;L_INFO&quot;,&quot;ds_dispatcher Can not select the second one&quot;);<br>
        }<br>    } else if (t_check_status(&quot;486&quot;)) {<br>         if (ds_next_dst()){<br>             xlog(&quot;L_INFO&quot;,&quot;ds_dispatcher $avp(i:271) $avp(i:272) $avp(i:273)&quot;);<br>             t_on_failure(&quot;11&quot;);<br>
             t_relay();<br>        } else {<br>                xlog(&quot;L_INFO&quot;,&quot;ds_dispatcher Can not select the second one&quot;);<br>        }<br>    } else {<br>        xlog(&quot;L_INFO&quot;,&quot;ds_dispatcher Run out of servers in dispatcher.list&quot;);<br>
    }<br>}<br><br><br>