[OpenSIPS-Users] One dispatcher mystery solved; Doesn't seem to be "remembering" a gateway is failed however

Richard Revels rrevels at bandwidth.com
Sun Sep 5 17:15:26 CEST 2010


I take that back.  ping_from is different.  ping_sock is either in a newer version than I have or doesn't exist.

Richard

On Sep 5, 2010, at 10:25 AM, Richard Revels wrote:

> Another little harmless thing is the 1.6 documentation calls out ds_ping_sock but the param is ds_ping_from.  Didn't see this mentioned on the list so I don't think this has changed in more recent revisions.
> 
> Richard
> 
> On Apr 16, 2010, at 6:48 AM, Bogdan-Andrei Iancu wrote:
> 
>> Hi Jock,
>> 
>> ok, while investigating, I found a small harmless bug in the 
>> ds_next_xxxx() functions - they were trying to populate the ATTR avp 
>> even if it was not set - this was the reason for the err message you 
>> were getting.
>> 
>> The bug was fixed, so if you update from SVN it should go away.
>> 
>> Regards,
>> Bogdan
>> 
>> Jock McKechnie wrote:
>>> 
>>> 
>>> On Thu, Apr 15, 2010 at 8:41 AM, Bogdan-Andrei Iancu 
>>> <bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>> wrote:
>>> 
>>>   Jock McKechnie wrote:
>>>> 
>>>> 
>>>> On Tue, Apr 13, 2010 at 5:04 AM, Bogdan-Andrei Iancu
>>>> <bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>
>>>   <mailto:bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>>>
>>>   wrote:
>>>> 
>>>>   Hi Jock,
>>>> 
>>>>   Jock McKechnie wrote:
>>>>> 
>>>>> On Mon, Apr 12, 2010 at 10:48 AM, Bogdan-Andrei Iancu
>>>>> <bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>
>>>   <mailto:bogdan at voice-system.ro <mailto:bogdan at voice-system.ro>>
>>>>   <mailto:bogdan at voice-system.ro
>>>   <mailto:bogdan at voice-system.ro> <mailto:bogdan at voice-system.ro
>>>   <mailto:bogdan at voice-system.ro>>>>
>>>>   wrote:
>>>>> 
>>>>>   Hi Jock,
>>>>>> I'm wondering if the above error is some kind of AVP
>>>>   storage thing I
>>>>>> haven't set up that is causing it not to properly
>>>   "mark" the
>>>>>   gateway,
>>>>>> or more likely, not remember the mark. But I can't spot
>>>>   anything in
>>>>>> the dispatcher documentation that says as such.
>>>>>   your guess is right - dispatcher module uses AVPs to keep
>>>>   the state
>>>>>   (between sequential tries on the same dialog).
>>>>> 
>>>>>   I guess the ds_mark_dst() fails - can you check this?
>>>>   (this function
>>>>>   search for the dst and grp avps to identify the last tried
>>>>>   destination.).
>>>>> 
>>>>> Greetings Bogdan, and thanks as always;
>>>>> 
>>>>> I tried this:
>>>>>       if( t_check_status("408") ){
>>>>>               xlog( "L_NOTICE", "[$Tf] FR: $ci --
>>>   TIMEOUT for
>>>>> Gateway $rd (marking as bad)\n" );
>>>>>               if (!ds_mark_dst("p")) {
>>>>>                       xlog("L_NOTICE", "[$Tf] Panic! Not
>>>>   marked\n");
>>>>>                       }
>>>>>               }
>>>>> 
>>>>> No 'Panic' in the logs.
>>>>> 
>>>>> The dst and grp AVPs are set up, as you saw on my original
>>>   post,
>>>>> but... that doesn't mean I'm not missing anything.
>>>>> 
>>>>   So, ds_mark does not fail .....
>>>> 
>>>>   Are you 100% sure your script does define the "cnt" "grp"
>>>   "dst" avp
>>>>   params for the dispatcher module ????
>>>> 
>>>> Unless somehow I'm doing it wrong, pretty sure:
>>>> 
>>>> # Set up the dispatcher
>>>> modparam("dispatcher", "db_url",
>>>> "mysql://openser:password@192.168.0.20/company
>>>   <http://openser:password@192.168.0.20/company>
>>>> <http://openser:password@192.168.0.20/company>")
>>>> modparam("dispatcher", "table_name", "dispatcher")
>>>> modparam("dispatcher", "flags", 2 )
>>>> 
>>>> modparam("dispatcher", "dst_avp", "$avp(i:271)")
>>>> modparam("dispatcher", "grp_avp", "$avp(i:272)")
>>>> modparam("dispatcher", "cnt_avp", "$avp(i:273)")
>>>> 
>>>> modparam("dispatcher", "ds_ping_method", "OPTIONS")
>>>> modparam("dispatcher", "ds_ping_interval", 5)
>>>> modparam("dispatcher", "ds_ping_from",
>>>   "sip:+14109999351 at 192.168.0.2
>>>   <mailto:sip%3A%2B14109999351 at 192.168.0.2>
>>>> <mailto:sip%3A%2B14109999351 at 192.168.0.2
>>>   <mailto:sip%253A%252B14109999351 at 192.168.0.2>>")
>>>> modparam("dispatcher", "ds_probing_threshhold", 3)
>>>> 
>>>> As far as I can tell from the documentation and other people's
>>>> examples, this should be all that is required to make this
>>>   function...
>>>> 
>>>   Could you check and be sure the error:
>>> 
>>>          ERROR:core:search_first_avp: 0 ID or NULL NAME AVP!
>>> 
>>>   comes from the ds_mark_dst() ? - put some logs before and after
>>>   it. Also eabling full debug (level 4) may also help.
>>> 
>>> 
>>> My apologies, Bogdan, I should have done this better myself. I have 
>>> traced the error to the ds_next_domain():
>>> 
>>> Config section from inside failure_route[]:
>>> 
>>> xlog("L_NOTICE", "[$Tf] HEREA\n");
>>> if (ds_next_domain()) {
>>>       xlog("L_NOTICE", "[$Tf] HEREB\n");
>>>       .
>>>       .
>>> 
>>> The logs contain:
>>> [Thu Apr 15 11:23:06 2010] HEREA
>>> ERROR:core:search_first_avp: 0 ID or NULL NAME AVP!
>>> DBG:dispatcher:ds_next_dst: using [sip:192.168.0.20:5060 
>>> <http://192.168.0.20:5060>]
>>> [Thu Apr 15 11:23:06 2010] HEREB
>>> 
>>> 
>>> 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.
>> 
>> -- 
>> Bogdan-Andrei Iancu
>> www.voice-system.ro
>> 
>> 
>> _______________________________________________
>> Users mailing list
>> Users at lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
> 




More information about the Users mailing list