Release notes for Sofia-SIP version 1.12.3 (2006-10-02) ======================================================= Sofia-SIP is an open-source SIP User-Agent library, compliant with the IETF RFC3261 specification. It can be used as a building block for SIP client software for uses such as VoIP, IM, and many other real-time and person-to-person communication services. The primary target platform for Sofia-SIP is GNU/Linux. Sofia-SIP is based on a SIP stack developed at the Nokia Research Center. Sofia-SIP is licensed under the LGPL. Changes since release 1.12.1 ---------------------------- Numerous bugs have been fixed in with nua call model handling: authenticating PRACK, accepting incoming UPDATE, using SDP within preliminary responses, changing codecs in re-INVITEs, etc. Session timer extension have now been fixed in re-INVITEs and UPDATES, and it now honors missing "timer" feature tag. On-line documentation generated by doxygen has been improved. There are more settings for nua, soa, and nta. The glib and gobject binding library has been updated. There is experimental support for detecting the changes in network interfaces. What happened to Sofia-SIP 1.12.2? ---------------------------------- The release 1.12.2 had more than its share of problems. Some files related to Win32 and glib were not included in the released source package. This release contains the missing files and fixes a fatal tag handling bug in nua. It does not add any new features. API/ABI changes and versioning ------------------------------ general: - The Sofia-SIP m4 macros are no longer installed to /usr/share/aclocal/. libsofia-sip-ua: - Added nta tag NTATAG_MAX_FORWARDS() - Added soa tag SOATAG_AUDIO_AUX() - Added nua tags NUTAG_M_DISPLAY(), NUTAG_M_USERNAME(), NUTAG_M_PARAMS(), and NUTAG_M_FEATURES(), NUTAG_REFER_WITH_ID() and NUTAG_SUPPORTED(). - Added nua tag NUTAG_EARLY_ANSWER(). Optionally include SDP answer already in a 1XX response. - Added experimental network change detection logic. This extends current su API with two functions defined in su_os_nw.h and nta API with nta_agent_close_tports(). Also a new nua event nua_i_network_changed and tag NUTAG_DETECT_NETWORK_UPDATES are introduced. - Added nta_leg_make_replaces() and nta_leg_by_replaces() functions - Added su_isblocking(errcode) - Added new su tag TAG_FILTER() with parameter type tag_filter_f - Added tag functions tl_find_last() urltag_scan() - template: Added foobar() function (sofia-sip/foobar.h). - Done some 64-bit cleanup. Added typedefs isize_t, usize_t and issize_t. By default isize_t is int, usize_t is unsigned and issize_t is int and there is no change in API. If ./configure option --disable-size-compat is given, API uses size_t or ssize_t instead of int/unsigned int. - Changed argument and return type of inline function t_xtra() to size_t. - Using socklen_t as li_addrlen. - The install location of awk scripts (msg_parser.awk and tag_dll.awk) from libexec to share/sofia-sip/. Also added a new pkg-config variable to find out the awk scripts: sh> pkg-config --variable=sofiaawkdir sofia-sip-ua - Removed deprecated function msg_addrlen(), deprecated types msg_ref_t, msg_obj_t and msg_hdr_t. - This release is ABI/API compatible with applications linked against 1.12.0. The ABI has been tested with the nua module unit test (test_nua) built against original 1.12.0 release. libsofia-sip-ua-glib: - Added sofia-sip/su_glib.h. The old sofia-sip/su_source.h is deprecated, but still present. Similarly the functions su_root_source() and su_root_source_create() have been deprecated and replaced with su_glib_root_create() and su_glib_root_gsource(). - Added nua_glib::cancel-answered signal - emitted when the stack receives an answer to previously sent CANCEL. - This release is ABI/API compatible with libsofia-sip-ua-glib of 1.12.0. Note, libsofia-sip-ua-glib interface is NOT considered stable and may change in a future 1.12.x release. Contributors to this release ---------------------------- - Andrzej Ciarkowski (fix to su_task_execute() bug). - Michael Jerris (patches adding MSVC2005 build support, 64-bit patches) - Mika Saari (patch to stun module) See the AUTHORS file in the distribution package. Notes on new features --------------------- New features in API are marked with Doxytag macro @VERSION_1_12_2. - SOA now supports auxiliary codecs like telephony-event that are included in audio session offer/answer even when pruning down to a single speech codec. See SOATAG_AUDIO_AUX() - NUA call model improvements with NUTAG_EARLY_ANSWER(): - Optionally include SDP answer already in 1XX response. - nua event watcher (nua_subscribe, nua_watcher) now tries to re-establish subscription if the subscription was terminated with reason "deactivated" or "probation". Likewise, if SUBSCRIBE was returned a suitable error response with Retry-After header, nua tries to re-establish subscription after given interval. - Network change detection logic is still experimental and the interfaces may change. Bugs fixed in this release -------------------------- - SIP header tags were added twice to all requests sent by nua. Thanks for Colin Whittaker for reporting this bug. - Now copying Proxy-Authorization and Authorization header from INVITE to the ACK requests sent for 2XX response - "explicit" and "required" parameters are ignored with Reject-Contact header, "q" parameter with both Reject-Contact and Accept-Contact - PRACK is now handled like any other request, it can be challenged and nua authenticates it - span_lws() now returns length of real linear whitespace as defined in RFC 3261 - Fixed crash when receiving request without Via over TCP. Thanks for Henrik Nordstrom for reporting the bug. - Updated codecs in incoming offer were ignored. Thanks for Denis Legostayev for reporting the bug and sending a patch. - UPDATE was rejected by nua if received during initial call setup. Thanks for Rajeev K for reporting the bug. - NOTIFY Event: refer without id is not rejected anymore. Thanks for emilie for reporting this. - Race condition in su_task_execute() is fixed. Thanks for Andrzej Ciarkowski for sending the fix. - t_scan() now returns negative value when tag does not implement scan method - #1485968: doxygen docs for libsofia-sip-ua-glib are broken - Session timer handling by nua now honors missing "timer" feature tag. Session timer headers (Session-Expires, Min-SE) are now included in all UPDATE and INVITE requests. Website and other links ----------------------- The release can be downloaded from: - http://sourceforge.net/project/showfiles.php?group_id=143636 Checksums for sofia-sip-1.12.3.tar.gz (2535088 bytes) - md5: 46cc8feb3657bc38fbd75d07a634cf83 - sha1: 9d76ab8e6d2803e1dc0895404c5fa26c6e94d5bc Project website and mailing list: - http://sofia-sip.sourceforge.net - http://lists.sourceforge.net/mailman/listinfo/sofia-sip-devel Past releases: - http://sofia-sip.sourceforge.net/relnotes/