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())

Reply via email to