<br><br><div class="gmail_quote">On Thu, Apr 15, 2010 at 8:41 AM, Bogdan-Andrei Iancu <span dir="ltr"><<a href="mailto:bogdan@voice-system.ro">bogdan@voice-system.ro</a>></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>
><br>
><br>
> On Tue, Apr 13, 2010 at 5:04 AM, Bogdan-Andrei Iancu<br>
</div><div class="im">> <<a href="mailto:bogdan@voice-system.ro">bogdan@voice-system.ro</a> <mailto:<a href="mailto:bogdan@voice-system.ro">bogdan@voice-system.ro</a>>> wrote:<br>
><br>
> Hi Jock,<br>
><br>
> Jock McKechnie wrote:<br>
> ><br>
> > On Mon, Apr 12, 2010 at 10:48 AM, Bogdan-Andrei Iancu<br>
> > <<a href="mailto:bogdan@voice-system.ro">bogdan@voice-system.ro</a> <mailto:<a href="mailto:bogdan@voice-system.ro">bogdan@voice-system.ro</a>><br>
</div>> <mailto:<a href="mailto:bogdan@voice-system.ro">bogdan@voice-system.ro</a> <mailto:<a href="mailto:bogdan@voice-system.ro">bogdan@voice-system.ro</a>>>><br>
<div><div></div><div class="h5">> wrote:<br>
> ><br>
> > Hi Jock,<br>
> > > I'm wondering if the above error is some kind of AVP<br>
> storage thing I<br>
> > > haven't set up that is causing it not to properly "mark" the<br>
> > gateway,<br>
> > > or more likely, not remember the mark. But I can't spot<br>
> anything in<br>
> > > the dispatcher documentation that says as such.<br>
> > your guess is right - dispatcher module uses AVPs to keep<br>
> the state<br>
> > (between sequential tries on the same dialog).<br>
> ><br>
> > I guess the ds_mark_dst() fails - can you check this?<br>
> (this function<br>
> > search for the dst and grp avps to identify the last tried<br>
> > destination.).<br>
> ><br>
> > Greetings Bogdan, and thanks as always;<br>
> ><br>
> > I tried this:<br>
> > if( t_check_status("408") ){<br>
> > xlog( "L_NOTICE", "[$Tf] FR: $ci -- TIMEOUT for<br>
> > Gateway $rd (marking as bad)\n" );<br>
> > if (!ds_mark_dst("p")) {<br>
> > xlog("L_NOTICE", "[$Tf] Panic! Not<br>
> marked\n");<br>
> > }<br>
> > }<br>
> ><br>
> > No 'Panic' in the logs.<br>
> ><br>
> > The dst and grp AVPs are set up, as you saw on my original post,<br>
> > but... that doesn't mean I'm not missing anything.<br>
> ><br>
> So, ds_mark does not fail .....<br>
><br>
> Are you 100% sure your script does define the "cnt" "grp" "dst" avp<br>
> params for the dispatcher module ????<br>
><br>
> Unless somehow I'm doing it wrong, pretty sure:<br>
><br>
> # Set up the dispatcher<br>
> modparam("dispatcher", "db_url",<br>
> "mysql://<a href="http://openser:password@192.168.0.20/company" target="_blank">openser:password@192.168.0.20/company</a><br>
</div></div>> <<a href="http://openser:password@192.168.0.20/company" target="_blank">http://openser:password@192.168.0.20/company</a>>")<br>
<div class="im">> modparam("dispatcher", "table_name", "dispatcher")<br>
> modparam("dispatcher", "flags", 2 )<br>
><br>
> modparam("dispatcher", "dst_avp", "$avp(i:271)")<br>
> modparam("dispatcher", "grp_avp", "$avp(i:272)")<br>
> modparam("dispatcher", "cnt_avp", "$avp(i:273)")<br>
><br>
> modparam("dispatcher", "ds_ping_method", "OPTIONS")<br>
> modparam("dispatcher", "ds_ping_interval", 5)<br>
> modparam("dispatcher", "ds_ping_from", "<a href="mailto:sip%3A%2B14109999351@192.168.0.2">sip:+14109999351@192.168.0.2</a><br>
</div>> <mailto:<a href="mailto:sip%253A%252B14109999351@192.168.0.2">sip%3A%2B14109999351@192.168.0.2</a>>")<br>
<div class="im">> modparam("dispatcher", "ds_probing_threshhold", 3)<br>
><br>
> As far as I can tell from the documentation and other people's<br>
> examples, this should be all that is required to make this function...<br>
><br>
</div>Could you check and be sure the error:<br>
<div class="im"><br>
ERROR:core:search_first_avp: 0 ID or NULL NAME AVP!<br>
<br>
</div>comes from the ds_mark_dst() ? - put some logs before and after it. Also eabling full debug (level 4) may also help.<br><br></blockquote><div><br></div><div>My apologies, Bogdan, I should have done this better myself. I have traced the error to the ds_next_domain():</div>
<div><br></div><div>Config section from inside failure_route[]:</div><div><br></div><div>xlog("L_NOTICE", "[$Tf] HEREA\n");</div><div>if (ds_next_domain()) {</div><div> xlog("L_NOTICE", "[$Tf] HEREB\n");</div>
<div> .</div><div> .</div><div><br></div><div>The logs contain:</div></div><div><div>[Thu Apr 15 11:23:06 2010] HEREA</div><div>ERROR:core:search_first_avp: 0 ID or NULL NAME AVP!</div><div>DBG:dispatcher:ds_next_dst: using [sip:<a href="http://192.168.0.20:5060">192.168.0.20:5060</a>]</div>
<div>[Thu Apr 15 11:23:06 2010] HEREB</div></div><div><br></div><div><br></div><div>So clearly the ds_next_domain() is producing it. However the function -is- returning the correct next entry in the dispatcher list, which is bizarre. I'm not sure, now, how this related to ds_select_domain() incorrectly choosing "marked" entries, alas.</div>
<div><br></div><div>Cheers;</div><div><br></div><div> - Jock</div>