[OpenSIPS-Users] 1.5.2 dispatcher module behaviour

Taner Sener tanersener at gmail.com
Thu Aug 13 10:46:41 CEST 2009


Hi Bogdan,

On Wed, Aug 12, 2009 at 3:56 PM, Bogdan-Andrei Iancu <bogdan at voice-system.ro
> wrote:

> Hi Taner,
> Taner Sener wrote:
>
>> Hi,
>>
>> I'm using Opensips 1.5.2 to distribute incoming calls to my clients using
>> dispatcher module. I'm keeping my gateway list in db_mysql and use
>> ds_select_dst("1", "4"); to select a gateway using round-robin algorithm. I
>> have a few issues about the module behaviour.
>>
>> - The first one is about pinging. I'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?
>>
> there should be no second module to do the pinging, and there is no way the
> module can dynamically change the pinging interval.
>
> try enabling full debug (debug=6) and look for the log messages like:
>   "probing set #n, URI xxxxxxxx  "


I looked inside logs and found "DBG:dispatcher:ds_check_timer: probing set
#1, URI sip:" lines there. So i guess it means that timer has expired and
dispatcher is sending SIP OPTIONS at that time. But later found that TM
module was enabled in my configuration and it was TM retransmitting SIP
OPTIONS to dead destinations (with T2_timer which is 4 seconds). I can
increase T2_timer but it will effect other messages, so I will leave it as
is.


>
>
>> - The second issue is about selecting gateways. When I receive busy from
>> one of the destinations I'm calling ds_next_dst() and this returns me a
>> destination which is not alive and does not respond to ping requests. I'm
>> expecting to have only destinations which are alive, and don't understand
>> why it is returned. Another issue here is: I'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.
>>
> you should call the ds_mark_dst() function from failure route, when you
> detect a destination as failed (and before the ds_next_dst() ). See:
>
>   http://www.opensips.org/html/docs/modules/1.5.x/dispatcher.html#id271344


I thought that if a destination is not alive and not responding to PING
requests (in my case Destination Unreachable ICMP messages are received), it
is marked as failure route automatically, but it looks like I must mark it
by myself. At this point I want to ask if I can listen for results of PING
resuls. So if I receive REPLY I will mark it as healthy and if PING timeout
occurs I can mark it as dead. BTW are Destination Unreachable ICMP messages
identified by opensips?

Thanks,
Taner


>
>
>
> Regards,
> Bogdan
>
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.opensips.org/pipermail/users/attachments/20090813/d1a9a437/attachment.htm 


More information about the Users mailing list