[Freeswitch-svn] [commit] r11829 - in freeswitch/trunk/libs/sofia-sip: . libsofia-sip-ua/sip

FreeSWITCH SVN mikej at freeswitch.org
Wed Feb 11 09:03:30 PST 2009


Author: mikej
Date: Wed Feb 11 11:03:30 2009
New Revision: 11829

Log:
Thu Jan 15 09:38:34 CST 2009  Bernhard Suttner <bernhard DOT suttner AT comdasys DOT com>
  * sip_util.c: fix 484 respose to REFER in sip_response_terminates_dialog()

  Asterisk (v 1.2.7.1) does response with 484 if a client does send a refer
  with a @ReferTo header to an unknown number.  This is therefore not
  fundamentally wrong and the dialog should not be destroyed!



Modified:
   freeswitch/trunk/libs/sofia-sip/.update
   freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/sip/sip_util.c

Modified: freeswitch/trunk/libs/sofia-sip/.update
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/.update	(original)
+++ freeswitch/trunk/libs/sofia-sip/.update	Wed Feb 11 11:03:30 2009
@@ -1 +1 @@
-Wed Feb 11 11:00:10 CST 2009
+Wed Feb 11 11:03:24 CST 2009

Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/sip/sip_util.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/sip/sip_util.c	(original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/sip/sip_util.c	Wed Feb 11 11:03:30 2009
@@ -1164,14 +1164,25 @@
     return 0;
 
   case 484: /* Address Incomplete */
-  case 485: /* Ambiguous */
     /** @par 484 Address Incomplete and 485 Ambiguous
 
       Similar to 404 and 410, these
       responses came to a request whose Request-URI was provided by the
       peer in a @Contact header field.  Something has gone fundamentally
       wrong, and the dialog and all of its usages are destroyed.
-    */
+
+      Asterisk (v 1.2.7.1) does response with 484 if a client does send a refer
+      with a @ReferTo header to an unknown number.  This is therefore not
+      fundamentally wrong and the dialog should not be destroyed!
+    */
+    if (method == sip_method_refer)
+    {
+      *return_graceful_terminate_usage = 0;
+      return 0;
+    }
+
+  case 485: /* Ambiguous */
+
     return terminate_dialog;
 
   case 486: /** @par 486 Busy Here



More information about the Freeswitch-svn mailing list