Hi!

After digging a little, I believe the culprit lives one floor deeper ;-)
The same issue would re-appear if somebody was to implement support for redirect replies, for example.

Whereby Stefan's modified patch certainly works, I'd prefer to consider the attached one, if you don't mind.

-Raphael.

On 05.05.11 20:23, Andreas Granig wrote:
Hi,

On 05/05/2011 06:50 PM, Stefan Sayer wrote:
I can't test it right now (sorry!) but you could try attached patch. It
also resets the remote URI, which might be necessary (?).
Resetting the remote URI causes this error:

May  5 19:54:30 sip sems[26279]: [#7f457e618700] [send_request,
trans_layer.cpp:816] ERROR: empty method name or R-URI
May  5 19:54:30 sip sems[26279]: [#7f457e618700] [onSipReply,
UACAuth.cpp:203] ERROR: failed to send authenticated request.

After removing that from the patch, it works as expected :)

Thanks,
Andreas



_______________________________________________
Sems mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/sems

commit b22e20eade1789307fb23e0072d3c52fff2dbab9
Author: Raphael Coeffic <[email protected]>
Date:   Fri May 6 10:30:37 2011 +0200

    b/f: do not update route or remote_uri on failure reply.

diff --git a/core/AmSipDialog.cpp b/core/AmSipDialog.cpp
index e97e20a..753d815 100644
--- a/core/AmSipDialog.cpp
+++ b/core/AmSipDialog.cpp
@@ -323,21 +323,23 @@ void AmSipDialog::updateStatus(const AmSipReply& reply)
   // responses to INVITE
 
   if ( (reply.code > 100) 
-       && (reply.code < 300) 
-       && !reply.remote_tag.empty() 
+       && (reply.code < 300) {
+
+    if(!reply.remote_tag.empty() 
        && (remote_tag.empty() ||
           ((status < Connected) && (reply.code >= 200))) ) {  
 
-    remote_tag = reply.remote_tag;
-  }
+      remote_tag = reply.remote_tag;
+    }
 
-  // allow route overwriting
-  if ((status < Connected) && !reply.route.empty()) {
+    // allow route overwriting
+    if ((status < Connected) && !reply.route.empty()) {
       route = reply.route;
-  }
+    }
 
-  if (reply.next_request_uri.length())
-    remote_uri = reply.next_request_uri;
+    if (reply.next_request_uri.length())
+      remote_uri = reply.next_request_uri;
+  }
 
   switch(status){
   case Disconnecting:
_______________________________________________
Sems mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/sems

Reply via email to