From b3677605c692e2feced7ec1640cbf1a73b1ed2e5 Mon Sep 17 00:00:00 2001 From: Damian Minkov Date: Wed, 12 Mar 2008 16:11:16 +0000 Subject: [PATCH] Registration interval can be changed through property, which does not affect expires header value --- .../protocol/sip/SipRegistrarConnection.java | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/net/java/sip/communicator/impl/protocol/sip/SipRegistrarConnection.java b/src/net/java/sip/communicator/impl/protocol/sip/SipRegistrarConnection.java index bb19f9de7..8b10ff61a 100644 --- a/src/net/java/sip/communicator/impl/protocol/sip/SipRegistrarConnection.java +++ b/src/net/java/sip/communicator/impl/protocol/sip/SipRegistrarConnection.java @@ -458,8 +458,36 @@ public void processOK(ClientTransaction clientTransatcion, } else { + int scheduleTime = grantedExpiration; + + // registration schedule interval can be forced + // with setting property REGISTRATION_ANTICIPATION to value in seconds + // this does not change expiration header + String regAnticipObj = + (String)sipProvider.getAccountID().getAccountProperties(). + get("REGISTRATION_ANTICIPATION"); + + if(regAnticipObj != null) + { + try + { + int registrationAnticipation = + Integer.valueOf(regAnticipObj).intValue(); + + if(registrationAnticipation < grantedExpiration) + { + scheduleTime = registrationAnticipation; + } + } + catch (Exception ex) + { + logger.error("Wrong value for REGISTRATION_ANTICIPATION"); + } + } + + //schedule a reregistration. - scheduleReRegistration(grantedExpiration); + scheduleReRegistration(scheduleTime); setRegistrationState( RegistrationState.REGISTERED