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

FreeSWITCH SVN mikej at freeswitch.org
Fri May 15 08:45:39 PDT 2009


Author: mikej
Date: Fri May 15 10:45:39 2009
New Revision: 13320

Log:
Tue May 12 11:05:19 CDT 2009  Pekka Pessi <first.last at nokia.com>
  * nua: NUTAG_AUTOACK(0) is now obeyed always when media is disabled
  Ignore-this: c5960a8330904eae5a1428158e4498c7
  
  If media is enabled, stack autoacks 2XX responses to re-INVITEs unless
  NUTAG_AUTOACK(0) is set on handle.
  
  Also documenting NUTAG_AUTOACK() behaviour with re-INVITEs.



Modified:
   freeswitch/trunk/libs/sofia-sip/.update
   freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c
   freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_tag.c

Modified: freeswitch/trunk/libs/sofia-sip/.update
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/.update	(original)
+++ freeswitch/trunk/libs/sofia-sip/.update	Fri May 15 10:45:39 2009
@@ -1 +1 @@
-Fri May 15 10:43:59 CDT 2009
+Fri May 15 10:45:11 CDT 2009

Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c	(original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_session.c	Fri May 15 10:45:39 2009
@@ -1108,8 +1108,9 @@
 
   if (next_state == nua_callstate_completing) {
     if (NH_PGET(nh, auto_ack) ||
-	/* Auto-ACK response to re-INVITE unless auto_ack is set to 0 */
-	(ss->ss_state == nua_callstate_ready &&
+	/* Auto-ACK response to re-INVITE when media is enabled
+	   and auto_ack is not set to 0 on handle */
+	(ss->ss_state == nua_callstate_ready && nh->nh_soa &&
 	 !NH_PISSET(nh, auto_ack))) {
       nua_client_request_t *cru;
 
@@ -1867,8 +1868,10 @@
       /* There is an un-ACK-ed INVITE there */
       assert(du->du_cr->cr_method == sip_method_invite);
       if (NH_PGET(nh, auto_ack) ||
-	  /* Auto-ACK response to re-INVITE unless auto_ack is set to 0 */
-	  (ss->ss_state == nua_callstate_ready && !NH_PISSET(nh, auto_ack))) {
+	  /* Auto-ACK response to re-INVITE when media is enabled
+	     and auto_ack is not set to 0 on handle */
+	  (ss->ss_state == nua_callstate_ready && nh->nh_soa &&
+	   !NH_PISSET(nh, auto_ack))) {
 	/* There should be no UPDATE with offer/answer
 	   if PRACK with offer/answer was ongoing! */
 	if (nua_invite_client_ack(du->du_cr, NULL) > 0)
@@ -3407,8 +3410,10 @@
       assert(du->du_cr->cr_method == sip_method_invite);
 
       if (NH_PGET(nh, auto_ack) ||
-	  /* Auto-ACK response to re-INVITE unless auto_ack is set to 0 */
-	  (ss->ss_state == nua_callstate_ready && !NH_PISSET(nh, auto_ack))) {
+	  /* Auto-ACK response to re-INVITE when media is enabled
+	     and auto_ack is not set to 0 on handle */
+	  (ss->ss_state == nua_callstate_ready && nh->nh_soa &&
+	   !NH_PISSET(nh, auto_ack))) {
 	if (nua_invite_client_ack(du->du_cr, NULL) > 0)
 	  next_state = nua_callstate_ready;
 	else

Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_tag.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_tag.c	(original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua_tag.c	Fri May 15 10:45:39 2009
@@ -1319,6 +1319,12 @@
  *
  * Default value is NUTAG_AUTOACK(1).
  *
+ * @par Auto ACK with Re-INVITE requests
+ * By default, NUA tries to auto-ACK the final response to re-INVITE used to
+ * refresh the session when the media is enabled. Set NUTAG_AUTOACK(0) on
+ * the call handle (e.g., include the tag with nua_invite() or
+ * nua_respond()) in order to disable the auto ACK with re-INVITE.
+ *
  * Corresponding tag taking reference parameter is NUTAG_AUTOACK_REF().
  */
 tag_typedef_t nutag_autoack = BOOLTAG_TYPEDEF(autoACK);



More information about the Freeswitch-svn mailing list