======================================================= Release notes for Sofia SIP version 1.12.7 (2007-10-17) ======================================================= 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 last release -------------------------- The stack now compiles and runs on Symbian SDK with Open C support enabled. The stack supports specifying the outbound proxy by a set of Route headers as recommended by RFC3261. It also supports CR-LF-based keepalives on TCP connections. Bugs in call state machines, URI and SDP handling has been fixed. API/ABI changes and versioning ------------------------------ New features in API are marked with Doxytag macro @VERSION_1_12_7 or @NEW_1_12_7. libsofia-sip-ua: - 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 unit test (test_nua) built against original 1.12.0 release. libsofia-sip-ua/nua: - Added tag NUTAG_INITIAL_ROUTE(), NUTAG_INITIAL_ROUTE_STR() libsofia-sip-ua/nta: - Added nta_incoming_received() - Added accessor function nta_outgoing_branch() - Added tag NTATAG_TIMER_C() - Deprecated nta_msg_ackbye() libsofia-sip-ua/iptsec: - Added tag AUTHTAG_MAX_NCOUNT() libsofia-sip-ua/sip: - Added SIPEXTHDRTAG_TYPEDEF() macro and tag class sipexthdrtag_class[] - Added SIP headers Alert-Info, Reply-To. Remote-Party-ID, P-Asserted-Identity, and P-Preferred-Identity - Added sip_update_default_mclass() and sip_extend_mclass() - Added macros SIP_HAVE_XXXX for extra headers, e.g., SIP_HAVE_ALERT_INFO(). libsofia-sip-ua/soa: - Added tags SOATAG_ORDERED_USER() and SOATAG_REUSE_REJECTED() libsofia-sip-ua/tport: - Updated transport timers - Added TPTAG_KEEPALIVE(), TPTAG_PINGPONG(), TPTAG_PONG2PING() - Added tport_is_clear_to_send(), tport_has_queued() - Updated timer handling - Added abstract type su_timer_queue_t (typedef'd to SU_TIMER_QUEUE_T) - Updated su_task_timers() and su_timer_expire() prototypes libsofia-sip-ua/stun: - Removed extra system headers from libsofia-sip-ua/su: - Added su_nanotime_t and functions su_nanotime()/su_monotime() - Added function su_getsocktype() - Added heap template in - Added configure option --disable-tag-cast and macro SU_INLINE_TAG_CAST - Added global variable su_socket_blocking. If it is set to true, sockets are created as blocking. - Added access point selection functionality for Open C / Symbian - Added functions su_root_release(), su_root_obtain() and su_root_has_thread(). A thread can release a su_root_t and another one can obtain it. libsofia-sip-ua-glib: - No ABI/API changes, compatible with 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 ---------------------------- - Mikhail Zabaluev (bug fixes) - Fabio Margarido (bug fixes) - Martti Mela (Open C port and extra functionality, bug fixes) - Kai Vehmanen (fixes to win32 VC6/2005 project files) - Pekka Pessi (everything else) See the AUTHORS file in the distribution package. Notes on new features --------------------- The route to the outbound proxy can now be specified as an explicit route set. The TCP transport can use CR-LF keepalive and CR-LF PING-PONG messages. IPv6 support can now be disabled in VC6/VC2005 builds, by setting SU_HAVE_IN6 to zero `win32/sofia-sip/su_configure.h'. Symbian Open C build and packaging (SIS) files for libsofia-sip-ua, libsofia-sip-ua-glib and for several test applications have been added under sofia-sip/open_c. The new SIP headers Alert-Info, Reply-To. Remote-Party-ID, P-Asserted-Identity, and P-Preferred-Identity are not available in the SIP parser by default in order to prevent problems with older applications looking for them in sip_unknown field. Applications must enable the new headers with sip_update_default_mclass() and sip_extend_mclass(). Bugs fixed in this release -------------------------- - Fixed sf.net bug #1804248: nua_prack() now works. Thanks to Fabio Margarido for sending the patch. - Fixed sf.net bug #1810115: crash after failed outgoing request and nta_destroy() Thanks to Mikhail Zabaluev for reporting the problem. - Fixed sf.net bug #1804248: nua_prack() now works. Thanks to Fabio Margarido for sending the patch. - Fixed sf.net bug 1803686: nua_destroy() can now be called from inside nua event callback. Thanks to Mikhail Zabaluev for reporting the problem. - SIP Content-Length structure was casted to one with 64-bit integer instead of 32-bit, so message body was not parsed on 64-bit big-endian platform. Thanks to Martin Drasar for hunting down the bug. - Authentication scheme token was compared as case-sensitive on client side. Thanks to Russell McConnachie for reporting this problem. - Fixed sf.net bug #1706629: in-dialog requests not routed according to the dialog route. Problem was because the outbound proxy was not handles as RECOMMENDED by RFC 3261. The new tag NUTAG_INITIAL_ROUTE() allows correct handling of requests. - Fixed problems in nua state engines (call setup failing if some messages were re-ordered or crashing when they were lost) Thanks to Michael Jerris, Anthony Minessale, and others in Freeswitch project for hunting down these bugs and reporting them - When nua generates Contact URI, the user-specified URI parameters are now overridden by actual transport parameters (e.g., transport=tcp) Thanks to Mikhail Zabaluev for submitting the patch. - Fixed sf.net bug #1750691: used to send ACK&BYE when extra 200 OK is received and the 200 OK did not match any client transaction. Thanks to Mikhail Zabaluev for reporting the problem. - Fixed problem of un-escaping reserved characters in URIs Thanks to Jan van den Bosch, Fabio Margarido and Mikhail Zabaluev for reporting the problem. - Fixed missing links in Doxygen-generated documentation Thanks to Jerry Richards for reporting this problem. - Fixed timing problem with CANCELed INVITE transactions. Thanks to Fabio Margarido for reporting this problem. - Fixed sf.net bug #1771243: tport_check_trunc() does not block anymore Thanks to Erland Lwin for reporting the problem - Fixed sf.net bug #1733323: extra tag arguments were used by nta_outgoing_tcancel(). Thanks to Fabio Margarido for reporting this problem. - Fixed sf.net bug #1747149: sdp_session_cmp() ignored some m= lines (e.g., new SDP in re-INVITE was sometimes ignored) Thanks to Mikhail Zabaluev for reporting the problem. - Fixed sf.net bug #1726034: crash in msg_as_string() with too large messages - Fixed sf.net bug #1472682: ACK did not find INVITE server transaction when the To URI had been changed. - Do not block when making a TCP connect()ion in tport. Thanks to Mikhail Zabaluev for submitting the patch. 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.7.tar.gz (2650907 bytes) - md5: c6d7c4c6318fe1ac661862062aad241a - sha1: a6d90edd2dbe476f81d2b30ab05ddeabd4f2292c 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/