Release notes for Sofia-SIP version 1.11.8 (2006-05-15) ======================================================= 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 -------------------------- Updated NAT traversal features: refactored STUN, added outbound, GRUU. Updated DNS resolver: now it works with IPv6 and on Win32. Added gobject bindings as a separate library. Building library as a DLL on win32. API/ABI changes and versioning ------------------------------ - Building a DLL on win32 - Added SOFIAPUBFUN/SOFIAPUBVAR/SRESPUBFUN to each public identifier - Added GRUU and simple NAT traversal support in nua: - Using rport to detect NAT - See libsofia-sip-ua/nua/outbound.[hc] and nua_register()/NUTAG_OUTBOUND() documentation - Revised sresolv interface and added: sofia-resolv/sres.h sofia-resolv/sres_config.h sofia-resolv/sres_async.h sofia-resolv/sres_cache.h sofia-resolv/sres_record.h utils/sip-dig.c example program - Removed sres_resolver_add_mutex() - Renamed cname_record to cn_record in sres_cname_record_t - Changed code of SRES_TIMEOUT_ERR and SRES_RECORD_ERR (they were overlapping with signature errors) - Added sres_search(): sres_query() does not query subdomains anymore - Added sres_search_cached_answers() and sres_blocking_search() - Added string manipulation functions: - su_strcat_all() - su_strlst_create_with(), su_strlst_vcreate_with() - su_strlst_create_with_dup(), su_strlst_vcreate_with_dup() - Added sip utility functions: - sip_contact_string_from_via(), sip_transport_has_tls() - tport, nta: initial support for dynamic transport additions / updates for NAT traversal. - Added - Major changes in stun: - Added the stun_dns_lookup.*() interface to sofia-sip/stun.h. - stun_handle_() functions are replaced by stun_() functions in . - Discovery context pointer and callback added to stun_bind() - Removed all request-specific states of stun_state_t from the public interface. - Modified signature for stun_nattype(), added stun_nattype_str(). The stun_nattype_t enum is now part of the public header. - Added handling of a single warning into the soa and nua modules - Removed old rtsp-related nua functions and events not used anymore. - Removed nutag_sip_parser (using ntatag_mclass instead) - Now returning 9XX errors from inside NUA - Added --enable-sctp to configure; fixed some SCTP problems, (but not all) - On win32 platform, clients need to link against the "advapi32" system library. - Removed utf8 functions and sofia-sip/utf8.h header file. Contributors to this release ---------------------------- - Dimitri E. Prado: Initial patch for win32 DNS server discovery. See the AUTHORS file in the distribution package, too. Notes on new features --------------------- - The nua module now has support for NAT traversal using SIP outbound. Because rather limited support for SIP outbound by SIP proxies (nada), a rport-based NAT traversal was also added. There is also a registration probe and registation keepalive using OPTIONS request. The NAT traversal can be disabled by either giving the Contact header explicitly to the nua_register() call or by setting NUTAG_OUTBOUND() option to NULL. - The nua module now supports GRUU, too. The GRUU is a special Contact URI, which is generated by the registrar/home proxy. The requests sent to the GRUU Contact URI are routed through the registrar/home proxy towards the user agent. An User-Agent wanting to use GRUU needs to enable it. It has to generate an unique instance identifier (for instance, by calling nua_generate_instance_identifier()), store the identifier to permanent storage (config file) and always include the same identifier in NUTAG_INSTANCE() when calling nua_create(). Stack generates GRUU when it receives a "gruu" parameter in an response to REGISTER request, and uses the GRUU as Contact in INVITE, UPDATE, SUBSCRIBE and NOTIFY transactions. - DNS server discovery support added for win32. Sofia-SIP is now able to get a list of configured nameservers from the Windows registry database (similar to /etc/resolv.conf on UNIX systems). Closes sourceforge.net ticket #1445560. - The 'sip_options', 'sip_dig' and 'stunc' tools have been added to VC6/win32 workspace as an example applications for the library. - The STUN NAT type check algorithm has been refactored. Terms used by the IETF BEHAVE working group are now used to classify NAT/FW features. Now a distinction is made between NAT mapping (which IP:port is allocated for requests) and filtering behaviour. The 'stunc' test tool has been updated to support the changes. Note that the type check mechanism is not 100% reliable -- future mappings may not be of same type, due to indeterministic NAT behaviour, or network changes. Bugs fixed in this release -------------------------- - Fixed #1485624 - nua not binding to port 5060 by default - Fixed #1485625 - nua_create() fails if STUN init fails - Fixed #1485632 - incorrect error message for nua bind errors - Fixed memory management problems in iptsec, reported by Colin Whittaker. - Fixed caching and locking problems in sresolv, reported by Thomas Rosenblatt - Fixed nua_handle_t leaks in various cases, reported by Colin Whittaker - Fixed #1468407 nua_unregister() crashing when called without preceding register (and other crash-prone problems with request message in nua) - Fixed #1473936 - resolving SIP URIs required active IP4 transports in nta - Fixed #1472683 - ACK did not have rport, even if INVITE did - Fixed double branch problem in CANCEL - Fixed problem with client certificate handling in tport module - Fixed problem creating error record in sresolv module - Fixed handling route in re-SUBSCRIBE - Fixed handling headers in re-PUBLISH. Fixed error reporting in the case ESC returns 200 OK response to PUBLISH without Expires header. - Problem with auth-int and nua is fixed: now the correct MD5 sum of message body is calculated. - Fixed #1465023 (NUTAG_CERTIFICATE_DIR() handling problem). Website and other links ----------------------- The release can be downloaded from: - http://sourceforge.net/project/showfiles.php?group_id=143636 Checksums for sofia-sip-1.11.8.tar.gz - md5: ff48c35d44ee247abd71245a862fe34e - sha1: 39fc1878806ba7136801e6c61c059189f4a01042 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/