|
|
OpenSER v1.1.x Release Notes |
|
OpenSER v1.1.1
January 22. 2007
OpenSER v1.1.1 is an update of v1.1.0 which includes the fixes for the issues
discovered in this branch since v1.1.0 release. It is recommended to update
any v1.1.0 to v1.1.1.
This release does not include any major changes in the database structure or
in configuration script. The configurations scripts used for v1.1.0 are
fully compatible with v1.1.1.
The sources, binaries and packages for different OS distributions and architectures can be downloaded from:
The packages will be uploaded as soon as they are
submitted by public contributors. You will find OpenSER packages in several Linux distributions (Debian Testing and Unstable, OpenSUSE). More details about how to download OpenSER can be found in download page .
The documentation for modules has been deployed online in html format:
Detailed change log is available here .
OpenSER v1.1.0
July 10, 2006
After about eight months of development, including two months of
extensive testing,
the 1.1.0 release is out. This is a new major release following to
1.0.0. This means that you have to do update to your configuration file
from v1.0.0 to make it work with v1.1.0. Fortunately there are not many
changes to be applied.
Dokuwiki page has been created to track this changes:
http://openser.org/dokuwiki/doku.php/install:1.0.x-to-1.1.x
We would like to thank for the work, suggestions and contributions to this
release to all people supporting the project. Special thanks go to:
Bogdan-Andrei Iancu - development, testing, documentation and package generation Daniel-Constantin Mierla - development, testing, documentation and package generation Juha Heinanen - development, testing, documentation Elena-Ramona Modroiu - development, testing, documentation Klaus Darilion - development, testing, package generation Cesc Santasusana - development, documentation Jesus Rodriguez - testing, package generation Norman Brandinger - testing, documentation Dmitry Isakbayev - development, documentation Marco Lorai - developement, documentation Greg Fausak - development Andreas Granig - development, documentation
Important changes
- AVP parameters of avpops module changed to use same naming schema as pseudo-variables ($avp(type:name))
Packages
The sources, binaries and packages for different OS distributions and architectures can be downloaded from:
The packages will be uploaded as soon as they are
submitted by public contributors. So, check the site from time to time
if you are looking for a special distro or architecture.
The documentation for modules has been deployed online in html format:
Other documentation resources in documentation page.
What is new?
New in OpenSER core
- statistics support - core and modules can export various
statistic variables describing the internal state of the server. While
the core exports general information like the number of processed
replies/requests and memory usage, the modules export specific
information about their processing. The statistics core offers a
unified interface for accessing all the statistics from across OpenSER.
- NAPTR
support - OpenSER is RFC3263 "Locating SIP Servers" compliant. If no
port and no protocol is specified, it will perform NAPTR lookup to
detect the supported protocols and then SRV lookup for port discovery.
- atomic
operations - for greater performances atomic operations were implemented
in assembler code (only for i386 for the moment). This eliminates the
usage of locks for counters and barriers.
- Dynamic serial forking - support for dynamic serial forking based
on Q value is available in core. It can be used to do serial forking
based on the output of any other modules like ENUM, Usrloc, Exec, etc
- TCP/TLS enhancement - performant support for more than 1024 TCP
connections. The connection lifetime can be controlled by other modules
- this allows usrloc to do nat traversal for TCP connections.
- support for generic hash functions
New OpenSER modules
- dialog module - it provides basic dialog support in OpenSER; it
can store and track dialogs and provide statistics about the processed
or active dialogs. This module will be the foundation more future more
complex dialog based features.
- OSP module - OSP support enables OpenSER to support secure,
multi-lateral peering using the OSP standard defined by ETSI (TS 101
321 V4.1.1). It allows to send a peering authorization request to a
peering server, to validate a digitally signed peering authorization
token received in a SIP INVITE message and toreport usage information to a peering server.
- path module - according to RFC 3327, it is designed to be
used at intermediate sip proxies like loadbalancers in front of
registrars and proxies. It provides functions for inserting a Path
header including a parameter for passing forward the received-URI of aregistration to the next hop.
- siptrace
module - the module offers a possibility to store incoming/outgoing SIP
messages in database, allowing the administrator an easy level one
debugging of the SIP traffic based on different criteria.
- statistics module - the Statistics module is a wrapper over the
internal statistics manager, allowing the script writer to
dynamically define and use of statistic variables. By
bringing the statistics support into the script, it takes advantage of
the script flexibility in defining logics, makingpossible implementation of any kind of statistic scenario.
- tlsops module - this module implements TLS related functions to
use in the routing script, and exports pseudo variables with
certificateand TLS parameters.
- unixodbc module - it allows OpenSER to use a large set of database engines via the standard DB connector UNIXODBC.
New in OpenSER modules
- acc module
- direction detection implemented it generate consistent logs disregarding if the BYE is generated by caller or callee.
- enhancent accounting for missed calls by controlling thelogging at branch and call level.
- more accurate per branch logging - winning branch (instead of last one) is accounted at call level.
- radius acc requests include an event time stamp
(Event-Timestamp Radius AVP - see RFC2869). The Radius server timpstamp
is not reliable since itcontains also the delays due possible RADIUS retransmissions.
- avpops
- avp_db_query() - new function that allows to do raw sql queries and store the result in AVPs - performance can be increased by reducing the number of accesses to database.
- parameters format is same as for pseudo-variables - an AVP parameter is referred now via "$avp(type:name)" instead of old format "type:name" (e.g., old "i:11" must be now written "$avp(i:11)") - this brings coherence with pseudo-variables and avoids confusion between int/string values and AVP names
- cpl-c
- NAT traversal support (via received) for the lookup CPL node.
- added per branch nat flags support for lookup CPL node.
- multi domain support added.
- dispatcher
- dispatcher has failover support - when failover is enabled,
selected destination is added as dst_uri or domain part of r-uri
and the rest of addresses in destination setare added in AVP list.
- enum
- new functions (or new vresions of them): enum_fquery(), is_from_user_e164(), is_from_user_enum()
- group
- regular expression based group matching added
- lcr
- optional group id parameter is accepted by load_gws(), from_gw(), and to_gw() functions.
- DB caching support adde.
- new FROM regexp matching.
- dynamic strip URI before forward.
- nathelper
- IPv6 compliant.
- prope handling of multiple stream handling in sequential requests.
- support for changing session-level SDP connection (c=) IP when media-description also includes connection information.
- fix_nated_sdp() may take one more param to force a specific IP instead of the signalling IP.
- force_rtp_proxy() accepts a new flag 's' to swap
creation/confirmation between requests/replies (this is needed to be
able to cope with SDPs advertised via 200OK / ACK)
- add_rcv_param() may take as parameter a flag telling if the
parameter should go to the contact URI or contact header; make
sense if you forward REGISTER requests and need the registrar to save
the parameter as part of URI.
- pdt
- multi-domain support added
- permissions
- added "none" protocol option that never matches and thus disables the peer
- registrar
- module may set for TCP connection a custom lifetime for keeping it open as long as the registered contact is valid
- Path support according to RFC 3327 - support in registrar for loadbalancing using Path-HF with NAT-Support applied
- request with failed checks are negativly replied with err headers for hints
- method filtering performed by lookup()
- rr
- obsolete function strict_route() removed
- add_rr_param may be called from BRANCH and FAILURE route
- record_route() may take a parameter containing RR params
- "lr" param is added as first param to speed up the loose_routing processing
- record_route / add_rr_param / record_route_preset accept pseudo-variables in params
- extra checking to void double record routing via record_route and record_route_preset
- callbacks are executed after all routing changes were done -
this allows the usage of callback that may change the routing info
without overlappingwith the RR processing.
- add_username alters also the behaviour of record_route_preset()
- sl
- callbacks added - the only event is sending a stateless reply
- statistics support added
- textops
- new function has_body([mime])
- new
set of function to work on the body of the message: search_body(),
search_append_body(), replace_body(), replace_body_all(), subst_body()
- function is_method() can be called from BRANCH_ROUTE.
- tm
- fixed branch picking algorithm - if cancelled, but not 487 replied received, fallback and use classical algorithm.
- fixed
in building ACKs for negative replies to local INVITEs. RURI must be
the same as in INVITE and Route hdr have no send to be added
- branch selection algorithm centralized in a single place - more coherent and easier to maintain.
- the selected branch in stored in a static variable to avoid
multiple computation for same transaction (so far, each
t_check_status() call was triggering computation of the selected branch)
- TM API exports a new function for making public the selected
branch (how the winning branch is selected must be transparent for the
other modules)
- fixed
the branch selection algorithm - if the transaction was cancelled,
the "487 Request cancelled" reply will have priority and it will
be sent to UAC
- t_replicate()
takes as parameter a SIP URI instead of a destination (in order to
align the format as for append_branch()). Also t_replicate() uses the
set branches to perform parallel replication to multiple destinations.
- new TM callbacks added:
- TMCB_TRANS_DELETED - called when the transaction is deleted ;
- TMCB_REQUEST_BUILT - called just before sending out a request.
- "pass_provisional_replies" TM options (pass back through unixsock the provisional replies and not only the final one).
This was required in order to maintain compatbility with latest SEMS version.
- module exports $T_branch_idx pseudo-variable refering to the index of the branch for which the branch_route[] is executed
- advanced TM monitoring
- t_relay*() returns 1 instead of 0 when forwarding ACK
- relay functions merging:
- t_relay_to_udp(), t_relay_to_tcp(), t_relay_to_tls() merged into t_relay(proto:host:port)
- t_forward_nonack_uri(), t_forward_nonack_udp(), t_forward_nonack_tcp(),
- t_forward_nonack_tls() merged into t_forward_nonack(proto:host:port) and t_forward_nonack()
- t_replicate_udp(), t_replicate_tcp(), t_replicate_tls() merged into t_replicate(sip_uri)
- uac
- default value for "from_restore_mode" switch to auto
- new module parameter "from_passwd" - used to encrypt the RR parameter which contains the original FROM URI
- uac_replace_from()
adds the display name if not present (so far it only replaced it); uri
is enclosed between brackets if not. Actually, now you can set a
display name if none was present.
- when performing UAC
authentication, look in predefined AVPs for credentials before using
the static set credentials (via modparam)
- uri_db
- "db_url" module parameter may be set to empty string in orer to
disable DB support in the module - this is needed if you want to use
check_to() or check_from() to check the user against credentials in a
non DBenvironment.
- usrloc
- module is able to detect retransmissions based on Callid
and Cseq. The retransmission detecton is controled via the new
"cseq_delay" module parameter. REGISTER retransmissions (inside the
cseq_delay interval) will not generate error, but they will be
accepted and properly replied without any update on the location
status. This solves the problem of retransmissions without having a
statefullprocessing on requests.
- advanced monitoring via statistics; module export dynamic
statistic for each register domain (as location or aliases). Available
statistics: number of registered users (AORs);number of registered contacts (>= AORs); number of expired contacts
- get_contacts fifo and unixsock functions retunrn more
additional info related to the
contact:
expires;flags;socket;methods;received?;user_agent?;path?. Values marked with ? may be missing if empty.
- usrloc: new DB mode - DB-Only - no memory cache is kept, all
operation being directly done into DB. Allows DB sharing between
multiple proxies without the need of additional replication mechanism.
Drawbacks:
- some performance penalties due intensive DB usage
- location watcher disabled (cannot be bind to a record into mem) => PA cannot be used
- statistics do not work since events cannot be properly been traced without a mem cache
- contact maching algorithm aligned to the RFC 3261 specs (added extra checking based on callid and cseq)
- configurable multi-algorithm for contact matching:
- contact only based (as in RFC)
- contac and callid based
- supported methods are saved into usrloc
- saved socket info contains now also the protocol. The socket is saved as: proto:ip:port
Release notes from previous versions:
|
|
|
FLASHNEWS |
|
2010-03-03 - Present and Future of SIP Routing, London, UK, March 9, 2010 - dedicated event focused on Kamailio (OpenSER) and SIP Router projects |
|
Read more...
|
|
2010-03-01 - meet Kamailio (OpenSER) and SIP Router representatives at VoIP events in March 2010 - Hannover, London and Berlin |
|
Read more...
|
|
2010-02-23 - many new features made their way in development branch during last month, since Kamailio 3.0.0 release |
|
Read more...
|
|
2010-02-02 - Kamailio v1.5.4 is out - a
minor release of the branch 1.5, including fixes since v1.5.3 -
configuration file and database compatibility is preserved... |
|
Read more...
|
|
2010-02-02 - Kamailio v1.4.5 is out - a
minor release of the branch 1.4, including fixes since v1.4.4 - configuration file
and database compatibility is preserved... |
|
Read more...
|
|
2010-01-29 - presentation and social networking meeting at Fosdem 2010, Feb 6-7, Brussels |
|
Read more...
|
|
2010-01-18 - Siremis v1.0.0 is out - web management interface for Kamailio (OpenSER) 3.0.0 |
|
Read more...
|
|
|