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

New Features in OpenSER v1.0.1 Print

February 27, 2006

OpenSER v1.0.1 is an update of v1.0.0 which includes the fixes for the issues discovered in this branch since v1.0.0 release. It is recommended to update any v1.0.0 to v1.0.1.

This release does not include any major changes in the database structure or in configuration script. The configurations scripts used for v1.0.0 are fully compatible with v1.0.1.

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.

There are mainly two categories of packages:
- name starting with 'openser-' - it is the classic OpenSER package, without TLS support
- name starting with 'openser-tls-' - it is the OpenSER package with TLS support (requires OpenSSL libraries)
- NOTE: the two types of packages are in conflict, all packages you install must be from the same category, you must not mix them.

The documentation for modules has been deployed online in html format:

OpenSER v1.0.0

October 28, 2005

After several months of development and about two months of testing, the 1.0.0 release is out. The part from RFC which is mandatory and was not included in previous releases, TLS, is now fully integrated into OpenSER.

Another big step forward is the presence of pseudo-variables in core. This enabled consistent and flexible parameter values in scripts for modules like acc, avpops, group, textops, uac, xlog...

Other major enhancements are string (prefix, suffix, substitution...) and integer (arithmetic and bitwise) operations with avpops; easier and coherent scripting statements (exit, return, drop, switch). For more details on what is new, please consult the list below.

To conclude the introduction, a lot of new stuff has been done, and much more is to be done.

We will 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

Important changes

- 'break' has been replaced by 'return'. You have to replace all 'break' statements in your script with 'return'. For more info, see the "OpenSER Core Cookbook"
http://openser.org/dokuwiki/doku.php?id=openser_core_cookbook

- the marker for xlog specifiers '%' has been replaced by '$', the specifiers being now pseudo-variables

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.

There are mainly two categories of packages:
- name starting with 'openser-' - it is the classic OpenSER package, without TLS support
- name starting with 'openser-tls-' - it is the OpenSER package with TLS support (requires OpenSSL libraries)
- NOTE: the two types of packages are in conflict, all packages you install must be from the same category, you must not mix them.

The documentation for modules has been deployed online in html format:

What is new?

New in OpenSER core

[*] TLS support

- TLS support is included in OpenSER

- enables secure server-to-server and client-to-server communications

- OpenSER TLS tutorial (how to compile, install, configure and use TLS support):

http://openser.org/docs/tls.html

[*] pseudo-variables support

- all xlog specifiers were moved in core and many new other added as pseudo-variables

- all modules and the core can have access to pseudo-variables (acc, avpops, textops, tm, uac, xlog already use them)

- the marker character for pseudo-variables is now '$', more common for such case (bash, perl) -- it was '%' in old xlog versions

- the list with pseudo-variables: http://openser.org/docs/pseudo-variables.html

- each new pseudo-variable is visible in all modules under same name

[*] parameter to set modules' directory

- mpath can be used to specify the base path for modules

- the config file is easier to maintain now for multiple instances on same system

 

Example:

mpath="/usr/local/openser-test/lib/openser/modules"

loadmodule "xlog.so"

loadmodule "textops.so"

[*] 'exit' stops the execution of the configuration file immediately

- see: http://www.openser.org/dokuwiki/doku.php?id=openser_core_cookbook#exit

[*] 'return' function can be used to return a value from a route block

- the value can be checked via 'retcode'

- see: http://www.openser.org/dokuwiki/doku.php?id=openser_core_cookbook

[*] variable to check the returned code by last invoked function

- 'retcode' can be used to test returned code by a function or a route block

- see: http://www.openser.org/dokuwiki/doku.php?id=openser_core_cookbook#retcode

[*] switch statement to check last returned code

- very easy and intuitive way to check and handle multiple values for returned code

- see: http://www.openser.org/dokuwiki/doku.php?id=openser_core_cookbook#switch

[*] 'break' was replaced by 'return'

- 'break' is now valid only in 'switch' statements - more intuitive, having the meaning from shell scripts

[*] add id for REGISTER and other common-used methods

- many standard SIP methods have now an internal integer id to allow faster comparison (e.g., is_method() from textops module)

[*] RFC3581 UAC side implementation

- add_local_rport() - adds 'rport' parameter to Via header generated by server

[*] 'branch_route[]' introduced in configuration script

- this route will be executed for each branch of a request (parallel or serial forking)

[*] possibility to access 'dst_uri'

- 'dst_uri' is the address of next hop, if other than R-URI address. It has the meaning of outbound proxy address. It is usually set after Route-header-based routing (loose_route()) or user location lookup for clients behind NAT

- new functions to access and set the 'dst_uri' - setdsturi(), resetdsturi(), isdsturiset()

[*] various resolver/dns related options can now be set from config

- see: http://www.openser.org/dokuwiki/doku.php?id=openser_core_cookbook#switch

[*] support for per-branch flags

- each branch can have private flags, enabling the possibility to proxy the media stream only when the answered branch is a contact behind NAT

[*] new global parameter 'log_name'

- this allow nicer logs by setting the id to be printed in syslog - the value must be a string and has effect only when openser runs in daemon mode (fork=yes), after demonize. Default value is argv[0].

[*] "drop" statement has special meaning in some route types

- by default it's equivalent to "exit":

- in BRANCH ROUTE - the request branch is discarded (not fwd);

- in ONREPLY ROUTE - if provisional reply (<200), it will be discarded (not fwd, not stored, but only timers updated)

[*] new command line parameter (-C)

- similar to (-c) but also checks if module functions may or may be not called from a script route (based on route type); all route inclusions are followed


New in OpenSER modules

acc module
[*] call leg accounting support

- proper accounting information can be stored when the server deals with multiple redirects

[*] accounting of failed transactions based on flags

- failed transactions can be stored based on specific flag

[*] usage of pseudo-variables format in parameters

- any pseudo-variable can be now stored as adjacent information

[*] the module is compiled by default with database support

avp_radius module
[*] enhancement to support loading AVPs having integer ID or value

avpops module
[*] formatted printing with pseudo-variables support - avp_printf()

- this allow string concatenation of avps, strings and pseudo-variables

[*] perl/sed-like substitution on AVP with string value - avp_subst()

- this allow substitution or extraction of parts from an AVP

[*] support for arithmetic operations with AVPs

- integer operations with avps can be done (add, sub, mul, div, mod)

[*] support for bit-wise operations with AVPs

- bitwise operations can be done with AVPs (and, or, xor, not)

- bitwise checks can be performed via avp_check (and, or, xor)

[*] more operators for avp_check()

- new operators: ne, le, ge + bitwise operators can be used

[*] cast function with avp_copy()

- convert the value from int to str and vice-versa

[*] uri parameter for db-related function can be taken from an AVP

- along with R-URI, From and To, the URI can be now loaded from an AVP

[*] new function to check if an AVP exists -- is_avp_set()

- useful function to test which AVP exists when loading all AVPs for an user

[*] hexadecimal format for integer values

- avp_write(), avp_check() and avp_op() allow hexa integer values as parameter - to ease bitwise operation handling

[*] avp_write() and avp_pushto() can access and set the value of 'dst_uri' field (outbound proxy address)
[*] avp_write() allow $hdr(name) to be coherent with avp_printf()

- old format $hdr[name] is still valid

dispatcher module
[*] possibility to change host:port in r-uri (ds_select_domain())
[*] round robin distribution per process (alg=4)

group module
[*] uri parameter for is_user_in() can be taken from an AVP

lcr module
[*] added support for gateway prefixes

maxfwd module
[*] MAX-FORWARDS cannot exceed 256 (as per RFC3261)

nathelper module
[*] possibility to replace origin IP in SDP (o= line)

- SIP devices which check o= line can be now used with nathelper

[*] nat ping with OPTIONS requests (stateless)

- possibility to interwork with NAT boxes which close the pinhole when no traffic goes from behind the nat

- made stateless to reduce memory consumption

[*] possibility to set nat pinging method per user

- you can set per user what type of natping to send (four bytes or OPTIONS)

postgres module
[*] transaction rollback for failed queries

- postgres module encapsulates every query into transaction. If the query failed, the transaction was not finished, thus a new database connection was created on the next query

rr module
[*] enhancements which opens the road for a dialog awareness support:

- RR API - exported functions:
** add_rr_param()
** check_route_param()
** is_direction()
** get_route_param()
** register_rrcb()

[*] added callbacks - can be registered callbacks to be executed when local Route is found and processed.

textops module
[*] pseudo-variables support in subst(), subst_uri() and subst_user()

- parts of sip message can be substituted by dynamic values

[*] function to check the request's method using ID

- faster comparison of request/reply's method

- you can test the method against a set of values (is_method("ACK|BYE"))

tm module
[*] usage of pseudo-variables format in parameters

- any pseudo-variable can be sent via fifo or unix socket to external applications

[*] support for delayed CANCEL

- canceled transactions will be marked to be able to cancel delayed replies

[*] new function t_check_trans()

- checks if the request belongs to a transaction

[*] new function t_was_canceled()

- returns true if the transaction was canceled from the UAC side

- request forwarding functions return false if the transaction was already canceled

[*] pending callbacks

- support to register TM callbacks prior the transaction is created

[*] t_flush_flags() - flush to Transaction (UAS side) only the global flags

uac module
[*] annonymization finalized

- full ability to replace and restore the From and To headers in subsequent requests

uac_redirect module
[*] - special module to handle redirect replies on server

- redirects via 3xx replies can be handled on server

- address filters can be set to allow/deny redirects

xlog module
[*] use pseudo-variables in xdb() and xlog()
[*] if the first parameter of xlog() is ommited, the message is printed to L_ERR level


additional tools
[*] postgressql.sh - script to create Postgres database structure
[*] sc.dbtext - script to manage dbtext database structure


The ChangeLog file keeps track of all important changes:
FLASHNEWS

2009-06-22
- Kamailio (OpenSER) and SIP-Router presence at LinuxTag 2009

Read more...

2009-05-26
- development mailing list of Kamailio (OpenSER) and SIP Express Router (SER) are unified within SIP Router project

Read more...

2009-05-18
- SIP Router Users Mailing Lists

Read more...

2009-05-14
- SIP Router Project Ready for Testing

Read more...

2009-05-14
- Online Documentation of SIP Router Project

Read more...

2009-05-05
- Amoocon 2009 SIP-Router.org presentation available online...

Read more...

2009-04-29
- Kamailio v1.5.1 is out - a minor release of the branch 1.5, including fixes since v1.5.0 - configuration file and database compatibility is preserved...

Read more...

 


© .::Kamailio Project::.