Hi,
I saw that the
ClientRegistrationHandler::onRemoved() callback wasn't invoked when I remove
all bindings less than 5 seconds after the initial REGISTER was sent
(Resiprocate 1.2).
ClientRegistration::addBinding/removeBinding/removeAll/removeMyBindings
(sip/resiprocate/resip/dum/ClientRegistration.cxx) reuses the first SIP
REGISTER message by changing Contact, CSeq, etc, but does not define a new
SIP transaction, ie the Via branch id is kept the same. When the 200 OK for
the second REGISTER (binding removal) is received, it is ignored because the
state for the transaction is "Completed", an 200 OK having being received
before (for the first REGISTER).
I think that the
scenario works when the two REGISTER are sent more than 5 seconds apart
because the initial transaction times out following Timer K (5secs), so that
a new transaction is created for the second REGISTER, even if the same
branch id is used.
Resiprocate
1.4.1 doesn't seems to solve that issue: I fixed the problem by resetting
the branch id in ClientRegistration::tryModification: anybody encoutered the
same issue? I could not find anything related in the
ChangeLog.
Thanks,
Sebastien
_______________________________________________
resiprocate-users mailing list