Revision: 16229
Author: vladimir.ralev
Date: Thu Jan 6 13:49:31 2011
Log: Update Issue 2251
The real fix
http://code.google.com/p/mobicents/source/detail?r=16229
Modified:
/branches/jain-sip/jain-sip-6-Jan-2011/src/gov/nist/javax/sip/stack/SIPClientTransaction.java
=======================================
---
/branches/jain-sip/jain-sip-6-Jan-2011/src/gov/nist/javax/sip/stack/SIPClientTransaction.java
Thu Dec 16 01:28:26 2010
+++
/branches/jain-sip/jain-sip-6-Jan-2011/src/gov/nist/javax/sip/stack/SIPClientTransaction.java
Thu Jan 6 13:49:31 2011
@@ -1444,7 +1444,13 @@
*/
public void processResponse(SIPResponse sipResponse, MessageChannel
incomingChannel) {
- boolean isRetransmission
= !responsesReceived.add(Integer.valueOf(sipResponse.getStatusCode()));
+ int statusCode = sipResponse.getStatusCode();
+ boolean isRetransmission
= !responsesReceived.add(Integer.valueOf(statusCode));
+ if(statusCode == 183) {
+ if(lastResponse != null
&& !sipResponse.toString().equals(lastResponse.toString())) {
+ isRetransmission = false;
+ }
+ }
sipResponse.setRetransmission(isRetransmission);
if (logger.isLoggingEnabled(LogWriter.TRACE_DEBUG)) {
@@ -1470,7 +1476,7 @@
// JvB: Check all conditions required for creating a new Dialog
if (dialog == null) {
- int code = sipResponse.getStatusCode();
+ int code = statusCode;
if ((code > 100 && code < 300)
/* skip 100 (may have a to tag */
&& (sipResponse.getToTag() != null ||
sipStack.isRfc2543Supported())