mirror of https://github.com/sipwise/sems.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
456 lines
12 KiB
456 lines
12 KiB
Changelog for SEMS
|
|
|
|
Version 1.4.2
|
|
- auth'ed BYE (wait_for_bye_transaction)
|
|
- fixes SIP auth for qop header format
|
|
- xmlrpc: fix busyloop with keep-alive
|
|
- a few minor SST issues
|
|
- builds on Ubuntu 11.4 (build-deps)
|
|
- ivr: release GIL on blocking file I/O
|
|
- SBC: fix codec filter for unnamed payloads<96
|
|
- fixed DSM variables to outgoing call
|
|
- some examples and documentation added
|
|
|
|
Version 1.4.1
|
|
|
|
make system:
|
|
- shortened dev build version
|
|
- removed py_sems from sems-python-modules packet.
|
|
|
|
docs:
|
|
- included monitoring mod documentation
|
|
- clarified use of multiple interface support
|
|
|
|
event dispatcher:
|
|
- fixed minor memory leak in error case.
|
|
|
|
session management:
|
|
- fixed several bugs in session creation.
|
|
|
|
sip:
|
|
- return 481 on CANCEL if the transaction cannot be found.
|
|
- reply properly with 482 if the UAS dialog already exists.
|
|
- pass only 200-ACK request to the UA layer.
|
|
- do not update route or remote_uri on failure reply.
|
|
- "ACK for non-existing dialog" logged as DEBUG
|
|
- do not mandate to-tag for anything else but 2xx replies.
|
|
- do not pass orphan replies to UA (no matching transaction).
|
|
- improved AmSipDialog::bye()
|
|
- next_hop core option added.
|
|
|
|
sdp parser:
|
|
- process properly on short SDP
|
|
- allow unsupported transport types.
|
|
|
|
B2BUA:
|
|
- fixed manipulation of short/empty SDP.
|
|
- treat CANCEL hop-by-hop (not waiting for 200 from other side).
|
|
- avoid relaying events if the session is stopped.
|
|
- bind the relay stream to the local RTP IP.
|
|
|
|
RTP relay:
|
|
- fixed sequence number & SSRC of relayed RTP packets.
|
|
|
|
sbc:
|
|
- handle correctly onNoAck event.
|
|
|
|
authentication:
|
|
- adds support for "qop" as described in rfc2617.
|
|
- resend authenticated request as VERBATIM (fixes dup. Max-Forward
|
|
& User-Agent HF)
|
|
|
|
xmlrpc2di:
|
|
- added clean shutdown procedure.
|
|
- fixed issue related to select() and file descriptors >= 1024
|
|
|
|
monitoring
|
|
- monitoring: run garbage collector by default (avoid filling up RAM
|
|
with monitoring data).
|
|
|
|
g729:
|
|
- fix mem leak in g729 wrapper.
|
|
|
|
Version 1.4.0
|
|
- SBC
|
|
- topo hiding B2BUA
|
|
- flexible call profile based configuration
|
|
- online reload of call profiles
|
|
- From, To, RURI, Call-ID update
|
|
- RTP bridging
|
|
- Header and message filter
|
|
- codec filter
|
|
- adding arbitrary headers
|
|
- reply code translation
|
|
- SIP authentication
|
|
- SIP Session Timers
|
|
- call timer
|
|
- prepaid accounting
|
|
|
|
- DSM
|
|
- language: - if / else constructs
|
|
- functions
|
|
- for loops
|
|
|
|
- utils: RingTone
|
|
- mod_groups (call queues, conference interaction etc)
|
|
|
|
- multi homed support (SIP and RTP)
|
|
|
|
- MWI support for voicemail via PUBLISH
|
|
|
|
- XMLRPC bind to specific address
|
|
|
|
- webconference: private/reserved rooms mode
|
|
|
|
- proxy sticky auth
|
|
|
|
- many bug fixes and performance improvements
|
|
|
|
Version 1.3.0
|
|
- SIP stack moved into the core (no need to load sipctrl any more)
|
|
|
|
- session app/signaling thread pool support (for very high session count)
|
|
|
|
- reduced memory usage if no RTP is processed
|
|
|
|
- SIP/UDP receive buffer configurable
|
|
|
|
- optimized potentially contentious mutexes
|
|
|
|
- multiple SIP/UDP receivers for even more signaling performance
|
|
|
|
- daemon mode can be compile-time disabled
|
|
|
|
- command line params may overrule config file
|
|
|
|
- CMake build with older versions possible (2.4)
|
|
|
|
- simple mode for voicemail/voicebox, usable without special handling by proxy
|
|
|
|
- RTP DTMF reception fixed (using RTP TS)
|
|
|
|
- support for DTMF sending/relaying on app level
|
|
|
|
- json-rpc (v2.0) module for interfacing (sync+async)
|
|
|
|
- 100rel (PRACK, RFC 3262) support
|
|
|
|
- open webconference rooms at startup
|
|
|
|
- DNS cache, support for load balancing on DNS SRV records
|
|
|
|
- new tutorials, DSM examples
|
|
|
|
- DSM state machine scripting platform
|
|
- #include scripts
|
|
- sys.popen to run external programs
|
|
- proper dialout support with ringing events, variables passed, auth etc.
|
|
- app selection and call preparation on in-mem DB (monitoring), with fallback
|
|
- System DSMs - executed DSM scripts unrelated to calls
|
|
- full conference support, with subgroups (mixed sidebars)
|
|
- mix in file into call or conference
|
|
- consistency checks on DSM scripts
|
|
- sets() for variable replacement
|
|
- raw SIP message processing
|
|
- arrays (also recursive) in DI action
|
|
- utils.add/sub
|
|
- prefix matching for test
|
|
|
|
- UPDATE support for Session Timer
|
|
|
|
- B2BUA with Session Timer (using UPDATE/re-INVITE with last SDP)
|
|
|
|
- SIP Session Timer for webconference, conference, dsm, ivr
|
|
|
|
- SIGHUP stops active calls, SIGUSR1/2 can be used by apps
|
|
|
|
- G.729 codec module (Intel IPP wrapper)
|
|
|
|
Version 1.2.0
|
|
|
|
- many DSM improvements:
|
|
- exceptions support
|
|
- transitions from multiple origin states
|
|
- 'not' operator on conditions
|
|
- B2BUA functionality
|
|
- register scripts as application
|
|
- live reload of scripts
|
|
- script sets with its own configuration
|
|
- mod_mysql for MySQL DB access
|
|
- mod_conference module
|
|
- mod_aws Amazon Web Services module
|
|
- mod_py Python module
|
|
- CANCEL handling in early dialogs (generates hangup event)
|
|
- Events from DI Interface
|
|
- eval() function for simple expression evaluation (+, -)
|
|
|
|
- ivr: fixed memory leak and crashes that occured with high load
|
|
|
|
- complete working and usable CMake build system
|
|
|
|
- twitter app
|
|
|
|
- monitoring: server monitoring and in-memory AVP store
|
|
|
|
- fixed precoded announcements for all codecs
|
|
|
|
- fixed multiple timers with the same timestamp
|
|
|
|
- mail_header_vars : variables from P-App-Param into voicemail template (SEMS-17)
|
|
|
|
- sipctrl: outbound proxy support and ACK sent from UA layer
|
|
|
|
- stored application and variables from monitoring for new calls
|
|
|
|
- improved RTP DTMF detection using TS
|
|
|
|
- Audio file recording with subtype (e.g. record.wav|A-Law)
|
|
|
|
- PyQT GUI example for webconference
|
|
|
|
|
|
|
|
- py_sems compiles with newer sip4 versions
|
|
|
|
Version 1.1.0 RC1
|
|
(in order)
|
|
|
|
- configurable server timeout for XMLRPC client
|
|
|
|
- DIAMETER client with TLS
|
|
|
|
- SEMS-42: callee domain optionally specified in webconference dialout
|
|
|
|
- SEMS-35: time out empty webconference rooms
|
|
|
|
- support for multi domain through uid/did in voicebox system
|
|
|
|
- early media support for b2b w/ media relay
|
|
|
|
- transparent signaling + media B2BUA application
|
|
|
|
- MT XMLRPC server
|
|
|
|
- ISDN gateway module
|
|
|
|
- controlled server shutdown (de-initialization, stopping of sessions)
|
|
|
|
- improved logging
|
|
|
|
- MT binrpc receiver, connection pool for sending to SER
|
|
|
|
- DSM state machine interpreter: write applications as simple,
|
|
self-documenting, correct, state machine description charts
|
|
|
|
- g722 codec from spandsp in 8khz compatibility mode
|
|
|
|
- support for out of dialog request handling in modules
|
|
|
|
- audio file autorewind
|
|
|
|
- AmAudio mixing
|
|
|
|
- 488 reply (instead of 606) if no compatible codec found
|
|
|
|
... plus as always lots of fixes
|
|
|
|
Version 1.0.0
|
|
|
|
- internal SIP stack (sipctrl)
|
|
|
|
- module to use ser2 as SIP stack (binrpcctrl)
|
|
|
|
- rewritten SDP parser
|
|
|
|
- various options for application selection (configured, special header,
|
|
RURI regexp, RURI user, RURI parameter)
|
|
|
|
- ZRTP support
|
|
|
|
- XMLRPC client mode
|
|
|
|
- DIAMETER client
|
|
|
|
- new complete mailbox system (msg_storage+voicebox+voicemail+annrecorder)
|
|
|
|
- simple call generator application
|
|
|
|
- early media pre-call announcement application with B2B
|
|
|
|
- B2B call timer application
|
|
|
|
- callback application
|
|
|
|
- prepaid and click2dial applications
|
|
|
|
- precoded annoucements
|
|
|
|
- early media receiving example
|
|
|
|
- support for extra headers in dialout sessions
|
|
|
|
- support for setting the URI of a session in SDP
|
|
|
|
- support for posting events into conferences
|
|
|
|
- support for receiving early media
|
|
|
|
- outbound_proxy option sets next hop on outgoing dialogs and
|
|
registrations
|
|
|
|
- b/f: don't reuse dialog for SIP authenticated re-sending of INVITE
|
|
|
|
- fixed artifacts on wav files with extra chunks
|
|
|
|
- support for spandsp DTMF detection, packet loss concealment
|
|
|
|
- speex NB, G726, L16 codecs
|
|
|
|
- support for local audio as audio sources into audio engine
|
|
on the same channel as RTP
|
|
|
|
- selectively exclude codecs
|
|
|
|
- MP3 playback
|
|
|
|
- libsrc resampling enables prompt files in other bitrates
|
|
|
|
- RTP receive buffer optimization
|
|
|
|
- configurable session limit
|
|
|
|
- basic OPTIONS support for alive monitoring through SIP
|
|
|
|
- syslog calls logging, configurable syslog facility
|
|
|
|
- builds for and on solaris, openembedded, openwrt, Darwin, too
|
|
|
|
... plus as always lots of fixes
|
|
|
|
Version 0.10.0 (final)
|
|
- new module for exposing internal DI APIs via XMLRPC
|
|
|
|
- new module for triggering calls via DI interface
|
|
|
|
- new DI/XMLRPC controlled conference application, that can for example
|
|
be used for conference rooms with web interface
|
|
|
|
- CallWatcher and a more powerful dialout function simplifies
|
|
interfacing to external applications
|
|
|
|
- many examples for quick start of custom service development,
|
|
for example new serviceline (auto-attendant) application
|
|
|
|
- b2bua implementation with media relay
|
|
|
|
- language awareness of conference application
|
|
|
|
- DB support for conference and voicemail prompts, and announcements
|
|
|
|
- PromptCollection simplifies usage of prompts in applications
|
|
|
|
- b2bua support in py_sems embedded python interpreter
|
|
|
|
- corrected RTP timeout detection
|
|
|
|
- new api for custom logging modules, new in-memory ring buffer
|
|
logging module
|
|
|
|
- accept all possible payloads and payload switching on the fly
|
|
(thanks to Maxim Sobolyev/sippysoft)
|
|
|
|
- changing callgroups (media processing threads) in running sessions
|
|
|
|
- support for setting sessions on hold
|
|
|
|
- support for OpenSer 1.3
|
|
|
|
- substantially improved documentation
|
|
|
|
- 'bundle' install method for easy installation
|
|
|
|
- support for OpenWRT package build
|
|
|
|
... and many bugfixes
|
|
|
|
Version 0.10.0 rc2
|
|
|
|
- new Adaptive jitter buffer as alternative playout method
|
|
Contributed by Andriy Pylypenko/Sippy Software
|
|
|
|
- new PIN collect application with transfer to e.g.
|
|
separate conference bridge
|
|
|
|
- new SIP registrar client for registration at a
|
|
SIP registrar
|
|
|
|
- new UAC authentication component
|
|
|
|
- new faster announcement application with memory caching for
|
|
audio files
|
|
|
|
- new pre call announcement method using REFER
|
|
|
|
- new plug-in py_sems using a Python/C++ binding generator for even more power
|
|
in python scripts
|
|
|
|
- stats server can be used for monitoring custom modules/applications
|
|
|
|
- session specific parameters by default taken from unified
|
|
session parameters header
|
|
|
|
- signature configurable
|
|
|
|
- install and make system updated
|
|
|
|
- added documentation
|
|
|
|
- some security bugfixes (namely fixing possible
|
|
buffer overflows)
|
|
|
|
- ...and a lot of other bug fixes
|
|
|
|
|
|
Version 0.10.0 rc1
|
|
...
|
|
|
|
What is new in SEMS version 0.10.0 (from 0.9.0)
|
|
|
|
Between 0.9.0 (CVS) versions and 0.10.0, quite a lot has changed.
|
|
Almost 50% of the code has been rewritten: the design has been
|
|
simplified a lot, and to make a slim, clean core a lot of
|
|
functionality has been dropped. Instead, for the core we just
|
|
focus on the essentials: basic signalling, session and media
|
|
handling, and loading plugins.
|
|
|
|
An inter-plugin API ("DI-API") has been introduced, such that
|
|
functionality can be added using plugins, everybody can implement
|
|
their favorite functionality as a reusable plug-in, and applications
|
|
can be built in a modular manner.
|
|
|
|
A new kind of modules, session component plugins, can even modify the
|
|
basic signaling behaviour, the session timer plugin is the first one to
|
|
use this.
|
|
|
|
Major additional changes:
|
|
* Interface to Ser has been rewritten.
|
|
|
|
* Application plug-in interface has been partially rewritten.
|
|
Applications are now exclusively event driven and asynchronous.
|
|
|
|
* Media is processed by one thread for all sessions, improving
|
|
the performance extremely due to less task-switching
|
|
|
|
* Back-to-back User Agent (B2BUA) functionality has been added.
|
|
|
|
* IVR python code has been completely rewritten: Applications are
|
|
now developed in the IVR like their C++ counterparts
|
|
|
|
* Session-Timer has been added (as module), replacing the ICMP
|
|
watcher
|
|
|
|
* Adaptive playout buffer has been added
|
|
|
|
* Audio processing simplified
|
|
|