Hi everyone,
the idea behind the probing mode was, to have three states for a gateway:
- Active
- In-Active: Administratively disabled
- Probing (Active, but currently not responding)
If you disable a gateway when it is in probing mode, it may end up
with being enabled again due to some of Kamailio's internals: The
"OPTIONS"-Request being sent out is handled by the TM-Module, which
will generate Retransmits for quite a long time (2 minutes?). Upon a
successful reply for the OPTIONS-Request, it will set the destination
to active again. I will change this behaviour later this week or next
week in GIT-Trunk, so an administratively disabled destination stays
inactive, even upon a delayed positive reply for an
OPTIONS-Request....
Carsten
2011/2/28 Daniel-Constantin Mierla <miconda(a)gmail.com>om>:
Hello,
On 2/28/11 5:29 PM, Klaus Darilion wrote:
Hi!
Every time I use the dispatcher(k) module I am confused again. Sometimes
it seems that "probing" is a dedicated state, sometimes it seems that
"probing" is done also in "active" state, but never in
"inactive" state.
if you set the global parameter for probing, then no matter the state, the
pinging is done for all addresses.
If the module parameter is not set, only the destinations marked as
"probing" should be pinged.
In devel version I tried to sort out a bit these states, so we should make
it more sane and clear.
IMO "probing" should only be a flag
which indicates if OPTIONS should
sent or not. If probing is successful, then the state should be
"active". If probing is unsuccessful, then the state should be
"inactive".
Current behavior is very strange (ds_probing_mode(0)):
--> startup state: A --> no probing
kamctl fifo ds_set_state i 1 sip:....
--> state: I --> no probing
kamctl fifo ds_set_state a 1 sip:....
--> state: A --> no probing
When ds_probing_mode==0, only if you set P flag to address will be pinged.
calling 3 times ds_mark_dst("p")
--> state: P --> probing (and dst is still loaded as last value into the
dst_avp, why?)
kamctl fifo ds_set_state i 1 sip:....
--> state: I --> still probing
kamctl fifo ds_set_state a 1 sip:....
--> state: P (???) --> probing
Thus, "ds_set_state a ..." does not set active, but probing if it was
probing before. Strange.
And as "inactive" does not stop probing when dst was in probing mode,
the destination becomes automatically "active" if the probing succeeds.
inactive and probing are different flags. In devel I introduced new state
'disabled' for cases when you want to "remove" an address from
destination
list.
And why is a destination in probing mode loaded into the dst_avp? Very
weird.
If it is just probing and not inactive, then it is loaded as new dst.
Is there a reason for this behavior?
IIRC, I think Carsten developed most of the probing mode, maybe there was a
reason behind current behavior.
Cheers,
Daniel
--
Daniel-Constantin Mierla
http://www.asipto.com
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users(a)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
Büro (Verl) +49 5246 801427
Fax +49 40 34927218
mailto:carsten@bock.info