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