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

Freeswitch SVN mikej at freeswitch.org
Sat May 24 23:23:12 EDT 2008


Author: mikej
Date: Sat May 24 23:23:12 2008
New Revision: 8600

Modified:
   freeswitch/trunk/libs/sofia-sip/RELEASE
   freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/nta.c
   freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/check_session.c
   freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua.c
   freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/stun/stun.c

Log:
Mon May 19 13:42:41 EDT 2008  Pekka Pessi <first.last at nokia.com>
  * RELEASE: updated



Modified: freeswitch/trunk/libs/sofia-sip/RELEASE
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/RELEASE	(original)
+++ freeswitch/trunk/libs/sofia-sip/RELEASE	Sat May 24 23:23:12 2008
@@ -9,6 +9,14 @@
  and in less than 10 lines, written in 3rd person English, with
  complete sentences />
 
+Bugs with BYE handling and event fetch/poll (SUBSCRIBE with Expires: 0) have
+been fixed in nua. Bugs with timer handling, RFC2543 dialog/transaction
+matching and gray list handling have been fixed in nta, all introduced by
+release 1.12.8.
+
+Stack now supports some load control with NTATAG_MAX_PROCEEDING(), limiting
+number of initial INVITE transactions being served concurrently.
+
 Bugs in blaa and foo have been fixed. The stack now supports
 use of foobar...
 
@@ -24,7 +32,17 @@
 **template**: New features in API are marked with Doxytag macro @VERSION_1_XX_X.
 
 libsofia-sip-ua:
-- **template**: Added foobar() function (sofia-sip/foobar.h).
+- Added nta_outgoing_bind() to <sofia-sip/nta.h>.
+- Allow changing TPTAG_LOG() and TPTAG_DUMP() values after tport_create()
+- Added NUTAG_SHUTDOWN_EVENTS(). If NUTAG_SHUTDOWN_EVENTS(1) nua setting is
+  used, nua sends events to application normally during shutdown, too.
+- Added NUTAG_SUB_EXPIRES() - default expiration time of subscription
+- Added NTATAG_MAX_PROCEEDING() - limit number of requests accepted in 
+  proceeding queue.
+- Using NUTAG_PROXY()/NTATAG_DEFAULT_PROXY() as handle-specific tag. 
+  Previously, NUTAG_PROXY() was ignored if given with nua_set_hparams(),
+  nua_invite(), nua_respond(), etc.
+- Added nua_handle_by_call_id(), nta_leg_by_call_id().
 - This release is ABI/API compatible with applications linked against 
   any 1.12.x release. However, applications built against this release won't 
   work against an older library. The ABI has been tested with the nua module 
@@ -38,6 +56,12 @@
 Contributors to this release
 ----------------------------
 
+- Michael Jerris: fixes, new features NTATAG_MAX_PROCEEDING(),
+  nua_handle_by_call_id(), nta_leg_by_call_id()
+- Colin Whittaker: re-calculating subscription duration when receiving NOTIFY
+- Jerry Richards: fix to sip_header_as_string()
+- Jussi Mutanen: fix to soa handling within nua
+
 <list of people who contributed to _this_ release
  - update as people's patches are added, or when you commit stuff
  - current development team members (see AUTHORS) may be omitted,
@@ -64,6 +88,37 @@
 Bugs fixed in this release
 --------------------------
 
+- Fixed sf.net bug #1827511: BYE can now be authenticated with 
+  nua_authenticate().
+- Fixed problems re-calculating the subscription duration upon NOTIFY.
+  Thanks to Colin Whittaker for reporting the problem and proposing a fix to
+  the problem.
+- Fixed crash when SOATAG_ORDERED_USER(1) was used and multiple m= lines were
+  added to the session.
+- Fixed problem with an error response terminating the session usage but
+  not triggering nua_i_state event reporting that to application.
+  Thanks to AlienPenguin for reporting the problem
+- Fixed crash and general lossage with event fetch (SUBSCRIBE with Expires: 0)
+  Thanks to Jarkko Riekki for reporting the problem.
+- Handle NULL argument to su_free() gracefully even if free() does not.
+  Thanks for Michael Jerris for submitting the patch.
+- Do not use PT 9 (G722) as invalid PT (currently use 19).
+- Fixed problems handling míllisecond timers in nta on 64-bit platforms.
+  Thanks to David Knell and Michael Jerris for reporting it.
+- Allow-Events is now included by nua in messages initiating dialogs.
+  Thanks to Jerry Richards for pointing out the problem.
+- Now checking that pointer is not NULL before calling free()
+  Thanks to Michail Jerris for submitting patch.
+- Fixed bug in sip_header_as_string() converting longish header to string
+  Thanks to Jerry Richards for submitting a patch
+- Fixed problem with soa session activation.
+  Thanks to Jussi Mutanen for patch.
+- Fixed problems handling host:port in user-supplied Via headers.
+- Fixed sf.net bug #1930055: nat detection did not un-REGISTER natted contact
+  if fist response to REGISTER was 200 OK.
+- Fixed crashes in soa if m= lines were removed from user sdp.
+
+
 < notable bugs fixed in this release
  - check the sf.net bug tracker; see closed bugs,
    sorted by closing date

Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/nta.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/nta.c	(original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nta/nta.c	Sat May 24 23:23:12 2008
@@ -4086,6 +4086,10 @@
 
 /** Get dialog leg by @CallID.
  *
+ * @note Usually there should be only single dialog per @CallID on
+ * User-Agents. However, proxies may fork requests initiating the dialog and
+ * result in multiple calls per @CallID.
+ *
  * @since New in @VERSION_1_12_9.
  */
 SOFIAPUBFUN

Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/check_session.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/check_session.c	(original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/check_session.c	Sat May 24 23:23:12 2008
@@ -411,7 +411,7 @@
 
 /* 2.1 - Basic call cases */
 
-START_TEST(basic_call_with_bye_by_nua)
+START_TEST(call_2_1_1)
 {
   nua_handle_t *nh;
 
@@ -429,7 +429,7 @@
 END_TEST
 
 
-START_TEST(basic_call_with_bye_to_nua)
+START_TEST(call_2_1_2)
 {
   nua_handle_t *nh;
 
@@ -447,7 +447,7 @@
 END_TEST
 
 
-START_TEST(call_to_nua_with_bye_to_nua)
+START_TEST(call_2_1_3)
 {
   nua_handle_t *nh;
 
@@ -463,7 +463,7 @@
 END_TEST
 
 
-START_TEST(call_to_nua_with_bye_by_nua)
+START_TEST(call_2_1_4)
 {
   nua_handle_t *nh;
 
@@ -479,7 +479,7 @@
 END_TEST
 
 
-START_TEST(call_to_nua_with_bye_by_nua_challenged)
+START_TEST(call_2_1_5)
 {
   nua_handle_t *nh;
 
@@ -572,17 +572,51 @@
 END_TEST
 
 
+START_TEST(call_2_1_7)
+{
+  nua_handle_t *nh, *nh2;
+  sip_replaces_t *replaces;
+
+  s2_case("2.1.7", "Call lookup",
+	  "Test dialog and call-id lookup");
+
+  nh = nua_handle(nua, NULL, SIPTAG_TO(s2->local), TAG_END());
+
+  invite_by_nua(nh, TAG_END());
+
+  nh2 = nua_handle_by_call_id(nua, dialog->call_id->i_id);
+  fail_if(!nh2); fail_if(nh != nh2); nua_handle_unref(nh2);
+
+  replaces = sip_replaces_format(NULL, "%s;from-tag=%s;to-tag=%s",
+				 dialog->call_id->i_id,
+				 dialog->local->a_tag,
+				 dialog->remote->a_tag);
+  fail_if(!replaces);
+
+  nh2 = nua_handle_by_replaces(nua, replaces);
+  fail_if(!nh2); fail_if(nh != nh2); nua_handle_unref(nh2);
+
+  msg_header_free_all(NULL, (msg_header_t *)replaces);
+
+  bye_by_nua(nh, TAG_END());
+
+  nua_handle_destroy(nh);
+}
+END_TEST
+
+
 TCase *invite_tcase(void)
 {
   TCase *tc = tcase_create("2.1 - Basic INVITE");
   tcase_add_checked_fixture(tc, call_setup, call_teardown);
   {
-    tcase_add_test(tc, basic_call_with_bye_by_nua);
-    tcase_add_test(tc, basic_call_with_bye_to_nua);
-    tcase_add_test(tc, call_to_nua_with_bye_to_nua);
-    tcase_add_test(tc, call_to_nua_with_bye_by_nua);
-    tcase_add_test(tc, call_to_nua_with_bye_by_nua_challenged);
+    tcase_add_test(tc, call_2_1_1);
+    tcase_add_test(tc, call_2_1_2);
+    tcase_add_test(tc, call_2_1_3);
+    tcase_add_test(tc, call_2_1_4);
+    tcase_add_test(tc, call_2_1_5);
     tcase_add_test(tc, call_2_1_6);
+    tcase_add_test(tc, call_2_1_7);
   }
   return tc;
 }

Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua.c	(original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/nua/nua.c	Sat May 24 23:23:12 2008
@@ -1036,7 +1036,7 @@
   if (nua) {
 #if HAVE_OPEN_C
     struct nua_stack_handle_by_replaces_args a;
-	a.retval = NULL;
+    a.retval = NULL;
     a.nua = nua;
     a.r = r;
 #else

Modified: freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/stun/stun.c
==============================================================================
--- freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/stun/stun.c	(original)
+++ freeswitch/trunk/libs/sofia-sip/libsofia-sip-ua/stun/stun.c	Sat May 24 23:23:12 2008
@@ -81,7 +81,7 @@
 /** STUN log. */
 su_log_t stun_log[] = { SU_LOG_INIT("stun", "STUN_DEBUG", SU_DEBUG) }; 
 
-/**@var STUN_DEBUG
+/**@var char const STUN_DEBUG[]
  *
  * Environment variable determining the debug log level for @b stun module.
  *
@@ -90,7 +90,7 @@
  * 
  * @sa <sofia-sip/su_debug.h>, stun_log, SOFIA_DEBUG
  */
-extern char const STUN__DEBUG[];
+extern char const STUN_DEBUG[];
 
 enum {
   STUN_SENDTO_TIMEOUT = 1000,



More information about the Freeswitch-svn mailing list