Status: New
Owner: ----
Labels: Type-Defect Priority-Medium
New issue 2799 by [email protected]: REGISTER sip sessions are not
replicated in cluster cache
http://code.google.com/p/mobicents/issues/detail?id=2799
- What steps will reproduce the problem?
1. Application registers in an external SIP system so it can receive
requests.
2. Application deployed in cluster, REGISTER is renewed before expiration
by setting up a timer. Subsequent REGISTERs are built based on previous
ones, same SIP Session.
3. Master node in the cluster taken down.
3. Application and timers migrate fine. When timer for refreshing
registration fires, the subsequent REGISTER can not be built based on
previous ones, as the SIP Session is not found.
- What is the expected output? What do you see instead?
REGISTER does not open a dialog, but a certain state must be kept so that,
e.g. CSeq numbers are incremented, etc. MSS keeps the REGISTER sessions
marked with sepcial "sessionCreatingTransactionRequest" element.
It would desirable to maintain this also accross the cluster, so
registrations can be kept undisturbed by cluster changes.
- What version of the product are you using? On what operating system?
Verified with r19587
Please provide any additional information below.
storeSipSession(ClusteredSipSession session) in JBossCacheSipManager.java
never stores the REGISTER sessions, as they never moved beyond
the "INITIAL" state:
if (session.isValidInternal()
&& (session.isSessionDirty() ||
session.getMustReplicateTimestamp()) &&
(State.CONFIRMED.equals(session.getState()) ||
(((ClusteredSipStack)StaticServiceHolder.sipStandardService.getSipStack()).getReplicationStrategy().equals(ReplicationStrategy.EarlyDialog)
&& State.EARLY.equals(session.getState())))) {