<br><br><div class="gmail_quote">On Wed, Apr 21, 2010 at 2:36 AM, 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="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">Jock McKechnie wrote:<br>
&gt;<br>
&gt;<br>
&gt; On Tue, Apr 20, 2010 at 4:07 AM, Bogdan-Andrei Iancu<br>
</div><div class="im">&gt; &lt;<a href="mailto:bogdan@voice-system.ro">bogdan@voice-system.ro</a> &lt;mailto:<a href="mailto:bogdan@voice-system.ro">bogdan@voice-system.ro</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;     Hi Jock,<br>
&gt;<br>
&gt;     Jock McKechnie wrote:<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt; On Fri, Apr 16, 2010 at 5:48 AM, Bogdan-Andrei Iancu<br>
&gt;     &gt; &lt;<a href="mailto:bogdan@voice-system.ro">bogdan@voice-system.ro</a> &lt;mailto:<a href="mailto:bogdan@voice-system.ro">bogdan@voice-system.ro</a>&gt;<br>
</div>&gt;     &lt;mailto:<a href="mailto:bogdan@voice-system.ro">bogdan@voice-system.ro</a> &lt;mailto:<a href="mailto:bogdan@voice-system.ro">bogdan@voice-system.ro</a>&gt;&gt;&gt;<br>
<div><div></div><div class="h5">&gt;     wrote:<br>
&gt;     &gt;<br>
&gt;     &gt;     Hi Jock,<br>
&gt;     &gt;<br>
&gt;     &gt;     ok, while investigating, I found a small harmless bug in the<br>
&gt;     &gt;     ds_next_xxxx() functions - they were trying to populate the<br>
&gt;     ATTR avp<br>
&gt;     &gt;     even if it was not set - this was the reason for the err<br>
&gt;     message you<br>
&gt;     &gt;     were getting.<br>
&gt;     &gt;<br>
&gt;     &gt;     The bug was fixed, so if you update from SVN it should go away.<br>
&gt;     &gt;<br>
&gt;     &gt;<br>
&gt;     &gt; That&#39;s great, Bogdan - however I&#39;m guessing this doesn&#39;t help the<br>
&gt;     &gt; ds_select_domain()&#39;s inability to avoid marked entries.<br>
&gt;     &gt;<br>
&gt;     &gt; Any thoughts on that one? :/<br>
&gt;     &gt;<br>
&gt;     First, are you sure your destination is in inactive state - please<br>
&gt;     check<br>
&gt;     via MI with &quot;opensipsctl fifo ds_list&quot; to see the &quot;I&quot; or &quot;P&quot; state for<br>
&gt;     the destination.<br>
&gt;<br>
&gt;<br>
&gt; Argh, no, the state remains &quot;A&quot;. I -am- running the ds_mark_dst(&quot;p&quot;),<br>
&gt; and it isn&#39;t returning an error:<br>
&gt;<br>
&gt;         if( t_check_status(&quot;408&quot;) ){<br>
&gt;                 xlog( &quot;L_NOTICE&quot;, &quot;[$Tf] FR: $ci -- TIMEOUT for<br>
&gt; Gateway $rd (marking as bad)\n&quot; );<br>
&gt;                 if (!ds_mark_dst(&quot;p&quot;)) {<br>
&gt;                         xlog(&quot;L_NOTICE&quot;, &quot;[$Tf] Panic! Not marked\n&quot;);<br>
&gt;                         }<br>
&gt;                 }<br>
&gt;<br>
&gt; It correctly logs &quot;marking as bad&quot;, so it is falling into the right if<br>
&gt; {} block, but apparently, isn&#39;t working.<br>
&gt;<br>
&gt; I&#39;ve done a bit more digging:<br>
&gt; I changed the &quot;p&quot; to a &quot;i&quot;, and it correctly marks it as &quot;Inactive&quot;.<br>
&gt; I enabled full debugging (level 4), set it back to &quot;p&quot; and restarted,<br>
&gt; and then ran the call again. I see this in the logs:<br>
&gt; DBG:dispatcher:ds_mark_dst: mode [2] grp [1101] dst<br>
</div></div>&gt; [sip:<a href="http://192.168.0.20:5060" target="_blank">192.168.0.20:5060</a> &lt;<a href="http://192.168.0.20:5060" target="_blank">http://192.168.0.20:5060</a>&gt;]<br>
<div class="im">&gt; I then searched for the phrase &quot;probing set&quot;, which is what<br>
&gt; dispatch.c&#39;s ds_check_timer() spits out when it attempts to check,<br>
&gt; with no hits matching the probing message, so I also know that it<br>
&gt; isn&#39;t somehow probing and deciding it is working between when it is<br>
&gt; marked as &quot;to probe&quot; and when I run the opensipsctl &#39;ds_list&#39; request.<br>
&gt; This would suggest that ds_mark_dst() and/or ds_set_state() aren&#39;t<br>
&gt; functioning correctly.<br>
&gt;<br>
&gt; I&#39;ve read through the ds_mark_dst, ds_set_state() and I&#39;m just not<br>
&gt; seeing why this isn&#39;t being set - not that I&#39;m a particularly great C<br>
&gt; coder, but I know enough to be able to read it fairly well.<br>
&gt;<br>
&gt; I&#39;m just not sure. Thanks, Bogdan, I appreciate your continued help.<br>
</div>The problem seams to be related to the &quot;ds_probing_threshhold&quot; parameter<br>
which you set to 3 - this means the you need to report 3 consecutive<br>
times a failure in order to disable the destination - see the docs on<br>
this param.<br>
<br>
So, if you want to have the destination disabled on the first failure,<br>
set the &quot;ds_probing_threshhold&quot; param to 1.<br><br></blockquote><div><br></div><div>How exceedingly embarrassing.</div><div><br></div><div>I shall now slink into the corner, as it works precisely as the documentation and my configuration has defined. Thank you for hitting me with the Clue-by-Four, Bogdan.</div>
<div><br></div><div> - Jock </div></div><br>