]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-5641 --resolve
authorAnthony Minessale <anthm@freeswitch.org>
Mon, 29 Jul 2013 21:06:56 +0000 (16:06 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Mon, 29 Jul 2013 21:07:03 +0000 (16:07 -0500)
libs/sofia-sip/libsofia-sip-ua/nua/nua_client.c

index a9fed48ffea1dc4c6f1c1f96ae3fc8dbe37291a8..c5400dd4ca3d43fd1a34e5fbe0e8f77bd6140e88 100644 (file)
@@ -1062,11 +1062,15 @@ int nua_client_response(nua_client_request_t *cr,
     sip_method_t method = cr->cr_method;
     int terminated, graceful = 1;
 
-    if (status < 700)
-      terminated = sip_response_terminates_dialog(status, method, &graceful);
-    else
-      /* XXX - terminate usage by all internal error responses */
-      terminated = 0, graceful = 1;
+    if (status < 700) {
+               terminated = sip_response_terminates_dialog(status, method, &graceful);
+               if (terminated && !cr->cr_initial) {
+                       terminated = 0, graceful = 1;
+               }
+       } else {
+               /* XXX - terminate usage by all internal error responses */
+               terminated = 0, graceful = 1;
+       }
 
     if (terminated < 0)
       cr->cr_terminated = terminated;