forked from BelledonneCommunications/sofia-sip
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathRELEASE
215 lines (183 loc) · 9.15 KB
/
RELEASE
1
2
3
4
5
6
7
8
9
10
11
12
13
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
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
===================================
Release notes for Sofia-SIP 1.12.11
===================================
Changes since last release
--------------------------
- su_close() implemented using DisconnectEx() on Win32 (available on XP
or later Windows). The su_close() semantics on Win32 are now similar
to Unix/BSD.
- 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
API/ABI changes and versioning
------------------------------
New features in API are marked with Doxytag macro @VERSION_1_12_11 or
@NEW_1_12_11.
libsofia-sip-ua:
- 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().
- The mp_len type was changed from usize_t to unsigned.
The change is binary-incompatible on 64-bit platforms when compiled with
the configure option --disable-size-compat
- Removed globals which should have been static in first place:
- 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()
- sres_record_class(), urandom
- u2s_alloc()
- memmem (on platforms that do not support memmem)
- 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-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 (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)
See the AUTHORS file in the distribution package.
Notes on TLS certificate validation
-----------------------------------
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
the first message is sent. The stack can reject messages sent to an
untrusted peer.
3) The tport module can now report whether a secondary has a verified
certificate chain and the subjects of the peer certificate.
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().
Bugs fixed in this release
--------------------------
- **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
- Accept multiple WWW-Authenticate and Authorization headers.
Bug reported by Andrew Rechenberg.
Numerous compilation and build system problems were fixed, too.