RELEASE 10.1 KB
Newer Older
1 2 3
==============================================
Release notes for current version of Sofia-SIP
==============================================
Pekka Pessi's avatar
Pekka Pessi committed
4

5 6 7 8 9 10
Changes since last release
--------------------------

<changes since last written in freshmeat.net "Changes:" style;
 and in less than 10 lines, written in 3rd person English, with
 complete sentences />
11

12 13
Bugs in blaa and foo have been fixed. The stack now supports
use of foobar...
Pekka Pessi's avatar
Pekka Pessi committed
14

15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
- Application can feed hashed passwords (HA1) instead of plain text
  password to the iptsec authentication library

- Using NTATAG_EXTRA_100() with server transactions. Applications can now
  control whether stack sends extra 100 Trying responses after N1 timer
  or retransmissions.

- nta_leg_tag(leg, NULL) now always returns the tag (old or new).

- SOA uses addresses present in SDP if they are local.

- Deferrable timers were added.

- Timing out forked INVITE client transactions is now done by stack.
  The stack generates a 408 response to each INVITE transaction fork that
  has not received a final response within 32 seconds (or 64 times SIP T1)
  after first final response to the INVITE was received.

- An INVITE transaction that has been timed out with stack timer C is now
  CANCELed automatically. Previously, such INVITE client transactions
  were restarted instead of timing out under certain circumstances.

- Timing out forked INVITE client transactions is now done by stack.
  The stack generates a 408 response to each INVITE transaction fork that
  has not received a final response within 32 seconds (or 64 times SIP T1)
  after first final response to the INVITE was received.

- Added s2check library for writing check-based module tests for network protocols.

- User Via header with NULL host and port gets filled automatically

Pekka Pessi's avatar
Pekka Pessi committed
46 47
API/ABI changes and versioning
------------------------------
48

49 50 51 52 53 54 55
<see previous release notes at
 http://sofia-sip.sourceforge.net/relnotes/ for examples ;
 - should include all changes to public headers, and
   other important information to developers;
 - and should be updated _continuously_! />

**template**: New features in API are marked with Doxytag macro @VERSION_1_XX_X.
Pekka Pessi's avatar
Pekka Pessi committed
56

57 58
libsofia-sip-ua:
- **template**: Added foobar() function (sofia-sip/foobar.h).
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
- Added functions auth_digest_ha1(), auc_save_credentials(), and
  auc_copy_credentials()
- Added function msg_fragment_clear_chain().
- Added tag SOATAG_DELAYED_OFFER_ENABLE().
- Added tags NUTAG_AUTO302(), NUTAG_AUTO305().
- Added functions nta_outgoing_magic(), nta_agent_tports(),
  nta_leg_client_reroute().
- Added functions su_home_parent(), su_root_clone(),
  su_root_set_max_defer(), su_root_get_max_defer(),
  su_timer_deferrable(), su_timer_is_set(), su_timer_latest(),
  su_task_deferrable(), su_task_wakeup().
- Added locale-independent, NULL-safe string comparison, matching and
  searching functions:
    su_strcmp(), su_strncmp(), su_strcasecmp(), su_strncasecmp(),
    su_strmatch(), su_strnmatch(), su_casematch(), su_casenmatch(),
    su_strncspn(), su_strnspn(), su_strcasestr(), su_memspn() and
    su_memcspn().
76 77
- The mp_len type was changed from usize_t to unsigned.
  The change is binary-incompatible on 64-bit platforms when compiled with
78 79
  the configure option --disable-size-compat
- Removed globals which should have been static in first place:
80 81 82 83 84 85 86
  - su_t64_to_time()
  - mutex_trylocker()
  - su_port_set_system_preferences()
  - t_null_next(), t_null_move(), t_null_dup(), t_null_copy(), t_null_find()
  - t_skip_next(), t_skip_move(), t_skip_len(), t_skip_dup(), t_skip_filter()
  - t_next_next(), t_next_move(), t_next_len(), t_next_dup(), t_next_filter()
  - t_filter_with(), t_any_filter()
87
  - sres_record_class(), urandom
88
  - u2s_alloc()
89 90 91 92
- 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.
93

94
libsofia-sip-ua-glib:
95 96 97
- 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.
98

Pekka Pessi's avatar
Pekka Pessi committed
99 100 101
Contributors to this release
----------------------------

102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
Mikhail Zabaluev (numerous patches)
Michael Jerris (numerous patches)
Jarod Neuner (patches to TLS tport)
Stas Maximov (patch user Via processing) 
Paulo Pizarro (fixes to NTA protocol engine, add SOATAG_DELAYED_OFFER_ENABLE)
Della Betta Filippo (tport fixes, etc.)
Aleksander Morgado (patch for using NTATAG_EXTRA_100)
Kai Samposalo (Symbian build dixes)
Mathieu Rene (fix openssl build, fix stun encoding)
Stephan Knoblich (build fixes)
Bernhard Suttner (fix to 484 respinse processing)
Fabio Margarido (multipart parsing fix)
Lee Verberne (fix parsing /etc/resolv.conf)
Stefano Sabatini (mingw build fix)
Bernd Wachter (doxygen generation patch)
Inca Rose (patch adding TPTAG_TLS_PASSPHRASE)

119 120 121 122 123 124 125 126 127 128 129
<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,
   or listed at the end of the contribur list (depending on the scope
   of the work done since the last release)
 - name of the contributor should be enough (email addresses in AUTHORS),
   plus a _brief_ description of what was contributed
 - roughly sorted by number of patches accepted
/>

- **template**: First Surname (patch to nua/soa/msg)
130

131
See the AUTHORS file in the distribution package.
Pekka Pessi's avatar
Pekka Pessi committed
132

133 134 135

Notes on TLS certificate validation
-----------------------------------
136

137 138 139 140 141 142 143
Jarod Neuner has improved certificate validation facilities of TLS
transport. Significant changes include:

1) The TLS handshake is no longer handled via transparent negotiation.
Certain static methods from tport.c were exposed to make this possible.

2) Certificate subjects are copied out of the peer certificate before
144 145
the first message is sent.  The stack can reject messages sent to an
untrusted peer.
146 147 148

3) The tport module can now report whether a secondary has a verified
certificate chain and the subjects of the peer certificate.
Pekka Pessi's avatar
Pekka Pessi committed
149

150 151 152 153 154 155 156 157 158
Added functions tport_is_verified(), tport_delivered_from_subjects(),
tport_subject_search().

Added tags TPTAG_TLS_PASSPHRASE(), TPTAG_TLS_VERIFY_POLICY(),
TPTAG_TLS_VERIFY_DEPTH(), TPTAG_TLS_VERIFY_DATE(), and
TPTAG_TLS_VERIFY_SUBJECTS().

Deprecated tag TPTAG_TLS_VERIFY_PEER().

159 160 161
Bugs fixed in this release
--------------------------

162 163 164 165 166 167
< notable bugs fixed in this release
 - check the sf.net bug tracker; see closed bugs,
   sorted by closing date
 - other bugs as fixed in CVS/darcs
/>

168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236
- **template**: #9499652 sf.net bug item .title
- Fixed sf.net bug#3146414: process expired contact entries are correctly.
  Patches by Mikhail Zabaluev
- Fixed termination problem in url_query_as_header_string().
- Fixed problem in nua O/A when answer was sent in PRACK. 
- Fixed soa, allow a=recvonly in user SDP. Initial patch by Filippo
  Della Betta.
- Fixed problem responding to request with a Via header with multiple
  header fields.
- Fixed FreesWitch bug FSCORE-551: crash encoding STUN messages.
- Fixed fallback to other DNS servers. Initial patch by Timo Bruhn. 
- Fixed problem searching OpenSSL CA.
- Fixed FreesWitch bug SFSIP-152: parsing /etc/resolv.conf with
  comments.
- Fixed auc_has_authorization() looping forever with multiple challenges.
- Fixed auc_credentials: accepting realm with quotes or semicolons.
  Initial patch by Jerry Richards.
- Fixed sf.net #1292657: resolve NAPTR records for SIPS.
- Fixed FreesWitch bug FSCORE-338: crash with forked transactions.
  Bug reported by Gabriel Kuri.
- Fixed FreesWitch bug SFSIP-125: do not requre 100rel unless it is
  also supported by nua.
- Fixed possible security hole caching non-matching DNS response.
  Patch by Mikhail Zabaluev.
- Fixed sf.net bug #2531152. CNAMEs are now resolved by sres (when appropriate).
  Patch by Mikhail Zabaluev.
- Fixed FreesWitch bug SFSIP-148: Subscription-State header parameter
  "reason" had its name missing. Patch by Mike Jerris.
- Fixed numerous bugs detected with Coverity.
- Fixed SDP syntax problem with rejected m= lines.
- Fixed Auto-ACK when SOA is disabled in NUA.
- Include Session-Expires in session refresh requests.
  Bug reported by Linus Surguy.
- Shutdown half-closed idle connection if there are no queued messages.
  Bug reported by Arsen Chaloyan.
- Fixed FreesWitch bugs SFSIP-135 and SFSIP-137: not restarting
  transactions waiting after a 5XX response with Retry-After header.
- Fixed FreesWitch bug SFSIP-134: CANCEL got restarted if response to
  contained Retry-After header.  Bug reported by vile, initial patch by
  Mike Jerris.
- Now using random key when generating branch and tag values in nta.
- Fixed retry over UDP after TCP server does not accept connection in SIP
  T4 (5 seconds).
- Fixed crash with random() in case libsofia-sip-ua.so gets unloaded.
- Report correct errno from tport_listen() and tport_connect()
- Fixed tport_queuelen() when queue is full.
- Accept empty port number in URLs
- Fixed timing out CANCELed INVITE client transactions. Timing out is
  now done with timer D.  Previously, the INVITE client transactions
  were restarted instead of timing out under certain circumstances.
- Fixed handling INVITE transaction that has been timed out with stack
  timer C. It is now CANCELed automatically. Previously, such an INVITE
  client transaction was restarted instead of timing out under certain
  circumstances.
- Fixed ACK and BYE orphan 200 OK matching with destroyed client transaction.
  Patch by Paulo Pizarro.
- Modifying the route set after initial transaction is now prevented.
  Modifying the route set while dialog is in early state is now allowed.
- Use To header from response when sending ACK to error response.
  Bug reported by Paulo Pizarro.
- Fix 484 respose to REFER in sip_response_terminates_dialog().
  Patch submitted by Bernhard Suttner.
- Answer is now sent in ACK by nua if offer was received in 200 OK to
  re-INVITE.
  Bug reported by Liu Yang.
- Allow authentication even if some authentication schemes are not 
  supported.
- Fixed crash with unknown authentication schemes.
- Fix mutex leak on Windows
237 238
- Accept multiple WWW-Authenticate and Authorization headers.
  Bug reported by Andrew Rechenberg.
239 240

Numerous compilation and build system problems were fixed, too.