Release notes for SIP Express Router (ser) *********************************************** $Id$ *********************************************** * Changes/fixes introduced in 0.8.14 *********************************************** +--------------------------------------------------------+ | WARNING: if you are using 0.8.12 you need to: | | - update the database: ser_mysql.sh reinstall | | (but make a backup copy first) | | - if you are using enum, replace | | enum_query("") with enum_query() | | - if you are using nathelper, switch to the | | latest rtpproxy (cvs co rtpproxy) | | - if you are using one of the radius modules | | you need to upgrade the radiusclient library| | to at least version 0.4.1 | +--------------------------------------------------------+ 0.8.14 is mainly a bug-fix release. It doesn't introduce many new features. It was created from the cvs stable tree (rel_0_8_12), so if you have an up-to-date 0.8.12 from cvs you don't need to upgrade to 0.8.14. New Features ============ - experimental OS X (darwin) support core: - basic avp support (no db conectivity yet) tm: - avp list inherit by transaction and made available in failure and onreply routes; enum: - support for multiple private enum trees, e.g.: enum_query("foo.bar.", "voice"); nathelper: - lots of improvements, new flags, bridge mode a.s.o - requires the latest rtpproxy (cvs -d:pserver:anonymous@cvs.ser.berlios.de:/cvsroot/ser co rtpproxy) usrloc: - database format changed (user agent field added); if you are upgrading from an older ser version you need to run ser_mysql.sh reinstall to update the location and alias tables *_radius: - switched to radiusclient-ng, use at least version 0.4.1 (http://developer.berlios.de/projects/radiusclient-ng) mediaproxy: - nathelper like nat traversal module *********************************************** * Changes/fixes introduced in 0.8.12-r1 *********************************************** - new config variables:$ tcp_connect_timeout= seconds$ time before an ongoing connect will be aborted$ tcp_send_timeout= seconds$ time after a tcp connection will be closed if it is not available.$ for writing in this interval (and ser wants to sen something on it) - full nathelper support (backported from HEAD) - openbsd 3.4 support - group fixed (ser crashed when started with a group) - cpl-c (fast cpl interpreter) introduced *********************************************** * Changes/fixes introduced in 0.8.12 *********************************************** +--------------------------------------------------------+ | WARNING: if you want to use a 0.8.11 config script | | with 0.8.12, replace if ( len_gt(number) ) with: | | if ( msg:len > bumber ) | +--------------------------------------------------------+ New Features ============ texops: - subst('s/re/repl/flags') support core: - added switch to check the config file (-c) - changes: removed len_gt() and replaced with if (msg:len op number|max_len) - multiple operator support: ==, != for special operations (e.g myself, ip) ==, !=, ~= for strings ==, !=, >, <, >=, <= for integers - new config variables: advertised_address= ip | string address advertised in via and in the DST_* lumps (e.g RR) This is the default value, if empty (default) the socket address will be used. WARNING: - don't set it unless you know what you are doing (e.g. nat traversal) - you can set anything here, no check is made (e.g. foo.bar will be accepted even if foo.bar doesn't exist) advertised_port= no port advertised in via and in the DST_*lumps (e.g. RR) This is the default value, if empty (default) the socket port will be used. Same warnings as above. - new script commands: set_advertised_address(ip|string) same as advertised_address but it affects only the current message: Message host/lump address= the set_advertised one if present, else advertised_address else socket address. set_advertised_port(no) same as advertised_port but it affects only the current message; see set_advertised_address & s/address/port/g usrloc: - usernames are case insensitive registrar: - lookup function succeeds when appending of a branch failed auth_db: - support for rpid stored in database (thanks to Jakob Schlyter) Bug fixes ========= - memory leak in digest credentials parser fixed - authenticathion ha1 didn't include domain if username was of the form user@domain and calculate_ha1 was set to yes (modules/auth_db) - tm reply processing race condition (modules/tm), special thanks go to Dong Liu - Many bugs in pa module fixed, works with registrar again. Security updates ================ - fifo processing code will write responses only to other fifos and only if they are not hard-linked, also default ser fifo persmissions were changed to 0600. Performance improvements ======================== - tuned internal malloc implementation parameters to better reflect the actual workload (malloc is a little bit faster now) *********************************************** * Changes introduced in 0.8.11 *********************************************** +--------------------------------------------------------+ | CAUTION: the 0.8.11 release include changes which | | are incompatible with scripts and databases used | | in previous versions. Care is advised when upgrading | | from previous releases to 0.8.11. | +--------------------------------------------------------+ New features ============= - RFC3261 support - TCP support and cross-transport forwarding [core] - loose routing support [rr module] - New modules - vm -- voicemail interface [vm] - ENUM support [enum] - presence agent [pa] - dynamic domain management -- allows to manipulate hosting of multiple domains in run-time [module] - flat-text-file database support [dbtext] - rich access control lists [permissions] - Feature Improvements - click-to-dial, which is based on improved tm/FIFO that better supports external applications [tm module] - web accounting -- acc module can report to serweb on placed calls [acc module] - improved exec module (header fields passed now as environment variables to scripts) [exec module] - Architectural Improvements - powerpc fast locking support - netbsd support - 64 bits arch. support (e.g. netbsd/sparc64). - New Experimental Features (not tested at all yet) - nathelper utility for Cisco/ATA NAT traversal [nathelper] - another NAT traversal utility [mangler] - postgress support [postgress] - fcp module [fcp] - pdt module (prefix2domain) [pdt] Changes to use of ser scripts ============================= About Multiple Transport Support -------------------------------- SER now suports multiple transport protocols: UDP and TCP. As there may be UAs which support only either protocol and cannot speak to each other directly, we recommend to alway record-route SIP requests, to keep the transport-translating SER in path. Also, if a destination transport is not known, stateful forwarding is recommended -- use of stateless forwarding for TCP2UDP would result in loss of reliability. core ---- - reply_route has been renamed to failure_route -- the old name caused too much confusion - forward_tcp and forward_udp can force SER to forward via specific transport protocol acc module: ----------- - radius and sql support integrated in this module; you need to recompile to enable it - acc_flag is now called log_flag to better reflect it relates to the syslog mode (as opposed to sql/radius); for the same reasons, the accounting action is now called "acc_log_request" and the option for missed calls "log_missed_calls" - log_fmt allows now to specify what will be printed to syslog auth module: ------------ - auth module has been split in auth, auth_db, auth_radius, group group_radius, uri and uri_radius - all the parameters that were part of former auth module are now part of auth_db module - auth_db module contains all functions needed for database authentication - auth_radius contains functions needed for radius authentication - group module contains group membership checking functions - group_radius contains radius group membeship checking functions - is_in_group has been renamed to is_user_in and places to groups module - check_to and check_from have been moved to the uri module im module: ---------- - im is no longer used and has been obsoleted by TM exec module: ------------ - exec_uri and exec_user have been obsoleted by exec_dset; exec_dset is identical to exec_uri in capabilities; it additionaly passes content of request elements (header fields and URI parts) in environment variables; users of exec_user can use exec_dset now and use the "URI_USER" variable to learn user part of URI - exec_dset and exec_msg return false, if return value of script does not euqal zero - exec_dset takes an additional parameter, which enables validation of SIP URIs returned by external application jabber module: -------------- - presence support for Jabber users is enabled loading the PA module and using handle_subscribe("jabber") for SUBSCRIBE requests to jabber user msilo module: ------------- - m_store has now a parameter to set what should be considered for storing as destination uri. This enables support for saving the messages on negative replies. radius_acc module: ------------------ - radius_acc module has been removed and radius accounting is now part of acc module registrar/usrloc modules: ------------------------- - multi domain support, the modules user username@domain as AOR if enabled - descent modification time ordering of contacts - case sensitive/insensitive comparison of URI can be enabled rr module: ---------- - addRecordRoute has been replaced with record_route - rewriteFromRoute has been replaced with loose_route() - a new option, "enable_full_lr" can be set to make life with misimplemented UAs easier and put LR in from "lr=on" - rr module can insert two Record-Route header fields when necesarry (disconnected networks, UDP->TCP and so on) tm module: ---------- - t_reply_unsafe, used in former versions within reply_routes, is deprecated; now t_reply is used from any places in script - t_on_negative is renamed to t_on_failure -- the old name just caused too much confusion - FIFO t_uac used by some applications (like serweb) has been replaced with t_uac_dlg (which allows easier use by dialog- oriented applications, like click-to-dial) - if you wish to do forward to another destination from failure_route (reply_route formerly), you need to call t_relay or t_relay_to explicitely now - t_relay_to has been replaced with t_relay_to_udp and t_relay_to_tcp