[OpenSIPS-Users] 1.5.2 dispatcher module behaviour

Taner Sener tanersener at gmail.com
Tue Aug 25 13:39:09 CEST 2009


It's working now as expected.

Thanks

On Thu, Aug 13, 2009 at 12:59 PM, Bogdan-Andrei Iancu <
bogdan at voice-system.ro> wrote:

> Hi Taner,
>
> Taner Sener wrote:
>
>> Hi Bogdan,
>>
>> On Wed, Aug 12, 2009 at 3:56 PM, Bogdan-Andrei Iancu <
>> bogdan at voice-system.ro <mailto: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.
>>
> Aha....The dispatcher module uses TM support for sending the pings in a
> statefull manner - so, if there is no reply at all, the TM will do
> retransmission of the original request it send. It was not clear from your
> original email if new OPTIONS are fire (at each 2 secs) or what you are
> simply retransmissions (copies) of the pings that were already sent out.
>
> You not control the retransmission interval via T1 and T2 params in TM (see
> http://www.opensips.org/html/docs/modules/1.5.x/tm.html#id228598), but
> note that this will have a global impact.
>
> Also you can configure how long the retransmission will be done via the
> fr_timer (see
> http://www.opensips.org/html/docs/modules/1.5.x/tm.html#id271112).
>
>
>
>>
>>
>>        - 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?
>>
>
> There are two ways to mark (as failed) a destination:
>
>   1) from script, via ds_mark_dst() function, based on the negative replies
> you get when routing traffic to your destination.
>
>   2) automatically, based on 408 replies received. You should see in logs
> debug like:
>            OPTIONS-Request was finished with code XX (to xxxxxx, group
> xxxx)
>            Setting the probing state failed (xx, group XX)
>
>
>
> Regards,
> Bogdan
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.opensips.org/pipermail/users/attachments/20090825/ca56fee3/attachment.htm 


More information about the Users mailing list