<br><br><div class="gmail_quote">On Tue, Apr 20, 2010 at 4:07 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">Hi Jock,<br>
<br>
Jock McKechnie wrote:<br>
&gt;<br>
&gt;<br>
</div><div class="im">&gt; On Fri, Apr 16, 2010 at 5:48 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>
</div><div class="im">&gt;     ok, while investigating, I found a small harmless bug in the<br>
&gt;     ds_next_xxxx() functions - they were trying to populate the ATTR avp<br>
&gt;     even if it was not set - this was the reason for the err message you<br>
&gt;     were getting.<br>
&gt;<br>
&gt;     The bug was fixed, so if you update from SVN it should go away.<br>
&gt;<br>
&gt;<br>
&gt; That&#39;s great, Bogdan - however I&#39;m guessing this doesn&#39;t help the<br>
&gt; ds_select_domain()&#39;s inability to avoid marked entries.<br>
&gt;<br>
&gt; Any thoughts on that one? :/<br>
&gt;<br>
</div>First, are you sure your destination is in inactive state - please check<br>
via MI with &quot;opensipsctl fifo ds_list&quot; to see the &quot;I&quot; or &quot;P&quot; state for<br>
the destination.<br></blockquote><div><br></div><div>Argh, no, the state remains &quot;A&quot;. I -am- running the ds_mark_dst(&quot;p&quot;), and it isn&#39;t returning an error:</div><div><br></div><div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><div class="im" style="color: rgb(80, 0, 80); ">
<div>        if( t_check_status(&quot;408&quot;) ){</div><div>                xlog( &quot;L_NOTICE&quot;, &quot;[$Tf] FR: $ci -- TIMEOUT for Gateway $rd (marking as bad)\n&quot; );</div></div><div>                if (!ds_mark_dst(&quot;p&quot;)) {</div>
<div>                        xlog(&quot;L_NOTICE&quot;, &quot;[$Tf] Panic! Not marked\n&quot;);</div><div>                        }</div><div>                }</div></span></div><div> </div></div>It correctly logs &quot;marking as bad&quot;, so it is falling into the right if {} block, but apparently, isn&#39;t working.<div>
<br></div><div>I&#39;ve done a bit more digging:</div><div>I changed the &quot;p&quot; to a &quot;i&quot;, and it correctly marks it as &quot;Inactive&quot;.</div><div>I enabled full debugging (level 4), set it back to &quot;p&quot; and restarted, and then ran the call again. I see this in the logs:</div>
<div>DBG:dispatcher:ds_mark_dst: mode [2] grp [1101] dst [sip:<a href="http://192.168.0.20:5060">192.168.0.20:5060</a>]</div><div>I then searched for the phrase &quot;probing set&quot;, which is what dispatch.c&#39;s ds_check_timer() spits out when it attempts to check, with no hits matching the probing message, so I also know that it isn&#39;t somehow probing and deciding it is working between when it is marked as &quot;to probe&quot; and when I run the opensipsctl &#39;ds_list&#39; request. This would suggest that ds_mark_dst() and/or ds_set_state() aren&#39;t functioning correctly.</div>
<div><br></div><div>I&#39;ve read through the ds_mark_dst, ds_set_state() and I&#39;m just not seeing why this isn&#39;t being set - not that I&#39;m a particularly great C coder, but I know enough to be able to read it fairly well.</div>
<div><br></div><div>I&#39;m just not sure. Thanks, Bogdan, I appreciate your continued help.</div><div><br></div><div> - Jock</div>