_
Home
Features
News
Download
Roadmap
Management
Contributions
OpenSER License
Links
Contact Us
Related
EVENTS
OpenSER Summit 2008
OpenSER Pavilion 2008
VoIP Events
Past Events
SUPPORT
Documentation
Install
Mailing lists
Dokuwiki
Forum
VoIP Info
IRC Channel
DEVELOPMENT
SVN
Tracker
Project Page
Doxygen

OpenSER v1.1.x Release Notes Print

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
    1. direction detection implemented it generate consistent logs disregarding if the BYE is generated by caller or callee.
    2. enhancent accounting for missed calls by controlling thelogging at branch and call level.
    3. more accurate per branch logging - winning branch (instead of last one) is accounted at call level.
    4. 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
  1. 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.
  2. 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
    1. NAT traversal support (via received) for the lookup CPL node.
    2. added per branch nat flags support for lookup CPL node.
    3. multi domain support added.
  • dispatcher
    1. 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
    1. new functions (or new vresions of them): enum_fquery(), is_from_user_e164(), is_from_user_enum()
  • group
    1. regular expression based group matching added
  • lcr
    1. optional group id parameter is accepted by load_gws(), from_gw(), and to_gw() functions.
    2. DB caching support adde.
    3. new FROM regexp matching.
    4. dynamic strip URI before forward.
  • nathelper
    1. IPv6 compliant.
    2. prope handling of multiple stream handling in sequential requests.
    3. support for changing session-level SDP connection (c=) IP when media-description also includes connection information.
    4. fix_nated_sdp() may take one more param to force a specific IP instead of the signalling IP.
    5. 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)
    6. 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
    1. multi-domain support added
  • permissions
    1. added "none" protocol option that never matches and thus disables the peer
  • registrar
    1. module may set for TCP connection a custom lifetime for keeping it open as long as the registered contact is valid
    2. Path support according to RFC 3327 - support in registrar for loadbalancing using Path-HF with NAT-Support applied
    3. request with failed checks are negativly replied with err headers for hints
    4. method filtering performed by lookup()

  • rr
    1. obsolete function strict_route() removed
    2. add_rr_param may be called from BRANCH and FAILURE route
    3. record_route() may take a parameter containing RR params
    4. "lr" param is added as first param to speed up the loose_routing processing
    5. record_route / add_rr_param / record_route_preset accept pseudo-variables in params
    6. extra checking to void double record routing via record_route and record_route_preset
    7. 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.
    8. add_username alters also the behaviour of record_route_preset()
  • sl
    1. callbacks added - the only event is sending a stateless reply
    2. statistics support added
  • textops
    1. new function has_body([mime])
    2. new set of function to work on the body of the message: search_body(), search_append_body(), replace_body(), replace_body_all(), subst_body()
    3. function is_method() can be called from BRANCH_ROUTE.
  • tm
    1. fixed branch picking algorithm - if cancelled, but not 487 replied received, fallback and use classical algorithm.
    2. 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
    3. 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
    4. 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.
    5. new TM callbacks added:
      • TMCB_TRANS_DELETED - called when the transaction is deleted ;
      • TMCB_REQUEST_BUILT - called just before sending out a request.
    6. "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.
    7. module exports $T_branch_idx pseudo-variable refering to the index of the branch for which the branch_route[] is executed
    8. advanced TM monitoring
    9. t_relay*() returns 1 instead of 0 when forwarding ACK
    10. 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
    1. default value for "from_restore_mode" switch to auto
    2. new module parameter "from_passwd" - used to encrypt the RR parameter which contains the original FROM URI
    3. 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.
    4. when performing UAC authentication, look in predefined AVPs for credentials before using the static set credentials (via modparam)
  • uri_db
    1. "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
    1. 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.
    2. 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
    3. 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.
    4. 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
    5. contact maching algorithm aligned to the RFC 3261 specs (added extra checking based on callid and cseq)
    6. configurable multi-algorithm for contact matching:
      • contact only based (as in RFC)
      • contac and callid based
    7. supported methods are saved into usrloc
    8. saved socket info contains now also the protocol. The socket is saved as: proto:ip:port
Release notes from previous versions:
PayPal
Support This Project
FLASHNEWS

2008-05-06
- OPENSER Devel Guide available online ... 

Read more...
25 April 2008
First OpenSER teaching book  -"Building Telephony Systems with OpenSER"- is now available....
Read more...

2008-04-24
- new module available that allows direct connection to Oracle databases ...

Read more...

2008-04-07

- Post Facts from OpenSER Summit and Pavilion...

Read more...

2008-04-02
- social networking events during April to June 2008...

Read more...

2008-03-31
- OpenSER in the top of Open Source VoIP and reported to route billions of minutes per month... 

Read more...

 2008-03-11

Version 1.3.1 of OpenSER has been released.....

Read more...

 

.:: (C) 2005-2007 OpenSER. org::.