Hi Alex,
you must have set this to ds_mark_dst("i") instead of "p", only "i" will set the gateway to inactive. Also you should add a "t_check_status()" before calling ds_mark_dst() in order to define the codes, which should lead to the required state, e.g.:
if (t_check_status("408|503")) { ds_mark_dst("p"); }
So only in case the ds_mark_dst would only be called, if the status of the transaction was 408 (Request timeout) or 503 (Service unavailable).
Please be aware, that the new setting to probing does only apply to new requests (retransmits to the disabled destination will still occur until the transaction does timeout).
We have been using this functionality for several years now and we never had problems....
Carsten
2010/11/16 alex pappas rebel.pappas@gmail.com:
Hi Carsten,
I tried that before but it's not what I really need. By saying that , when I added this function to my failure route then every call failure that happened (routing problem let's say) then immediately this GW was set to Inactive mode and I was not able to use it.
What I'm asking is to understand why Dispatcher module is sending calls to a GW in P state?
Thanks
Alex
On Tue, Nov 16, 2010 at 3:54 PM, Carsten Bock lists@bock.info wrote:
Hi Alex,
do you have a "ds_mark_dst("p")" in your failure route? This needs to be called "threshhold" times in order to set the gateway to probing... And please be aware of timeouts: If you have a Transaction-timeout of e.g. 60 seconds, then the failure-route would be executed after 60 seconds and for this time the gateway would stay "active".
Carsten
2010/11/16 alex pappas rebel.pappas@gmail.com:
Hi Daniel,
I have configured that option before i send it the email. modparam("dispatcher", "ds_probing_threshhold", 2)
I have gateways A,A,B,C. (A and A is the same gw. I want to send more calls that's why is added twice)
C is the dead gateway. It never responds back to the options because is not a real IP.
When Dispatcher is sending the Invites it always includes the dead gw C which by the way is in probing mode.
Doing some test calls i have the following results in send it Invites:
A, B, A, C B, A, C, A A, C, A, B A, B , A ,C B, A, C, A A, C, A, B A, B , A ,C B, A, C, A A, C, A, B A, B, A, C B, A, C, A
As you can see the C dead gw is always included to the Invites send.
Am i missing something in the configuration? I also tried to use “9” - use weight based load distribution but with no success. i got in the logs that this algorithm is not implemented. I'm doing something wrong here or is not implemented in this version of Kamailio. ( 3.0.1)
Thank you in advance for your help.
Regards Alex
On Fri, Nov 12, 2010 at 10:14 PM, Daniel-Constantin Mierla miconda@gmail.com wrote:
Hi Alex,
dispatcher module does not send new invites to inactive gateways. But in case a destination became inactive while some INVITEs were already through dispatcher, these recent inactive gateways may still be used for them.
Regarding the probing mode, dispatcher will never select a probing gateway as first option to route the call, but they are kept as alternative. This is the current implementation, we may add a module parameter to skip gateways in probing mode even for secondary alternatives.
Non-responsive gateways change the state after a while, see:
http://kamailio.org/docs/modules/stable/modules_k/dispatcher.html#id2567110
Cheers, Daniel
On 11/12/10 12:58 PM, alex pappas wrote:
Dear all,
Does anyone can explain how Dispatcher module is sending calls to the gateways in the different states?
I mean if I have 3 gateways and the one of them is in Probing mode why Dispatcher is continuing sending there calls? Why this gateway is not changing from Probing to Inactive since is not replaying to OPTIONS messages send by Kamailio?
Configuration:
modparam("dispatcher", "flags", 2) modparam("dispatcher", "ds_ping_interval", 5) modparam("dispatcher", "ds_probing_mode", 1) modparam("dispatcher", "ds_probing_threshhold", 2) modparam("dispatcher", "dst_avp", "$avp(s:dst_avp)") modparam("dispatcher", "grp_avp", "$avp(dsgrp)") modparam("dispatcher", "cnt_avp", "$avp(i:202)") modparam("dispatcher", "ds_append_branch", 0)
using db for gw:
setid 123,destination sip:xxx.xxxx.xxx, flag 0 ...
in ROUTE: if(ds_select_domain("$avp(s:disp_dstgrp)", "4"))
in Failure Route
if(!ds_next_domain())
I want Dispatcher when it sees a node gateway that is dead , to Not send any other calls.
Thank you in advance
Alex
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- Daniel-Constantin Mierla http://www.asipto.com
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
-- Carsten Bock Schomburgstr. 80 22767 Hamburg Germany
Mobile +49 179 2021244 Home +49 40 34927217 Fax +49 40 34927218 mailto:carsten@bock.info