RELEASE 5.98 KB
Newer Older
Pekka Pessi's avatar
Pekka Pessi committed
1 2 3
==================================
Release notes for Sofia-SIP 1.11.8
==================================
Pekka Pessi's avatar
Pekka Pessi committed
4 5 6 7

Changes since last release
--------------------------

Pekka Pessi's avatar
Pekka Pessi committed
8 9 10 11 12 13 14 15
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.

Pekka Pessi's avatar
Pekka Pessi committed
16

Pekka Pessi's avatar
Pekka Pessi committed
17 18 19
API/ABI changes and versioning
------------------------------

20 21 22 23 24 25
- 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]
26
    and nua_register()/NUTAG_OUTBOUND() documentation
27

28
- Revised sresolv interface and added:
Pekka Pessi's avatar
Pekka Pessi committed
29
    sofia-resolv/sres.h
30
    sofia-resolv/sres_config.h
Pekka Pessi's avatar
Pekka Pessi committed
31 32 33
    sofia-resolv/sres_async.h
    sofia-resolv/sres_cache.h
    sofia-resolv/sres_record.h
Pekka Pessi's avatar
Pekka Pessi committed
34
    utils/sip-dig.c example program
35 36 37 38 39 40
  - 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()
Pekka Pessi's avatar
Pekka Pessi committed
41

Pekka Pessi's avatar
Pekka Pessi committed
42 43 44 45 46 47 48 49 50
- 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.
51
  - Added <sofia-sip/tport_plugins.h>
Pekka Pessi's avatar
Pekka Pessi committed
52

53 54 55 56 57
- Major changes in stun:
  - Added the stun_dns_lookup.*() interface to sofia-sip/stun.h.
  - stun_handle_() functions are replaced by stun_() functions in 
    <sofia-sip/stun.h>.
  - Discovery context pointer and callback added to stun_bind()
58 59 60 61
  - 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.
Pekka Pessi's avatar
Pekka Pessi committed
62

63 64
- Added handling of a single warning into the soa and nua modules

Pekka Pessi's avatar
Pekka Pessi committed
65 66
- Removed old rtsp-related nua functions and events not used anymore.

Pekka Pessi's avatar
Pekka Pessi committed
67
- Removed nutag_sip_parser (using ntatag_mclass instead)
Martti Mela's avatar
Martti Mela committed
68

69 70
- Now returning 9XX errors from inside NUA

Pekka Pessi's avatar
Pekka Pessi committed
71 72
- Added --enable-sctp to configure; fixed some SCTP problems,
  (but not all)
73

74 75 76
- On win32 platform, clients need to link against the "advapi32" 
  system library.

77 78
- Removed utf8 functions and sofia-sip/utf8.h header file.

79

Pekka Pessi's avatar
Pekka Pessi committed
80 81 82
Contributors to this release
----------------------------

83 84 85
- Dimitri E. Prado: Initial patch for win32 DNS 
  server discovery.

86 87 88
See the AUTHORS file in the distribution package, too.


89 90
Notes on new features
---------------------
91

92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
- 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.

110 111 112 113 114
- 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.

115 116
- The 'sip_options', 'sip_dig' and 'stunc' tools have been added to 
  VC6/win32 workspace as an example applications for the library.  
Pekka Pessi's avatar
Pekka Pessi committed
117

118 119 120 121 122 123 124 125
- 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.

126

Pekka Pessi's avatar
Pekka Pessi committed
127 128 129
Bugs fixed in this release
--------------------------

130 131 132
- 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
133
- Fixed memory management problems in iptsec, reported by Colin Whittaker.
134
- Fixed caching and locking problems in sresolv, reported by Thomas Rosenblatt
135
- Fixed nua_handle_t leaks in various cases, reported by Colin Whittaker
Pekka Pessi's avatar
Pekka Pessi committed
136 137 138 139 140 141 142 143 144 145 146 147 148
- 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).