1Changelog for SEMS
2
3Version 1.6.0
4- IVR
5    - Calling stopSession() is now all that needs to be done when BYE
6      is received from caller or callee leg.
7    - It is not anymore possible to prevent callee leg from being
8      disconnected when caller leg is disconnected.
9
10Version 1.5.0
11 - Core
12    - configurable SIP timers (global)
13    - timer C support (mainly for SBC)
14    - SUBSCRIBE/NOTIFY support
15    - multi-mime bodies
16    - wideband / multiple sample frequency support
17    - multiple destinations (faked SRV record)
18    - DNS SRV: support for 503 replies
19    - multi-threaded RTP receiver
20    - complete rework of offer/answer mechanisms
21
22 - Codecs:
23    - iSAC
24    - SILK
25    - SPEEX 16kHz, 32kHz
26    - G722
27    - L16
28
29 - SBC
30    - audio & dtmf transcoder
31    - call-control modules
32    - lots of small improvements
33
34 - Monitoring
35    - munin plugin
36
37 - DSM
38    - mod_xml: XML handling
39    - mod_curl: HTTP requests
40    - mod_subscription: SUBSCRIBE/NOTIFY
41    - mod_regex: regular expressions
42    - lots of small improvements
43
44 - App Plug-ins
45    - db_reg_agent: register SIP accounts from a DB
46    - rtmp: RTMP gateway
47
48Version 1.4.0
49 - SBC
50    - topo hiding B2BUA
51    - flexible call profile based configuration
52    - online reload of call profiles
53    - From, To, RURI, Call-ID update
54    - RTP bridging
55    - Header and message filter
56    - codec filter
57    - adding arbitrary headers
58    - reply code translation
59    - SIP authentication
60    - SIP Session Timers
61    - call timer
62    - prepaid accounting
63
64 - DSM
65    - language: - if / else constructs
66                - functions
67                - for loops
68
69    - utils: RingTone
70    - mod_groups (call queues, conference interaction etc)
71
72 - multi homed support (SIP and RTP)
73
74 - MWI support for voicemail via PUBLISH
75
76 - XMLRPC bind to specific address
77
78 - webconference: private/reserved rooms mode
79
80 - proxy sticky auth
81
82 - many bug fixes and performance improvements
83
84Version 1.3.0
85 - SIP stack moved into the core (no need to load sipctrl any more)
86
87 - session app/signaling thread pool support (for very high session count)
88
89 - reduced memory usage if no RTP is processed
90
91 - SIP/UDP receive buffer configurable
92
93 - optimized potentially contentious mutexes
94
95 - multiple SIP/UDP receivers for even more signaling performance
96
97 - daemon mode can be compile-time disabled
98
99 - command line params may overrule config file
100
101 - CMake build with older versions possible (2.4)
102
103 - simple mode for voicemail/voicebox, usable without special handling by proxy
104
105 - RTP DTMF reception fixed (using RTP TS)
106
107 - support for DTMF sending/relaying on app level
108
109 - json-rpc (v2.0) module for interfacing (sync+async)
110
111 - 100rel (PRACK, RFC 3262) support
112
113 - open webconference rooms at startup
114
115 - DNS cache, support for load balancing on DNS SRV records
116
117 - new tutorials, DSM examples
118
119 - DSM state machine scripting platform
120    - #include scripts
121    - sys.popen to run external programs
122    - proper dialout support with ringing events, variables passed, auth etc.
123    - app selection and call preparation on in-mem DB (monitoring), with fallback
124    - System DSMs - executed DSM scripts unrelated to calls
125    - full conference support, with subgroups (mixed sidebars)
126    - mix in file into call or conference
127    - consistency checks on DSM scripts
128    - sets() for variable replacement
129    - raw SIP message processing
130    - arrays (also recursive) in DI action
131    - utils.add/sub
132    - prefix matching for test
133
134 - UPDATE support for Session Timer
135
136 - B2BUA with Session Timer (using UPDATE/re-INVITE with last SDP)
137
138 - SIP Session Timer for webconference, conference, dsm, ivr
139
140 - SIGHUP stops active calls, SIGUSR1/2 can be used by apps
141
142 - G.729 codec module (Intel IPP wrapper)
143
144Version 1.2.0
145
146- many DSM improvements:
147  - exceptions support
148  - transitions from multiple origin states
149  - 'not' operator on conditions
150  - B2BUA functionality
151  - register scripts as application
152  - live reload of scripts
153  - script sets with its own configuration
154  - mod_mysql for MySQL DB access
155  - mod_conference module
156  - mod_aws Amazon Web Services module
157  - mod_py Python module
158  - CANCEL handling in early dialogs (generates hangup event)
159  - Events from DI Interface
160  - eval() function for simple expression evaluation (+, -)
161
162- ivr: fixed memory leak and crashes that occured with high load
163
164- complete working and usable CMake build system
165
166- twitter app
167
168- monitoring: server monitoring and in-memory AVP store
169
170- fixed precoded announcements for all codecs
171
172- fixed multiple timers with the same timestamp
173
174- mail_header_vars : variables from P-App-Param into voicemail template (SEMS-17)
175
176- sipctrl: outbound proxy support and ACK sent from UA layer
177
178- stored application and variables from monitoring for new calls
179
180- improved RTP DTMF detection using TS
181
182- Audio file recording with subtype (e.g. record.wav|A-Law)
183
184- PyQT GUI example for webconference
185
186
187
188- py_sems compiles with newer sip4 versions
189
190Version 1.1.0 RC1
191 (in order)
192
193 - configurable server timeout for XMLRPC client
194
195 - DIAMETER client with TLS
196
197 - SEMS-42: callee domain optionally specified in webconference dialout
198
199 - SEMS-35: time out empty webconference rooms
200
201 - support for multi domain through uid/did in voicebox system
202
203 - early media support for b2b w/ media relay
204
205 - transparent signaling + media B2BUA application
206
207 - MT XMLRPC server
208
209 - ISDN gateway module
210
211 - controlled server shutdown (de-initialization, stopping of sessions)
212
213 - improved logging
214
215 - MT binrpc receiver, connection pool for sending to SER
216
217 - DSM state machine interpreter: write applications as simple,
218   self-documenting, correct, state machine description charts
219
220 - g722 codec from spandsp in 8khz compatibility mode
221
222 - support for out of dialog request handling in modules
223
224 - audio file autorewind
225
226 - AmAudio mixing
227
228 - 488 reply (instead of 606) if no compatible codec found
229
230 ... plus as always lots of fixes
231
232Version 1.0.0
233
234 - internal SIP stack (sipctrl)
235
236 - module to use ser2 as SIP stack (binrpcctrl)
237
238 - rewritten SDP parser
239
240 - various options for application selection (configured, special header,
241   RURI regexp, RURI user, RURI parameter)
242
243 - ZRTP support
244
245 - XMLRPC client mode
246
247 - DIAMETER client
248
249 - new complete mailbox system (msg_storage+voicebox+voicemail+annrecorder)
250
251 - simple call generator application
252
253 - early media pre-call announcement application with B2B
254
255 - B2B call timer application
256
257 - callback application
258
259 - prepaid and click2dial applications
260
261 - precoded annoucements
262
263 - early media receiving example
264
265 - support for extra headers in dialout sessions
266
267 - support for setting the URI of a session in SDP
268
269 - support for posting events into conferences
270
271 - support for receiving early media
272
273 - outbound_proxy option sets next hop on outgoing dialogs and
274   registrations
275
276 - b/f: don't reuse dialog for SIP authenticated re-sending of INVITE
277
278 - fixed artifacts on wav files with extra chunks
279
280 - support for spandsp DTMF detection, packet loss concealment
281
282 - speex NB, G726, L16 codecs
283
284 - support for local audio as audio sources into audio engine
285   on the same channel as RTP
286
287 - selectively exclude codecs
288
289 - MP3 playback
290
291 - libsrc resampling enables prompt files in other bitrates
292
293 - RTP receive buffer optimization
294
295 - configurable session limit
296
297 - basic OPTIONS support for alive monitoring through SIP
298
299 - syslog calls logging, configurable syslog facility
300
301 - builds for and on solaris, openembedded, openwrt, Darwin, too
302
303 ... plus as always lots of fixes
304
305Version 0.10.0 (final)
306 - new module for exposing internal DI APIs via XMLRPC
307
308 - new module for triggering calls via DI interface
309
310 - new DI/XMLRPC controlled conference application, that can for example
311   be used for conference rooms with web interface
312
313 - CallWatcher and a more powerful dialout function simplifies
314   interfacing to external applications
315
316 - many examples for quick start of custom service development,
317   for example new serviceline (auto-attendant) application
318
319 - b2bua implementation with media relay
320
321 - language awareness of conference application
322
323 - DB support for conference and voicemail prompts, and announcements
324
325 - PromptCollection simplifies usage of prompts in applications
326
327 - b2bua support in py_sems embedded python interpreter
328
329 - corrected RTP timeout detection
330
331 - new api for custom logging modules, new in-memory ring buffer
332   logging module
333
334 - accept all possible payloads and payload switching on the fly
335   (thanks to Maxim Sobolyev/sippysoft)
336
337 - changing callgroups (media processing threads) in running sessions
338
339 - support for setting sessions on hold
340
341 - support for OpenSer 1.3
342
343 - substantially improved documentation
344
345 - 'bundle' install method for easy installation
346
347 - support for OpenWRT package build
348
349 ... and many bugfixes
350
351Version 0.10.0 rc2
352
353 - new Adaptive jitter buffer as alternative playout method
354   Contributed by Andriy Pylypenko/Sippy Software
355
356 - new PIN collect application with transfer to e.g.
357   separate conference bridge
358
359 - new SIP registrar client for registration at a
360   SIP registrar
361
362 - new UAC authentication component
363
364 - new faster announcement application with memory caching for
365   audio files
366
367 - new pre call announcement method using REFER
368
369 - new plug-in py_sems using a Python/C++ binding generator for even more power
370   in python scripts
371
372 - stats server can be used for monitoring custom modules/applications
373
374 - session specific parameters by default taken from unified
375   session parameters header
376
377 - signature configurable
378
379 - install and make system updated
380
381 - added documentation
382
383 - some security bugfixes (namely fixing possible
384   buffer overflows)
385
386 - ...and a lot of other bug fixes
387
388
389Version 0.10.0 rc1
390 ...
391
392What is new in SEMS version 0.10.0 (from 0.9.0)
393
394Between 0.9.0 (CVS) versions and 0.10.0, quite a lot has changed.
395Almost 50% of the code has been rewritten: the design has been
396simplified a lot, and to make a slim, clean core a lot of
397functionality has been dropped. Instead, for the core we just
398focus on the essentials: basic signalling, session and media
399handling, and loading plugins.
400
401An inter-plugin API ("DI-API") has been introduced, such that
402functionality can be added using plugins, everybody can implement
403their favorite functionality as a reusable plug-in, and applications
404can be built in a modular manner.
405
406A new kind of modules, session component plugins, can even modify the
407basic signaling behaviour, the session timer plugin is the first one to
408use this.
409
410Major additional changes:
411 * Interface to Ser has been rewritten.
412
413 * Application plug-in interface has been partially rewritten.
414   Applications are now exclusively event driven and asynchronous.
415
416 * Media is processed by one thread for all sessions, improving
417   the performance extremely due to less task-switching
418
419 * Back-to-back User Agent (B2BUA) functionality has been added.
420
421 * IVR python code has been completely rewritten: Applications are
422   now developed in the IVR like their C++ counterparts
423
424 * Session-Timer has been added (as module), replacing the ICMP
425   watcher
426
427 * Adaptive playout buffer has been added
428
429 * Audio processing simplified
430
431