# $Id: ChangeLog 1827 2007-03-12 15:22:53Z bogdan_iancu $

===================== 2007-03-12 OpenSER v1.2.0 released ======================

===================== Changes since release 1.1.0 ============================

* 2007-03-10 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- nat_flag historty updated in FAQ. Closes doc item 1655531.
- fixed bug in unsetting the last found reply.
- fixed compile error on solaris

* 2007-03-09 Daniel-Constantin Mierla <daniel@voice-system.ro>
- install openser perl packages

* 2007-03-09 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed several warnings regarding signed/unsigned ops, incomplet 
  initializers for static data.
-Based on a patch send by Eliot Gable <egable@broadvox.net> for increasing
  the level of warning messages

* 2007-03-09 Daniel-Constantin Mierla <daniel@voice-system.ro>
- improved sl_send_reply() fixup
- set null value in usrloc if no more memory in new_ulrecord
- support to print execution time for pieces of config file via set_time_stamp()/diff_time_stamp() -- these are not portable. were tested for intel/amd and they do not compile by default, but can be used to do performance measurements
- this feature can be compiled via 'make tinfo=yes"
- hooks in usrloc for measurement of loading records from database at startup

* 2007-03-09 Daniel-Constantin Mierla <daniel@voice-system.ro>
- play warn if fail over functions are used but required avp parameters are not set (reported by Helge Waastad)

* 2007-03-09 Bastian Friedrich <bastian.friedrich@collax.com>
- Adding environment variables to Makefile to support cross compilation

* 2007-03-08 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- better install script for TLS etc

* 2007-03-08 Anca Vamanu <anca@voice-system.ro>
- changed the unique index for active_watchers table to to_tag
	reported by  Aron Rosenberg; closes 1675964

* 2007-03-07 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- the TLS tools for building rootCA and user certificates are now
  included in openserctl:

* 2007-03-07 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed MIB installation when custom install prefix is used.
  Patch providede by Ovidiu Sas. Closes BUG 1675976

* 2007-03-07 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- if nat ping is enabled (only for natted contacts), be sure the nat bflag
  is set in usrloc module. You cannot ping only natted contacts if you cannot
  identify them!
  Reported by Ovidiu Sas.

* 2007-03-07 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- bug fixed in identfing the contact record in DB. username+domain+contact is
  not sufficient anymore; callid must be also used for identifing the contact
  at update or delete time.
- callid is not updated at update time since it is a constanct value for the
  contact record

* 2007-03-07 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- unique key (username,domain,contact) downgraded to index in 
  location/aliases tables.
  Reported by Ovidiu Sas.

* 2007-03-07 Bastian Friedrich <bastian.friedrich@collax.com>
- Creating new Perl package OpenSER::AVP:: with add, get and destroy
methods. Removing OpenSER::Message::addAVP - AVPs are
message-independent.

* 2007-03-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed module destroy - free the lock only if previously allocated.
  Closes BUG 1674501

* 2007-03-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed bug when the ssl library you compile against uses kerberos. Kerberos
  implementaion is faulty when comes to memory management as it always use the
  libc malloc/free (for the kerberos context). And the SSL structure is kept in
  shm memory and moved across processes, so the link from SSL to krb_ctx will
  become broken (point into private memory of another process).
- Thanks to Paulo Angonese <angonese@via-rs.net> and ohad.levy@infineon.com
  for report and help in debugging this.


* 2007-03-06 Daniel-Constantin Mierla <daniel@voice-system.ro>
- use full path to svnversion and test if it is executable

* 2007-03-06 Daniel-Constantin Mierla <daniel@voice-system.ro>
- rpid_avp parameter value must be full AVP spec name
- load credentials must contain full AVP spec names
- aaa_avps.h moved to auth_db module, as it is the only one using it (auth.h does not need it)

* 2007-03-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed backward compatibility with RFC 2543 - if no branch is found the
  existent VIA stack, when doing stateless fwd, use a dummy branch value ("0")

  Reported by Gaurav Kulshreshtha <gaurav@sunrocket.com>

* 2007-03-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- major fixup by adding a state-machine (protected by lock) for dialog
  state transitions.
  This eliminates the races between concurent events (multiple 200 OK, 200 OK 
  and negative reply, 200 OK and ACK, BYE and timeout, etc).
  Also the races from the timer list ops were eliminated.

* 2007-03-05 Bastian Friedrich <bastian.friedrich@collax.com>
- Fixing getFullHeader function. Should work in reply context now, too.
- Adding the requested "AddAVP" function.

* 2007-03-05 Daniel-Constantin Mierla <daniel@voice-system.ro>
- AVP parameters of registrar module take full AVP name spec as value

* 2007-03-05 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed t_uac_dlg MI implementation; former forth xmlrpc reply field was not 
  added (this contains hdrs+body from SIP reply).
  Reported by Juha Heinanen <jh@tutpro.com

* 2007-03-05 Daniel-Constantin Mierla <daniel@voice-system.ro>
- fr_timer_avp and fr_inv_timer_avp are default NULL (you have to set the value for them if you want dynamic timer values)

* 2007-03-04 Daniel-Constantin Mierla <daniel@voice-system.ro>
- dst_avp_id, grp_avp_id, cnt_avp_id renamed in dst_Avp, grp_avp, cnt_avp
- the parameters take now full AVP spec name as value

* 2007-03-03 Daniel-Constantin Mierla <daniel@voice-system.ro>
- more consistency of avps parameters
- timer avp parameters must be given in full PV format $avp(name)

* 2007-03-02 Anca Vamanu <anca@voice-system.ro>
- changed table definition for xcap_table- xcap column type changed to text

* 2007-03-02 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- added a switch to openserctl / openserctlrc / openserctl.sqlbase to
allow plaintext passwords to be omitted from the database (when using
auth_db module with precalculated HA1, instead of plaintext passwd)
- Contributed by Hans Hoppe. Closes 1671713.

* 2007-03-02 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed proto check for SIPS URIs.
  Credits go to Andrew T Gin <atg19@student.canterbury.ac.nz

* 2007-03-02 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- if the dialog was not found, all related PVs return NULL.
  Based on an idea of Andy Pyles. Closes patch 1669730 and bug 1671435.

* 2007-03-02 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- timeout value increased (how long the process will wait for the reply)

* 2007-03-02 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed xmlrpc implementation to support asyncronous replies (required by 
  t_uac_dlg MI function).
- mi support extended to use also shm memory - needed to move mi trees
  between process.
  Closes 1622537.

* 2007-03-02 Daniel-Constantin Mierla <daniel@voice-system.ro>
- include <limits.h> in flags.h to get the declaration of CHAR_BIT
- custome logging system in sst migrated to default one -- it was not compiling on BSD 4.3/gcc 2.95 -- in next release a similar logging system to be included

* 2007-03-01 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed memory deallocation at shutdown

* 2007-02-28 Jesus Rodriguez <jesusr@voztele.com>
- Update FreeBSD port files. This will not work for trunk
  but upgrade to 1.2 will be easier.

* 2007-02-28 Daniel-Constantin Mierla <daniel@voice-system.ro>
- better management of signed/unsigned numbers in config file to avoid potential mistakes giving negative values to some parameters

* 2007-02-28 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed TYPO when adding users
- credits go to Helmut Kuper <helmut.kuper@ewetel.de>

* 2007-02-28 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- "reinstall" replaced with "migration" - this eliminates any downtime during
  DB upgrade. Also more saver as the original data is not deleted at all.
- added DB migration from 1.1 to 1.2 format (table formats and content 
  translation)

* 2007-02-28 Daniel-Constantin Mierla <daniel@voice-system.ro>
- added config file to generate doxygen development documentation
- submitted by Norman Brandinger
- use: doxygen doc/doxygen/openser-doxygen to get the HTML output in doc/

* 2007-02-27 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- use generic (platform independent) install command

* 2007-02-27 Jeffrey Magder <jmagder@somanetworks.com>
- This changeset modifies the SNMPStats modules make system.  Specifically, 
  'make install' will now copy the SNMPStats MIBs (located in 
  ./modules/snmpstats/mibs) to a system dependent location.  Please see
  the SNMPStats Makefile for details.  
    Thanks go to Ovidiu Sas for another great contribution.

* 2007-02-27 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- removed the annoying warning "I won't send a reply for ACK" from 
  sl_send_reply().
  Instead of complicating the script just to avoid this warning, better remove
  it (as the outcome is the same).

* 2007-02-27 Daniel-Constantin Mierla <daniel@voice-system.ro>
- PVs are no sub-sections instead of items in the list to be indexed easily

* 2007-02-27 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- sip_warning set by default "Off"- it cause problems because of the limited
  buffer used for building the header.
  Also it is a security risk as it provides inside server information 
  (interfaces, pids, etc) and its only usage is for debugging only.

* 2007-02-27 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- removed the annoying "are you sure you want to proceed?" prompt from 
 "openserctl ul show".
- as a contra measure, the "ul_dump" MI command can take the "brief" parameter;
  this results in a shorted ul dump - only the registered AORs are dumped
  with no information about contacts and so.
  You ca do this :
  	./openserctl ul show --brief   # (shortcut)
	./openserctl fifo ul_dump brief

* 2007-02-27 Daniel-Constantin Mierla <daniel@voice-system.ro>
- collapsed same functions with optional parameters in single entry (helps in indexing the functions, reported by Edson)

* 2007-02-27 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- variables required during installation are exported to be available in
  sub-make files (needed by module_install_custom).
  Reported by Ovidiu Sas

* 2007-02-27 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- internal variable CPU replaced with CPU_TYPE to avoid overlapping with system
env. variables on some OSs.

* 2007-02-27 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed "openserctl add" - if serweb tables are not installed, do not
  insted the libphp column in subscriber table.
  For this new switch was added "HAS_SERWEB" which by default is "no". You
  need to set it to "yes" to add the libphp column also.
  Closes 1656081.

* 2007-02-26 Bastian Friedrich <bastian.friedrich@collax.com>
- Fixing segfault when requesting empty URI struct members

* 2007-02-26 Anca Vamanu <anca@voice-system.ro>
- fixed adding event id in Notify (applied patch sent by Benny Prijono )

* 2007-02-26 Daniel-Constantin Mierla <daniel@voice-system.ro>
- moved pseudo-variables as section to get indexed in dokuwiki

* 2007-02-26 Bastian Friedrich <bastian.friedrich@collax.com>
- Enforcing perl file initialization to enable global variables to be
initialized

* 2007-02-24 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
Fixed consistency problem with the NAT flag.
- applied patch from Marcus Hunger - get NAT flag from branch flags and not
from the internal usrloc flags in "get_all_ucontacts".
- moved the flag for marking SIP pinging from message flag to branch flag (to
be consistent with the nat flag, also branch flag)
- SIP ping flag moved from the registrar to nathelper module. You can use any
branch flag to mark the contact for SIP ping as all branch flags are saved
and restored by usrloc. Nathelper module just needs to know the flag index
to identify the contacts.

* 2007-02-22 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
More cleanup applied :
- Delete the crc32file function from crc.c.
- Remove the "/bin/sh" shebang in the sourced scripts in the ./scripts
directory. 
- Remove the now unnecessary patch in the debian packaging directories.
Credits go to Henning Westerholt <henning.westerholt@1und1.de

* 2007-02-22 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- insert_path_as_route() function moved from TM to core to be used also
  for stateless processing.
- stateless reply will also include the PATH array (as Route hdrs) if defined
  Closes BUG 1653955.

* 2007-02-22 Jeffrey Magder <jmagder@somanetworks.com>
- patch to assist in cross-compilation.  Thanks go to Ovidiu Sas (osas) for
the patch.

* 2007-02-22 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- removed the "serweb" section from textdb as serweb does not support dbtext
- implemented the "extra" section
- dbtext.sh renamed to textdb.sh to syncronize with the rest of the scripts

* 2007-02-21 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed provisioning of LCR related tables (some fields changed their type).
  Patch provided by Ovidiu Sas
  Closes BUG 1664846.

* 2007-02-21 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- add ".dirs" file in the debian directories to add "/var/run/openser" to the
 packaging system (required by openser.init for the pid file
 Credits go to Henning Westerholt <henning.westerholt@1und1.de>

* 2007-02-21 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- several fixes in transaction lookup/handling:
  1) avoid as much as possible to lookup for transaction (try to remember
  the last result) - this results in a great speedup in scripts using
  t_check_trans();
  2) fix handling of local ACKs in t_relay() where T already found
  3) fix retransmission handling in t_check_tras() - local ACKs uses same
  transaction as INVITE

* 2007-02-21 Bastian Friedrich <bastian.friedrich@collax.com>
- Forbid module functions that include fixups. An "unsafe" parameter is available to allow them again, this will stay undocumented.
- The fix prevents memory leaks that are created by repeatedly calling fixup functions.
- Documentation updated.

* 2007-02-21 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- changed the plocy regarding errors: instead of ignoring the error (at any
  time), brek out when the first error occurs.
  Credits go to Henning Westerholt <henning.westerholt@1und1.de>.
  Closes BUG 1658796.

* 2007-02-21 Daniel-Constantin Mierla <daniel@voice-system.ro>
- add date header (patch by Aron Rosenberg)
- closes (1664766)

* 2007-02-21 Juha Heinanen <jh@tutpro.com>
- IP addresses are now kept in dotted string format in gw table.
- LCR mudule should now work also on MSB hosts.

* 2007-02-20 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- generic support for module install: modules can define in the local
  makefile the "install_module_custom" rule for installing custom
  (module specific) stuff during openser installation.

* 2007-02-20 Anca Vamanu <anca@voice-system.ro>
-fixed a bug in updating presentity
-added the posibility to subscribe with no time limit- by setting the
expires field to a value< 0; the modules does periodical updates until
a request for a subscription with expires= 0 is received
- fixed a bug in building callback parameter for notify

* 2007-02-20 Elias Baixas <elias.baixas@voztele.com>
Removed all references to fifo_pid in seas, that prevented seas module to be
loaded (fifo_pid disappeared when mi_fifo module was added to openser).

* 2007-02-19 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed enabling coredump when daemonizing or setting uid/gid. On linux,
  this operations disable the core dump, so we need to re-trigger it.
  This can be conrtoled via the core param "disable_core_dump".

  Patch provided by Henning Westerholt <henning.westerholt@1und1.de>.

* 2007-02-19 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- bug fixed in MI function "dlg_list" when printing the TO tag.

* 2007-02-19 Daniel-Constantin Mierla <daniel@voice-system.ro>
- parameter of m_store() redesined to be more meaningful. Instead of using integer values, the parameter can be given via pseudo-variables
- same parameter can be used for m_dump() and in speedial module to have coherence
- userid_avp removed (is covered by new stype of m_store()/m_dump() parameters)


* 2007-02-19 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed PATH header presence in CANCEL and ACK requests.
  Patch providede by Marcus Hunger. Closes 1659920.- fixed PATH header presence in CANCEL and ACK requests.
  Patch providede by Marcus Hunger.

* 2007-02-19 Bastian Friedrich <bastian.friedrich@collax.com>
- Removing unnecessary logs; adding DESTROY handler to prevent perl warnings

* 2007-02-19 Anca Vamanu <anca@voice-system.ro>
- corrected formatting in a reply message (reported by Helge Waastad)

* 2007-02-16 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- small timer bug fixed
- fixed warnings in EXTRA_DEBUG

* 2007-02-16 Jeffrey Magder <jmagder@somanetworks.com>
This changeset moves all OID registrations from the experimental branch to
OpenSER's IANA assigned enterprise branch.  This means that all statistics now
fall under 1.3.6.1.4.1.27483 instead of 1.3.6.1.3.6736737.

* 2007-02-16 Daniel-Constantin Mierla <daniel@voice-system.ro>
- if any of left of right operand is null in comparison, return false, don't print error message (reported by Juha Heinanen)
- because NULL is different in avs, SIP msg PV, and script variables, you cannot do $avp(i:1)=null;$var(x)=null; and expect true in comparison -- ($avp(i:1)==$var(x)) is false all the time.

* 2007-02-16 Daniel-Constantin Mierla <daniel@voice-system.ro>
- handling error case for escape functions (reported by Dan Cristian Bogos)

* 2007-02-16 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed bugs in t_local_replied() . In some particular case, neither "all",
  nor "last" behaved as expected, detecting as local more cases than actually
  it should.
- new value for t_local_replied() param (along "all" and "last") - "branch" :
  if all replies from the branch were local.

* 2007-02-16 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- bug fixed: if DNS-based failover hits at transaction layer and no
  other branches were sent out, be sure to close the transacton (failure route
  and/or fwd reply)

* 2007-02-16 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- proper handling of retransmissions:
- remove some obsolete TM script functions: t_lookup_request(), t_retransmit_reply() 

* 2007-02-15 Daniel-Constantin Mierla <daniel@voice-system.ro>
- free alocated memory when binding DB. Not a really a leak now since it is done only at startup, but better free than unused and avoid future turning in leak (reported by Henning Westerholt)
- closes 1660410

* 2007-02-15 Daniel-Constantin Mierla <daniel@voice-system.ro>
- use -n in tail for last line (reported by Ovidiu Sas, part of #1656081)

* 2007-02-15 Daniel-Constantin Mierla <daniel@voice-system.ro>
- moved initialization of variable after declaration to comply with C
- documentation alignment to common format (reported by Edson)

* 2007-02-14 Anca Vamanu <anca@voice-system.ro>
- corrected an error while building the str for extra headers
- removed some redundant hash code calculation
- corrected some function definitions
- corrected the xcap_xml.xcap definition

* 2007-02-14 Daniel-Constantin Mierla <daniel@voice-system.ro>
- correct order filling of avp parameters for exec_avp (reported by vabdulla)
- closes 1657899

* 2007-02-14 Anca Vamanu <anca@voice-system.ro>
- added a module parameter: server_address - used for putting the
contact of the presence server in replies and Notify messages.
- added sending a Notify with no body to watcher if the presentity does not answer with a 2XX reply to Notify with winfo

* 2007-02-14 Daniel-Constantin Mierla <daniel@voice-system.ro>
- renamed column 'user' to 'username' in imc tables
- added 'list' command to get members of a room
- the name of tables storing rooms and members can be set via module parameters
- closes 1659192

* 2007-02-14 Anca Vamanu <anca@voice-system.ro>
- improved the mecanism of sending Notify with presence on callback
  for Notify with winfo

* 2007-02-14 Cesc Santasusana <cesc.santa@gmail.com>
Adding equivalent of mysqldb.sh for DBTEXT.
Initial commit with limited capabilities: create, presence, drop, reinit.
So, basic tables and presence tables can be created.


* 2007-02-14 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed include lib hdr files - original error was triggered by a typo in the
  makefile
  Reported by Helge Waastad <helge@smartnet.no>

* 2007-02-14 Anca Vamanu <anca@voice-system.ro>
- corrected xcap_xml table definition(reported by Helge Waastad <helge@smartnet.no>)

* 2007-02-13 Juha Heinanen <jh@tutpro.com>
- Added missing strip count to lcr_dump.
- ip_addr2a is now used to convert gw IP address to ASCII.

* 2007-02-13 Klaus Darilion <klaus.mailinglists@pernau.at>
- fixed SQL definition: postgresql does not allow specifying
  the resolution of int:
  mysql:       int(11)
  postgresql:  int

* 2007-02-13 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed bug in TCP init - if more than 100 tcp children were configured, the
  array of tcp children was overflowed as it was statically allocated with a
  size of 100 entries and there was no check on the configured TCP children.
  Closes bug 1657724.

* 2007-02-13 Anca Vamanu <anca@voice-system.ro>
- fixed sending Notify upon Subscription refresh
        reported by:  Kobi Eshun ; closes  1637284
- added null verification for some variables in function msg_active_watchers_clean
        reported by: Cesc
- applied the patches for active_watchers_table sql script in README and presence.sql
        sent by:  Aron Rosenberg;  closes 1658305
- changed the sql script for presence tables according to the suggestions
 of Alex for adapting the tables to Oracle database and dbtext
	closes 1652302

* 2007-02-13 Daniel-Constantin Mierla <daniel@voice-system.ro>
- fixed checking with null-value PV
- 'null' keyword introduced

* 2007-02-13 Klaus Darilion <klaus.mailinglists@pernau.at>
- fix compilation bug (introduced by $SYSBASE patches)

* 2007-02-13 Daniel-Constantin Mierla <daniel@voice-system.ro>
- diversion example moved out of exported functions chapter
- compacted the functions names and parameters to avoid multiple names on same line (hard to generate index)

* 2007-02-13 Juha Heinanen <jh@tutpro.com>
* Replaced sprintf and scanf with more efficient calls.
* Added more checks on strip count.

* 2007-02-12 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- use $(SYSBASE) instead of /usr as it allows to switch to another root
  directory for cross compiling purposes
  Reported by Ovidiu Sas.
  Closes bug 1653539.

* 2007-02-12 Daniel-Constantin Mierla <daniel@voice-system.ro>
- PV exported by modules are registered at loadmodule event to be accessible in script (reported by Norman Brandiger)
- added user escape/unescape trasnformation (credits to Juha Heinanen); closes 1652269

* 2007-02-12 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- usleep() replaced with the portable sleep_us (internally defined)

* 2007-02-12 Daniel-Constantin Mierla <daniel@voice-system.ro>
- initialize returned contact to NULL in get_ucontact. In case of not found the function return 1 and the other functions do not check it (credits to Norman Brandiger for reporting and testing)

* 2007-02-12 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed the movment of parameter from pos 1 to pos 2 in fixup function. The
  original approach got broken during the latest changes related to script
  variables.
  Reported by Juha Heinanen <jh@tutpro.com>.
  
* 2007-02-10 Juha Heinanen <jh@tutpro.com>
* Implemented parse_ppi_uri function now when parsed_uri is included in
* to_body.
* P-P-I header URI items now use parse_ppi_uri function.

* 2007-02-10 Juha Heinanen <jh@tutpro.com>
- auth_radius is now using new parse_from_uri and parse_to_uri
  functions.

* 2007-02-09 Daniel-Constantin Mierla <daniel@voice-system.ro>
- check for null values before comparing script variables

* 2007-02-09 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- allowed AVPOPS functions to be used from onreply route

* 2007-02-09 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed AVP handling in onreply route. Based on the new module parameter
  "onreply_avp_mode", the visible avps in reply route will be:
  	0 - only per message avps; no persistency after exiting the route
	1 - transaction avps

* 2007-02-08 Daniel-Constantin Mierla <daniel@voice-system.ro>
- option to enable/disable usage of escape_common() function and fix in computing length of escaped values (reported by Jerome Martin)

* 2007-02-08 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed overlapping of error codes: internal reply code E_BAD_PROTO was
  overlapping RFC3261 Temporarily Unavailable  (480)
- dixed error code gnerated by Blacklist filtering. Instead of using the
  generic send error, custom "473 Filtered destination" is used.

* 2007-02-08 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed displaying scrolling during monitoring - redue the number of listed
  items to fit to a 24 lines screen

* 2007-02-08 Daniel-Constantin Mierla <daniel@voice-system.ro>
- reset parsed_uri_ok when new_uri changes value
- reset parsed_uri_ok for on_missed event

* 2007-02-08 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed tables creation - added 2 new classes of tables to be independently
  created (on init or later):
  	- presence - creates tables required by presence and pua modules
	- extra - creates tables requied by rare used modules (cpl, imc, siptrace,
	    domainpolicy)
  Similar to serweb class, the user will be asked at initial installation if
  he wants to install also these additional clasess of tables. Also he can
  add them later by:
  	mysqldb.sh extra
	mysqldb.sh presence
  Presence part for postgres contributed by Klaus Darilion
  Closes BUG 1637296.

* 2005-02-08 Dan Pascu <dan@ag-projects.com>
- Made environment variable names consistent with the ones used by openserctl

* 2007-02-08 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed atuhentication when qop is set - as qop is not supported, compute the
  response without it becasue several servers may fallback also if the client
  does not support qop.
  Credits go to Thomas Gelf <thomas@gelf.net>

* 2007-02-07 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed the append_branch() logic
  Closes BUG 1653952.

* 2007-02-07 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed restoring of path string after processing branches

* 2005-02-07 Dan Pascu <dan@ag-projects.com>
- Simplified getting the error output to prevent certain shells from chocking
on the command.

* 2007-02-06 Klaus Darilion <klaus.mailinglists@pernau.at>
- added description of return value of avp_db_load ( (c) Daniel )

* 2007-02-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed lcr related queries to use explicitly the columns (for 'insert');
  all column's names set as defines in order to configure them.
  Reported by Ovidiu Sas.
  Closes BUG 1653433.

* 2007-02-06  Di-Shi Sun <di-shi@transnexus.com>
- Fix [1653350] bug reported for Scalable SIP server project in SourceForge.
  Please check OpenSER tracker for details.

* 2007-02-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed compiling with EXTRA_DEBUG.
  Reported by Ovidiu Sas.
  Closes BUG 1653366.

* 2007-02-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed line counting when using unescaped CR in quoted strings.
  Closes 1495359. 

* 2007-02-06 Klaus Darilion <klaus.mailinglists@pernau.at>
- added seperate installation routine for presence related tables
- fix permissions for the SERIAL sequences
- fix some SQL bugs introduced by last commit

* 2007-02-06 Daniel-Constantin Mierla <daniel@voice-system.ro>
- added xcap_table parameter (closes 1645499)
- 'user' column renamed in 'username' (closes 1645475 and relates to 1652302)

* 2007-02-05 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- "dereferencing type-punned pointer will break strict-aliasing rules" warnings
  fixed by doing casts via commonly accepted void*.

* 2007-02-05 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed inconsistent data type used for protocol (int and unsigned short);
  All fields carrying protocol or port moved unsigned short. More safer and
  many issues related to casting eliminated.

* 2007-02-05 Daniel-Constantin Mierla <daniel@voice-system.ro>
- sl api definitions

* 2007-02-05 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- bug fixed: the indexes returned by hash functions are unsigned values.
  There was no immediate problem as there is no hash larger than 2 millions,
  but better to be safer.

* 2007-02-05 Daniel-Constantin Mierla <daniel@voice-system.ro>
- sl module exports internal api to avoid usage of sl_send_reply() function that was exported for script usage in other modules
- all modules using the sl_send_reply() function internally updated to use the new sl api
- should close bug in presenece module #1652300
- load_module is renamed to sr_load_module to avoid conflicts with perl library
- sl_reply() function merged back in sl_send_reply() which can have now PV in parameters (avoid confusions in sl script functions)
- by using the new SL api, presence module does not need totag_avpid anymoer (parameter removed from presence module and from sl module)

* 2007-02-05 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed inital value for module parameters carring flags. They do not have
a default usable value anymore as this is dangerous - may lead to flag
ocverlapping if the users is not aware of the defalut value -> all falg
parameters ae set to a non-usable value to force the user to set them.

* 2007-02-05 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- config.h cleanup:
  - obsolete FIFO definitions removed
  - FIFO related definitions moved into MI_FIFO modules
  - radius related definitions moved into radius.h file

* 2007-02-05 Daniel-Constantin Mierla <daniel@voice-system.ro>
- fixed bug introduced in log() function by the struct action update during script variable development (reported by bsmithurst)
- closes 1652310

* 2007-02-05 Daniel-Constantin Mierla <daniel@voice-system.ro>
- dev version status changed to pre (pre-release)
- devel is closed for 1.2.0

* 2007-02-03 Daniel-Constantin Mierla <daniel@voice-system.ro>
- new transformation {s.int} return int value from a string-represented number

* 2007-02-02 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- timer with resolution under one seconds (microseconds resolution) added.
  Both timers, TIMER and UTIMER uses the same process and TICKS must be
  a multiple of UTICKS.
- modules using the timer ma choose what timer to use (seconds or miroseconds)
  based o the time resolution they need.
- the timer engine, basd on the registered timer handler, may or may not
  start the timer or utimer.
- TM - retransmissions timer- will be first to use the utimer.

* 2007-02-02 Daniel-Constantin Mierla <daniel@voice-system.ro>
- major changes: avp_aliases added as global parameter in config file,
escape/unescape functions moved in core, new concept added: "transformation" - functions that can be applied to the value of a pseudo-variable (PV), without altering its value.

* 2007-02-01 Juha Heinanen <jh@tutpro.com>
- Increased EXPRESSION_LENGTH constant value due to longer that 100 char
  Refer-To URIs generated by some SIP phones.
- Fixed error message.

* 2007-01-31 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed bug in pre-3261 matching of spiralling 200-ACKs.

* 2007-01-31 Daniel-Constantin Mierla <daniel@voice-system.ro>
- proper translation of parsed_uri for To/From headers (reported by Norman Brandiger)

* 2007-01-30 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
IP Blacklist engine added - it can be used for filtering the outgoing requests
based on several criteria. Primary purposes will be to prevent sending
requests to critical IPs (like GWs) due DNS or to avoid sending to destinations
that are known to be unavailable (temporary or permanent).

* 2007-01-30 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed bug in printing the statsu (A or I) in ds_list MI command
  Reported by Helge Waastad <helge@smartnet.no

* 2007-01-30 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed bug in cloning the hostent struct in shm.
  Reported by Norman Brandinger <norm@goes.com> and Helge Waastad
  <helge@smartnet.no>

* 2007-01-29 Daniel-Constantin Mierla <daniel@voice-system.ro>
- removed some extra debug messages
- binary not set to right sign '~'
- all pseudo variables can be used directly in configuration scripts, inside any assignment, switch or comparison expressions

* 2007-01-29 Daniel-Constantin Mierla <daniel@voice-system.ro>
- script variables are introduced having the name format $var(name)

* 2007-01-26 Klaus Darilion <klaus.mailinglists@pernau.at>
- OpenSER init program now outputs error messages if config file check
  fails (contributed by Dan). (copy/paste from packaging/debian)

* 2007-01-25 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- DNS based failover added (according to RFC3263)

* 2007-01-24 Juha Heinanen <jh@tutpro.com>
- Removed db_mode module parameter.

* 2007-01-23 Elena-Ramona Modroiu <ramona@voice-system.ro>
- cache update bug fixed (reported by Francesco Castellano)

* 2007-01-23 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- bug fixed in MI list_dialogs - incorrect value was used for timeout.
  Credits go to Ben Smithurst <ben.smithurst@gradwell.net

* 2007-01-23 Elena-Ramona Modroiu <ramona@voice-system.ro>
- updated prefix2domain() function to allow URI translation regardless of the source domain (reported by Eliott Spencer)
- updated pdt_list MI FIFO Command

* 2007-01-22 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fix dialog confirmation - after the latest changes into the dialog state
  machine, to get confirmed, a dialog needed provisional replies, which is not
  correct.
  Credits go to Ben Smithurst <ben.smithurst@gradwell.net

* 2007-01-22 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- LD_EXTRA_OPTS env variable added to to have the ability to insert custom ld
  options while linking (it is helping a lot while cross compiling).
  Contributed by Ovidiu Sas <osas@somanetworks.com

* 2007-01-19 Daniel-Constantin Mierla <daniel@voice-system.ro>
- fix for dynamic names of pseudo-variables when was an AVP with string name (reported by <jfkavaka@gmail.com>)
- exec_avp() - execute an external application and store the output in AVPs
- avp name list moved to be accessible by exec_avp()
- doc updated

* 2007-01-17 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed bug in delayed cancelling - it is also triggered by internal
  generated cancels and not only for received cancels (as so far).
  A bit od re-design was required in order to smoothly combine the two cases.
  Many thanks to klaus for reporting and helping with testing.

* 2007-01-17 Klaus Darilion <klaus.mailinglists@pernau.at>
- escape values before contructing the SQL statement
  NOTE: It uses the function PQescapeStringConn. Make sure your postgres
  library supports this function before update. E.g. on Debian Sarge you need
  at least postgres-devel and libpq3 version 7.4.7-6sarge3 (version
  7.4.7-6sarge1 does not work).

* 2007-01-17 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- applied patch 1562851 which provide configuration capability for the
   "a=nortpproxy:yes\r\n" string in nathelper.
- the patch was a bit improved to allow also complete disable of this string
  marker.
- very usefull in complex scenarios with chains of RTPproxies.
  Submitted by Jeremie Le Hen.

* 2007-01-16 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- more general support for RADIUS - it is able to compile against both
radiusclient-ng and freeradius-client.
Based on a patch submitted by  Peter Nixon. Closes patch 1631052.

* 2007-01-16 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- config scripts updated to reflect latest changes (mainly FIFO related)

* 2007-01-14 Daniel-Constantin Mierla <daniel@voice-system.ro>
- added function to escape special characters

* 2007-01-12 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- old fifo impl removed

* 2007-01-12 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- all openser tables have an auto-increment id column as primary key
  Closes feature request 1611616.

* 2007-01-12 Julien Blache <jblache@debian.org>
 - Fix sed substitution to properly remove the PATH variable in the openserctl, openser_mysql and openser_postgresql scripts.


* 2007-01-12 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed memory leak in case of failing to send an already constructed buffer
  reply.
  Credits go to Andrew Newton <andy.newton@sunrocket.com>

* 2007-01-11 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- sql table format update to use an id column as PK
- SQL creation script listed in the documentation

* 2007-01-11 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed bug in ACK matching when a call spirals on openser. Reported by Christian Schlatter <cs@unc.edu>

* 2007-01-11 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- new core option "auto_aliases"

* 2007-01-10  Elena-Ramona Modroiu <ramona@voice-system.ro>
- updated documentation; new exported parameters, functions, mi commands and statistics

* 2007-01-09 Daniel-Constantin Mierla <daniel@voice-system.ro>
- introduction of a new route type: error_route

* 2007-01-09 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- re-design of flags in openser to allow a better flexibility and extensibility

* 2007-01-02  Di-Shi Sun <di-shi@transnexus.com>
- Fix ospCopyStrToBuffer bug.
- Add call id length check in ospValidateHeader.

* 2006-12-25 Juha Heinanen <jh@tutpro.com>
- Renamed $pi (P-Preferred-Identity URI) to $pu in order to align naming
  with other To header style pseudo variable.
- Introduced $pn (P-Preferred-Identity Display Name), $pU
  (P-Preferred-Identity URI user), and $pd (P-Preferred-Identity URI
  domain) pseudo variables.
- Removed $pr (privacy) pseudo variable because is_privacy test now exists in textops module.

* 2006-12-22 Elias Baixas <elias.baixas@voztele.com>
- Added SEAS module.

* 2006-12-22 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- socket description includes all info (protocol too). Based on the modified patch from Ovidiu Sas (Soma Networks).
  Closes 1614047.

* 2006-12-13 Bastian Friedrich <bastian.friedrich@collax.com>
- Fixing Makefile to use MOD_CFLAGS while compiling openserxs.c. Needed on x86-64

* 2006-12-21 Daniel-Constantin Mierla <daniel@voice-system.ro>
- added paameter 'trace_table_avp' to be able to specify dinamically via AVP where to record the messages
- 'traced_user_avp' parameter is now string, to allow specifing AVP name as string or integer

* 2006-12-20 Daniel-Constantin Mierla <daniel@voice-system.ro>
- initial version of xmpp API to be used for SIMPLE-XMPP presence translation (not tested yet)

* 2006-12-19 Juha Heinanen <jh@tutpro.com>
- Introduced in textops module is_privacy(privacy_type) script function
  for testing if SIP request has a privacy header that includes the given
  privacy_type as one of its privacy values.

* 2006-12-18 Jeffrey Magder <jmagder@somanetworks.com>
-Initial release of the SNMPStats OpenSER module.

* 2006-12-18 Juha Heinanen <jh@tutpro.com>
- Added pseudo variable $pn for accessing display name of
  P-Preferred-Identity header.

* 2006-12-18 Daniel-Constantin Mierla <daniel@voice-system.ro>
- compare string lengths if strncasecmp returns 0 for '>' and '<' comparisons
- check return code against 0, not all systems return -1 and 1 for              strncasecmp() in case of '<' and '>'
- reported by Juan Carlos Castro y Castro

* 2006-12-18 Juha Heinanen <jh@tutpro.com>
- Added parsing of Privacy header (RFC 3323)
- Added string and integer valued pseudo variable $pr for accessing
  parsed privacy header

* 2006-12-18 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- applied patch from Norman Brandinger <norm@goes.com> to update the reply reason phrase accordingly to http://www.iana.org/assignments/sip-parameters
  Closes 1615280.

* 2006-12-18 Anca Vamanu <anca@voice-system.ro>
- extended primary key for table "xcap_xml" (reported by Mircea Amarascu)

* 2006-12-16 Juha Heinanen <jh@tutpro.com>
- Added parsing of P-Asserted-Identity header (RFC 3325).
- Introduced $ai pseudo variable for accessing P-A-I header URI.

* 2006-12-15 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- applied patch from Ovidiu Sas <osas@somanetworks.com> to fix socket description string on arch with no BE (16-bit atomic element) - like ARM
  Closes 1614192.

* 2006-12-15 Juha Heinanen <jh@tutpro.com>
- Added parsing of P-Preferred-Identity header (RFC 3325).

* 2006-12-15 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- new state added for a dialog : DLG_STATE_CONFIRMED_NA - confirmed by a final reply but no ACK received. Existent state DLG_STATE_CONFIRMED means confirmed and ACK received.

- new pseudo variables available from dialog module:
	DLG_lifetime - duration of the dialog from confirmation up to the
	               current moment
	DLG_status - dialog status

* 2006-12-13 Bastian Friedrich <bastian.friedrich@collax.com>
- Perl 5.8.x is supported; compilation possible with 5.6.x. Earlier versions do not work. #ifdefs in perl.c, doc updates.

* 2006-12-15 Anca Vamanu <anca@voice-system.ro>
- modified agregate_xmls function to correctly treat the case in which the body does not have a person id
( reported by Adrian Georgescu)

* 2006-12-14 Anca Vamanu <anca@voice-system.ro>
- solved a nested sql query, and therefore eliminated memory leak problems
- removed manually parsing cseq numerical value and
- modified xml building functions by using only the api from libxml2,
and therefore eliminated compiling errors in solaris

* 2006-12-13 Bastian Friedrich <bastian.friedrich@collax.com>
- New perl method: getBody()

* 2006-12-12 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- applied patch from Elias Baixas <elias.baixas@voztele.com>; it provides more TM functionality required by an upcoming module that will be a binary interface to an Application Server.
 Mainly it is about:
 	1) new "t_uac_cancel" function to build CANCEL local transactions
	2) more functions are made available via TM API

* 2006-12-12 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- applied patch from Jeffrey Magder <jmagder@somanetworks.com> :
- new statistic varibale is offered by usrloc module: the total number of registered users (to be used in the upcoming SNMP module)

* 2006-12-08 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- asyncronous reply support added in MI interface
- added implementation for async reply in mi_fifo module
- TM t_uac_dlg() uses async replying when available

* 2006-12-09 Bastian Friedrich <bastian.friedrich@collax.com>
- Initial import of Perl module.

* 2006-12-07 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- descriptionof MI command changed - a new field was added to allow passing some flags to MI core like:
	MI_ASYNC_RPL_FLAG - if the reply is send asynchronous
	MI_NO_INPUT_FLAG - if the command does not require any input

* 2006-12-07 Juha Heinanen <jh@tutpro.com>
- Group identifier argument of allow_source_address and
  set_address_group functions can now be either an integer string or
  a pseudo variable.

* 2006-12-07 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- applied patch from Jeffrey Magder <jmagder@somanetworks.com> - it provides more statistics:
- new "bad_URIs_rcvd", "bad_proxy_req" and "bad_methods" core statistics
- new module_loaded(name) test function added
- new get_stat_var_from_num_code(code) function added - very handy when dealling with statistics with dynamic names
- get_sock_info_list() function made available from modules

* 2006-12-07 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- latest modules added into debian packaging:
   1) xmpp module was added to the openser-jabber-module package
   2) presence pua pua_mi pua_usrloc modules form a a new openser-presence-modules package
   3) mi_xmlrpc module form a a new openser-xmlrpc-module package

- osp module is excluded from packaging since its dependencies cannot be solved by other Debian packages.
 Reported by Juha Heinanen <jh@tutpro.com>.

* 2006-12-07 Anca Vamanu <anca@voice-system.ro>
- corrected action sequence to enable sending Notify with basic status closed when Publish expires

* 2006-12-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- new PV added to make available the reply code in all types of routes
  $T_reply_code

* 2006-12-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- t_relay() and t_relay(OBP) functions can take as extra parameter as set of flags for internal controll: if a provisional reply shoud be sent or not, if a negative reply should be automatically generated in case of failure or not.
  For more, please refer to the docs.

* 2006-12-06 Daniel-Constantin Mierla <daniel@voice-system.ro>
- split to get more modularity
- add content-type for sent messages (reported by Henri Keski-Sikkila)
- send message back if unknown message
- dev version increased

* 2006-12-06 Anca Vamanu <anca@voice-system.ro>
- set default not to send usrloc publish

* 2006-12-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- new tranaction flags added:
	/* ACK must not be auto generated for the local transaction */
	#define T_NO_AUTOACK_FLAG       (1<<5)
	/* provisional replies must trigger callbacks for local transaction */
	#define T_PASS_PROVISIONAL_FLAG (1<<6)
- actions related to these flags added:
	if T_NO_AUTOACK_FLAG is set, no ACK will be generated for the 200 OK for local requests
	if T_PASS_PROVISIONAL_FLAG is set, the provisional replies to local requests will be pushed via the TMCB_LOCAL_RESPONSE_OUT callback

* 2006-12-06 Klaus Darilion <klaus.mailinglists@pernau.at>
- TLS certificate validation is now on by default
- docs updated

* 2006-12-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- parsing bug fixed: the "stale" field in digest challange hdr may take not quoted value (as well as quoted)
  Credits go to Christophe Irles <christophe.irles@alcatel.fr>

* 2006-12-06 Klaus Darilion <klaus.mailinglists@pernau.at>
- added a note that a default admin user is created during serwerb table
  installation (a default user is always a security issue)
- changed the postgresql ALTER TABLE statement for extending the subscriber
  table for serweb to work with postgres 7.4.7

* 2006-12-05 Anca Vamanu <anca@voice-system.ro>
- added verification in callback function if reply message is FAKED_REPLY

* 2006-12-05 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- Fixed problem when creating tables using default "utf8" or "ucs2" charsets - they use 3 bytes for char and generates error about the lenght of the keys:
  ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes
Solution was to:
1) Test what's the character encoding is used in database.
2) If it's a UCS-2 or UTF8 (where 3 bytes per char are used) then warn
user that db couldn't be created and prompt him to select another
character encoding among available.
3) In a "CREATE DATABASE" use closure "CHARACTER SET"
 Patch submitted by Khalukhin Alexander <khalukhin@gmail.com>.Thanks!!
 Closes bug 1605410.

* 2006-12-05 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed credentials calculation for admin user in serweb section
  Reported by Klaus Darilion <klaus.mailinglists@pernau.at>

* 2006-12-05 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- removed old fifo commands - they were used only for debug purposes and had no value in a usage scenario
- add new MI function 'pike_list' - returns all IP addresses marked as flooding source.

* 2006-12-05 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
-last MI functions added: t_uac_dlg & t_uac_cancel
 Syntax had slitly changed :
	Syntax of "t_uac_dlg" :
		method
		RURI
		NEXT_HOP?
		socket?
		headers?
		[Body]
	Syntax of "t_uac_cancel" :
		callid
		cseq
 Nodes marked ? may be replaced with "." as empty marker. [] is an optional node.

* 2006-11-05 Juha Heinanen <jh@tutpro.com>
* Added subnet support to allow_address functions.

* 2006-12-05 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- docs updated (module dependencies)
  Reported by Nicolas Palix <nicolas.palix@labri.fr

* 2006-12-04 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- added MI functions for TM (partial)
- protoype of internal functions changed in TM: reply reason is str* instead of char * - avoids doing strlen() for each reply; better do it once at startup.

* 2006-12-04 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- all FIFO functions ported to MI interface - they can be now accessed via
  XMLRPC also.
- fixed bug in the ul_dump function - no locking was done when dumping the table

* 2006-11-30 Anca Vamanu <anca@voice-system.ro>
- presence user agent client support
- pua: common API
- pua_mi: MI PUA extension
- pua_usrloc: usrloc PUA extension

 PUA_MI
 - provides functionality to publish presence information from
 independent applications (like scripts, web pages ...) via MI

 PUA_USRLOC
 - enhance openser to be able to publish online/offline status
 for SIP devices with no presence extension support


* 2006-11-30 Lavinia Andrei <lavinia@voice-system.ro>
- initial upload of a XMLRPC implementation for MI interface.

* 2006-11-29 Dan Pascu <dan@ag-projects.com>
- Fixed domain_reload and trusted_reload commands not working over the UNIX
socket interface.
- It's possible that other commands may have been fixed by this as well.
Basically any command that needed a database connection was not working
over the UNIX socket interface as the process carrying the unix domain
socket server didn't have a database connection.

* 2006-11-29 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- bug fixed: improper free of linked list (first delete and later iterate)
  based on a patch submitted by Jan Andres <jan.andres@freenet-ag.de> for SER

* 2006-11-29 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- added BLOB support in flatstore - useful if you want to used along siptrace module.
  Based on an original patch sent by Francisco Olarte Sanz
  <folarte@peoplecall.com>

* 2006-11-29 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- MI tree changed: the top node has a different structure in order to accomodate a reply code and reason.

* 2006-11-28  Di-Shi Sun <di-shi@transnexus.com>
- Merge the changes in rel_1_1_0 to CVS HEAD on 11/28/06.

* 2006-11-28 Daniel-Constantin Mierla <daniel@voice-system.ro>
- dynamic library loading flags can be specific per module
- new modules under development requires such features
- by default RTLD_NOW is used, see 'man dlopen' for more options
- thanks to Bastian Friedrich <bastian.friedrich@collax.com

* 2006-11-28 Anca Vamanu <anca@voice-system.ro>
- local generated requests will include a Content-Length header all the time.
reported by Chris Robson <Chris.Robson@nrl.navy.mil>

* 2006-11-28 Daniel-Constantin Mierla <daniel@voice-system.ro>
- usage of AoR hash to index the records
- tests with hundreds of records per hashtable entry having same length of AoR proved that hash value is different which increase the probability that a integer comparison will match the AoR, avoiding string comparisons quite a lot
- devel version increased
- some extra debug messages to help in testing (to be removed later once proves stable)

* 2006-11-27 Daniel-Constantin Mierla <daniel@voice-system.ro>
- added missing documentation of traced_user_avp
- ability to disable usage of traced_user_avp

* 2006-11-27 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- detailed description of loose_route() function added to docs.
  Credits go to Klaus Darilion <klaus.mailinglists@pernau.at

* 2006-11-27 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed bug - un-initialized global variable may lead to a crash if openser destroies the sl module without initializing it (during a failed startup). Some compilers init vars with 0, but not all.

* 2006-11-24 Daniel-Constantin Mierla <daniel@voice-system.ro>
- immproved locking system to access location entries
- updated all modules to the new interface
- NOTE: not yet heavy tested, please report any issue to devel@openser.org
- devel version increased


* 2006-11-24 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- bug fixed: User-Agent was not reloaded from DB during restart.
  Closes bug 1602339.

* 2006-11-24 Daniel-Constantin Mierla <daniel@voice-system.ro>
-added new field for pseudo-variables in exported interface

* 2006-11-23 Daniel-Constantin Mierla <daniel@voice-system.ro>
- modules can register pseudo-variables via export structure
- a null terminated list with PVs is now part of module's exports
	{ pv-name, pv-function, pv-type, pv-parameter }
- the old function to register PV can be still used
- small tlsops updates: module name in exports aligned with external name
and old TLS pseudo-variables moved to new structure (some by Klaus Darilion)

* 2006-11-23 Klaus Darilion <klaus.mailinglists@pernau.at>
- fixed require_client_certificate for default TLS server domain
  (reported and patch contributed by Philippe phgs@free.fr
- fixed default TLS client/server verification (had no impact as both
  default values are 0)

* 2006-11-23 Daniel-Constantin Mierla <daniel@voice-system.ro>
- fromip for outbound proxy-ed requests set to local ip (credits to Dan Pascu)

* 2006-11-22 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed display problem in "openserctl monit"; "tput cup 0 0" replaced with "tput clear" - it is inevitable to do a clear since the printed lines may vary as length (get smaller); also a printed line may be wrapped over several terminal raws if the terminal size is changed on the fly.
Closes 1528402.

* 2006-11-22 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- applied patch from Marcos Hack for adding SQL_DECIMAL type. Closes 1598507.
- more data types added:
   SQL_NUMERIC for integer
   SQL_DATE, SQL_TIME, SQL_TIMESTAMP, SQL_TYPE_DATE, SQL_TYPE_TIME for data-time

* 2006-11-22 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- "use_domain" module parameter removed as now it is internally imported from the usrloc module
- save_memory() and save_noreply() merged into save(domain,flags) - more flexible in combination of functionalitites
- configuration error is generated if MEMORY ONLY flag is used on save() while the DB_ONLY mode is configured in usrloc.
- docs and faq updated

* 2006-11-22 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- local function mi_get_mask() replaced with the new core function strno2int()

* 2006-11-22 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- new functions strno2int() added - a warpper on top of int2str() and strhex2int() for easy conversion of strings in decimal and hexa format; binary format should be also added in future

* 2006-11-22 Daniel-Constantin Mierla <daniel@voice-system.ro>
- fromip for local generated messages is set to the address of the socket used to send
- toip for sip_trace() recorded messages is set the address of the socked where the message was received

* 2006-11-21 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
-fixed handeling of the permanent contacts (to work properly in DB_ONLY mode):
	- FL_PRESISTENT flag removed
	- persistent contacts are identified by having the expires=0
	- timer routine for deleting expire contacts in DB_ONLY does not need to deal with flags for skipping the permanent contacts (flag testing in quite impossible via the current DB API)
- removed unused flag from usrloc
- openserctl ul ops updated to reflect the changes for the persistent contacts
Closes 1579127.

* 2006-11-16 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- MI support added (existing FIFO functions migrated to MI)

* 2006-11-16 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed bug in loading the radius values in the ACC module
  Closes 1596427 (reported by Philippe Sultan)
  Most probably it will be needed to do a RADIUS cleanup in all the radius related modules as the original idea of aloading the radius dictionary does not scale anymore.

* 2006-11-13 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
 Issue:
In CPL, during a proxy to a location set the
value of the branch flag being passed to append_branch
is currently the configured value for "nat_flag" (ie 6).
However, append_branch is expecting a bit mapped flag value (ie 0x40).
Also in CPL, the nat flag is getting set for the msg
if any branches have the nat flag set. This can cause
the RURI branch to have the nat flag set when the
location associated with the RURI branch does not
have the branch flag set.
Also, to be consistant with the default used in the
registrar module, made the default for nat flag -1
in the cpl-c module.
 Patch provided by John Riordan <john@junctionnetworks.com>


* 2006-11-13 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
 Issue:
In CPL, during a location lookup, the lookup fails
for users with an '_' in the user portion of the AOR.
For example, if the AOR is user_1@domain.com, cpl
registration lookup always fail.

 Patch:
Use tolower(c) instead of (0x20)|(c) when building
the interpreters copy of the AOR.
 Patch provided by John Riordan <john@junctionnetworks.com>


* 2006-11-08 Norman Brandinger <norm@goes.com>
- Removed warning messages generated on 64-bit systems.   printf("%d",sizeof(x)) changed to printf("%lu",(unsigned long)sizeof(x)).  Tested ok on both 32 and 64 bit systems.

* 2006-11-02 Juha Heinanen <jh@tutpro.com>
- Split enum_query function into pre-processing stuff and do_query
  function that does the actual query.
- Introduced infrastructure enum query function i_enum_query and
  associated module variables (contributed by Otmar Lendl).


* 2006-11-02 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- the ACK TM callback set in the "reply code" param the method ID - this leads to incompatibilities in the ACC module -> use the code directly from transaction
  Problem reported by Norman Brandinger <norm@goes.com

* 2006-11-01 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed memory free - the private memory used by the fifo parser cannot be freed in module destroy since allocation is done in a different process
 Reported by Anca-Maria Vamanu <anca@voice-system.ro>

* 2006-11-01 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- avp_radius module added to openser-radius-modules debian package

* 2006-11-01 Daniel-Constantin Mierla <daniel@voice-system.ro>
-  fix of usrloc callbaks: invoke only if the type of event matches with callback function type

* 2006-10-31 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed some low probability races. Patch sent by Andrei Pelinescu-Onciul
 <andrei@iptel.org>

* 2006-10-31 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
Major rewritting of postgres module, contributed by Norman Brandinger <norm@goes.com>:
 1. aug_* memory routines are gone.

 2. connection pooling has been implemented.

 3. fetch support has been implemented.

 4. many sanity checks (set by PARANOID in defs.h) have been added.

 5. general code cleanup has taken place.  this was done, only for the code that was involved in the update.

 6. renamed / combined some files to make it easier to locate subroutines.

 7. renamed many subroutines with pg_ prefix to be globally unique across OpenSER.

* 2006-10-30 Anca Vamanu <anca@voice-system.ro>
- send NOTIFY after each SUBSCRIBE(reported by Franz Edler)
- don't save when initial SUBSCRIBE has expires 0

* 2006-10-30 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
-DB name updated - reported by Doug Meredith <doug.meredith@systemguard.com>

* 2006-10-27 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- new pseudo-variable- $Au (accounting username) item that gets username the
  same way as accounting module was doing - try to get it first from credentials
  and if nor present, use the FROM URI.
  This PV will compensate (read : make life easier) the removel of USERNAME
  RADIUS AVP in ACC module

  Credits go to Juha Heinanen <jh@tutpro.com>.

* 2006-10-27 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- ACC DB aligned to latest changes in ACC module - from_uri, to_uri and cseq columns were dropped.

* 2006-10-27 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- the minimal ACC set reduced even more (FROM and TO uri and cseq no) - see the thread on devel@openser.org for reasons.
- for RADIUS acc, the USERNAME RADIUS avp is not added by default - it will be replaced by a pseudo-variable, thanks to Juha

* 2006-10-26 Daniel-Constantin Mierla <daniel@voice-system.ro>
- support for read-only query in 'openserctl db'
- support to define queries in variables inside openserctlrc and then run it via variable name with 'openserctl db [ro]run varquery'
- example:
openserctlrc: LISTUSERS="select username,domain,email,rpid from subscriber"
> openserctl db rorun LISTUSERS

* 2006-10-26 Dan Pascu <dan@ag-projects.com>
- Added ability to specify the NAT IP address of the signaling via and AVP
  If this AVP is set, it should contain an IP address that will be used as
  the address of the NAT from where the SIP signaling originated, else src_ip
  will be used (previous behaviour). This is useful in cases where the SIP
  proxy that actually starts mediaproxy does not receive the signaling
  directly from the UA, but there are other proxies in the path in front of
  it. In such a case a way to propagate the NAT IP is required and than that
  IP should be set into the signaling_ip_avp for mediaproxy to use.


* 2006-10-24 Klaus Darilion <klaus.mailinglists@pernau.at>
- new module: domainpolicy
- adds domainpolicy lookup according to draft-lendl-domain-policy-ddds-02
  and draft-lendl-speermint-federations-02
- can be used for static+dynamic peering
- see README for more details


* 2006-10-23 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- Fix asm constraint to avoid register overlap on arm
  Credits got to Julien Blache <jblache@debian.org>

* 2006-10-19 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- table "address" added, thanks to Norman Brandinger <norm@goes.com>

* 2006-10-19 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- gcc-3.4 and gcc-3.0 cases merged as they proved to be identical
- CC_CLASS replaces CC_SHORTVER while CC_SHORTVER is kept without any wildcards
- for gcc 4.1, warnings about strict-aliasing are suppressed

* 2006-10-19 Juha Heinanen <jh@tutpro.com>
- Changed two addf_mi_node_child calls to add_mi_node_child calls.

* 2006-10-19 Juha Heinanen <jh@tutpro.com>
- Introduced mi interface to permissions module.

* 2006-10-17 Juha Heinanen <jh@tutpro.com>
- Example now uses avpops instead of textops.

* 2006-10-13 Anca Vamanu <anca@voice-system.ro>
- new presence server implementation (RFC3265, RFC3856, RFC3857...)
- works in db-only mode now
- support for handling PUBLISH and aggregation of muliple presence documents
- support to interpret XCAP
- support for handling watcher info documents
- see more at: http://openser.org/dokuwiki/doku.php?id=presence:presence-module

* 2006-10-13 Daniel-Constantin Mierla <daniel@voice-system.ro>
- ability to get To tag from avp
- dev version increased

* 2006-10-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- MI interface extended:
        - each MI function may register an init function to be called from the
          MI processes
        - module may register MI functions in a more simpler way, via module's
          export interface instead of using register_mi_cmd()

- all module migrated to the changes in the module_export

- some syncronizations fixes in the MI functions in imc module

- new module ported to the new MI - flatstore and pdt

* 2006-10-10 Ron Winacott <ronw@somanetworks.com>
- Made the sst module compliant with the RFC.
and now the 422 reply will carry the Min-SE: header.

* 2006-10-10 Ron Winacott <ronw@somanetworks.com>
- Updated the documents to match the new API/RFC compliant
functionality.

* 2006-10-09 Elena-Ramona Modroiu <ramona@voice-system.ro>
- bug fix reported by Julien Blache

* 2006-10-09 Anca Vamanu <anca@voice-system.ro>
- external functions implemented for MI also

* 2006-10-07 Julien Blache
- Add back DH_COMPAT=5 emulation code for openser-dbg.

- 2006-10-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
-applied patch from Carsten Bock, BASIS AudioNet GmbH for removing the "desc_time_order" module parameter as its functionality was migrated to usrloc module.

* 2006-10-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- "desc_time_order" usrloc module parameter controls the contacts order per
  user both at insert and update time.
  If enabled, the first contacts in the list will be the latest modified
  (inserted or updated); otherwise the list will be kept order by the q
  value.
- "desc_time_order" has also affect if db_mod is DB_ONLY.

* 2006-10-06 Anca Vamanu <anca@voice-system.ro>
- new module imc: Instant Messaging Conferencing
- IRC-like conferencing style, using embedded commands in body of MESSAGEs
- allow to create/delete a room, invite/remove users to rooms
- provides short help command
- possibility to create public/private rooms
- restart survive by storing rooms in database

* 2006-10-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- the MI functions accepts the flag bitmap in hexa format also

* 2006-10-05 Juha Heinanen <jh@tutpro.com>
- Removed unused r_uri column of silo table.
- Added into silo table an index on ($USERNAME, domain).

* 2006-10-05 Juha Heinanen <jh@tutpro.com>
- Added max_messages module variable that may be used to limit how many
  messages can be sgtored for an AoR.
- Removed unnecessary code.
- Fixed ms_snd_time_avp test.
- Updated documentation.

* 2006-10-04 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- as there is no way to constrain a callback function to change the
  pointer and len of the received parameter string, be sure to pass to the
  callback a copy in order to protect the internal values.
  For example, the "path" module does this, so all later call of
  check_route_param () will fail.
- Many thanks to Helge Waastad <helge@smartnet.no> for the help to
  debug this.

* 2006-10-02 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- New module for implementing FIFO transport layer for Management Interface.
In the near future it will replace te current FIFO implementation (core and modules).

* 2006-10-02 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- Statistic external functions are also exported via the new Management Interface.
- The new functions are more flexible since they accept as arguments a list of modules or statistic variables to be listed/reset

* 2006-10-02 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- Management Interface (MI) - interface to provide common functions and data structure between the implementation and transport part for management functions (external triggers for OpenSER); 

* 2006-10-01 Juha Heinanen <jh@tutpro.com>
- A faster implementation is_domain_local() that accepts only a pseudo
  variable as argument.

* 2006-09-30 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed compile error when SQL_ACC is nod enabled
   Reported by Juha Heinanen <jh@tutpro.com>

* 2006-09-30 Dan Pascu <dan@ag-projects.com>
- Extended the is_domain_local() function to accept any pseudo variable or AVP
specification, as well as fixed strings for parameters.
This adapts the function to the new pseudo variable and AVP specs that were
introduced by openser 1.1.x
- The old $ruri and $from shortcuts are gone, but they can be replaced by $rd
respectively by $fd to obtain the same result.

* 2006-09-29 Daniel-Constantin Mierla <daniel@voice-system.ro>
- removed special characters used by 'show create', they conflict with shell special quotes (reported by Rafael J. Risco)

* 2006-09-28 Dan Pascu <dan@ag-projects.com>
-Do not restrict what methods are processed. Fixes bug with devices using
UPDATE to change the session on the fly not working.

* 2006-09-25 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- user2uid() and group2gid() moved from main.c to ut.c to be also used
  by modules.

* 2006-09-25 Daniel-Constantin Mierla <daniel@voice-system.ro>
- SIP-to-XMPP gateway implementation following the latest XMPP standards from IETF (RFC3920/RFC3921)
- this first version works for instant messaging (to follow: presence. voice)
- allow communication with any XMPP server, including Google Talk
- ability to work as standalone XMPP server or as component to other XMPP server
- no need to map SIP users to XMPP users, everything is transalted on the fly
- the address resolution follows the scheme from old jabber module

* 2006-09-22 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
-grand ACC restructuring and clean-up:
    - simplify internal logic for preparing and message selection
    - more efficient data collection
    - eliminate the FMT-based accounting; instead of it, a default set of
      basic values are all the time accounted; for more, extra accounting
      should be used -> this leads to a more selective / flexible / performant
      accounting
    - pre-builds sets of names / columns / RADIUS AVPs / DIAMETER AVPs instead
      of doing it each time a request is accounted
    - "n/a" string for not found/available values replaced with empty string ""
    - eliminated a lot of un-necessary functions - heritage from the all TM
      callback design (pre pre-transaction transaction)
    - DB accounting table redesigned
    - accounting logic separated in a new file for a better modularity.
    - implemented an accounting environment for storing data; helps in reducing
      the number of function's parameters and of internal functions; more
      important, useless conversions from str to int and to int again are
      eliminated

* 2006-09-22 Klaus Darilion <klaus.mailinglists@pernau.at>
- Add support for extended Secure RTP Profile for RTCP. (ported from ser)

* 2006-09-21 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fix potential race condition - the callback is not sncronized, so the
  hook from TM may change -> make a copy a pass a local hook to the callback

* 2006-09-19 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- new function added "int2bstr" - same as "int2str" but instead of using a
  static buffer it takes one as parameter - allows sequential calls without
  overwriting the result.
- some code duplicity removed


* 2006-09-19 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- New module uploaded: SIP Session Timer (sst)
  Provided by Ron Winacott <ronw@somanetworks.com>

  Description:
  The new module gives OpenSER basic SIP Session Timer support. See rfc4028 for
  more information on SST. This new module uses the new dialog module to track
  the creation, updating and termination of SIP dialogs. The dialog module
  supports timed out termination of the dialog but at this time the timeout
  value is hardcoded (avp accessable and modparam() settable)

  What the sst module does is uses the dialogs own callbacks to update the
  dialog timeout value based on the current expire: header value.

  There is also a script function called sstCheckMin(min_se_value) that can be
  used in a proxy configuration to reply with a 422 "Session Interval Too
  Small" to a INVITE with a small MIN_SE value.


* 2006-09-19 Daniel-Constantin Mierla <daniel@voice-system.ro>
- updated doc for avp_pushto() to reflect ability to push any pseudo-variable in parts of SIP message (reported by Juha Heinanen)
- fixed incorrect (harmless) usage of FM operator in case of division and enabled modulo operator

* 2006-09-19 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- the AOR may be transmitted via an AVP instead of being fetched from
  the proccessed request.
- new module parameter "aor_avp_id" to enable/disable/configure this feature

* 2006-09-18 Dan Pascu <dan@ag-projects.com>
- clean utils/openserunix as well

* 2006-09-17 Juha Heinanen <jh@tutpro.com>
- Added 'id' auto-increment primary key to 'address' table.

* 2006-09-14 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- example scripts updated (break replaced with exit)
  Reported by Ruchir Brahmbhatt <ruchir.brahmbhatt@gmail.com>


* 2006-09-13 Daniel-Constantin Mierla <daniel@voice-system.ro>
- check supported methods before dumping stored messages (patch by Juha Heinanen)
- option to turn off the addition of received date to dumped messages

* 2006-09-08 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- more flexible implementation for multi-leg accounting
- code cleanup for low level functions:

* 2006-09-07 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- harmless bug fixed - it was triggering some integrity tests in EXTRA_DEBUG.
  Reported by Mark Kent <mark@noc.mainstreet.net>

* 2006-09-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- added new algorithm for building VIA branch parameter for stateless
  requests - it complies to RFC3261 requirement to be unique through time and space.

* 2006-09-05 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- syn_branch parameter moved from core parameter to TM module paraemter;
  it controlls only the statefull behaviour so it must be only in TM.

* 2006-09-04 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- build the sibling linked list also for the VIA hdrs

* 2006-09-02 Juha Heinanen <jh@tutpro.com>
- Introduced set_address_group, allow_address, and allow_source_address
  permission module script functions and address database table.

* 2006-08-24 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- if the AOR does not contain a username part, when use_domain is
  enabled, used an empty string as username part and do not report BUG
  Reported by Helge Waastad <helge@smartnet.no>.
  Closes 1545219.

* 2006-08-15 Daniel-Constantin Mierla <daniel@voice-system.ro>
- replaced bash dependent expression with usage of 'expr' from coreutils
- reverted commit which introduced space after AWK -F
- should fix itmes #1540127, #1540132

* 2006-08-14 Daniel-Constantin Mierla <daniel@voice-system.ro>
- maddr is automatically handled by RR processing (initial patch by graphy, Simon Morvan)

* 2006-08-12 Julien Blache <jblache@debian.org>
- Adding Debian packaging for Debian 3.1 Sarge.

* 2006-08-09 Daniel-Constantin Mierla <daniel@voice-system.ro>
- support asynchronous query, steps required for fetch support (patch by Norman Brandinger)
- for the moment, transcation support in postrgres module is suppressed

* 2006-08-06  Di-Shi Sun <di-shi@transnexus.com>
- Use get_from/to/rpid instead of accessing date directly.

* 2006-08-03 Daniel-Constantin Mierla <daniel@voice-system.ro>
- applied patch for better get_result() handling from Norman Brandiger

* 2006-08-03 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- flag index 0 enabled
  reported by Tavis P <tavis.lists@galaxytelecom.net

* 2006-08-02  Di-Shi Sun <di-shi@transnexus.com>
- Change reporting usage from cookie not to use called number in Request-Line of BYE messages.
   The BYE messages from source and from destination have different called number if called number is translated.
- Change a log using "[x.x.x.x]" format for the source device.

* 2006-07-31  Di-Shi Sun <di-shi@transnexus.com>
- Fix [1524079] bug reported for Scalable SIP server project in SourceForge.
   Please check OpenSER tracker for details.
- Change getting destination protocol & OSP version. If these functions fail,
   using the default protocol & OSP version.

* 2006-07-27 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- got rid of the "-i" sed parameter since it is not available on all OS.
  Credits go to Wolfgang Hottgenroth <woho@hottis.de>

* 2006-07-27 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- applied patch from Norman Brandinger <norm@goes.com> : maps the postgres
  data type BPCHAROID as intternal string.
  Closes patch 1529340.

* 2006-07-27 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed memory leak and double free.
  Thanks to Marcos Hack <marcosh@voicetechnology.com.br> for debugging.

* 2006-07-23 Daniel-Constantin Mierla <daniel@voice-system.ro>
- location records loading is performed by first child (this exists in no-fork mode as well)
- all the other children can process SIP messages immediately after OpenSER start/restart
- chance to access usrloc (read/insert/update) data is given to all processes even when usrloc records are loaded
- great performace improvement for usrloc records loading

* 2006-07-19 Juha Heinanen <jh@tutpro.com>
- Introduced is_uri_user_e164() function.

* 2006-07-17  Di-Shi Sun <di-shi@transnexus.com>
- Re-formated all source code. Added comments for all functions.
- Fix [1524046] bug reported for Scalable SIP server project in SourceForge.
   Please check OpenSER tracker for details.

* 2006-07-17 Juha Heinanen <jh@tutpro.com>
- Replaced allow_refer_to functions with more general purpose allow_uri
  function.

* 2006-07-17 Klaus Darilion <klaus.mailinglists@pernau.at>
- fixed typo in TLS documentation
- updated TLS settings in default openser.cfg to the new TLS syntax

* 2006-07-17 Daniel-Constantin Mierla <daniel@voice-system.ro>
- reactivated username/domain flags in avp_write() for all pseudo-variables and static values - reported by Juha Heinanen
- flags were processed but they didn't propagate from fixup
- old parameters that accepted these flags have equivalent in pseudo-variables (e.g., $ruri/domain == $rd)

* 2006-07-17 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- removed double definition of "usr_preferences_types" table and added
 missing definition of "active_sessions" table
 Reported by Klaus Darilion <klaus.mailinglists@pernau.at

* 2006-07-15 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- fixed compilling problem on platform which does not define
  IPTOS_MINCOST and IPTOS_LOWCOST. Previous fix had a static
  approach which was now replced wiht a more flexible one.
  Reported by Frank Garcia <fg-lists@ipnat.net>

* 2006-07-14 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- Applied path for correcting syntax from MySQL to Postgres (credits go to
Norman Brandinger <norm@goes.com>).

* 2006-07-14 Daniel-Constantin Mierla <daniel@voice-system.ro>
- hash_size - new parameter to tune the size of usrloc hash table
- the number of entries in the hash is 2^hash_size (e.g, if hash_size=4,
the number of entries in hash table is 2^4 = 16)


* 2006-07-14 Daniel-Constantin Mierla <daniel@voice-system.ro>
- added support for fetch_result() in DB API
- drivers supporting fetch_result() will advertise DB_CAP_FETCH as capability
- added support for fetch_result() in mysql module
- usrloc modules uses fetch_result() if available when loads location records
- this removes the issue with loading huge numbers of location records which
required increase of PGK memory size and recompilation of OpenSER
- from the tests, with 1MB memory (default) the out of memory occured
approximately around row 4300
- usrloc has a new parameter 'fetch_rows' for tunning the number of the rows
to be fetched at once, default is 2000

* 2006-07-10 Daniel-Constantin Mierla <daniel@voice-system.ro>
- fixed memory leak in DNS resolver when overflow happens (credits go to Juha
Heinanen)


===================== 2006-07-10 OpenSER v1.1.0 released ======================

===================== Changes since release 1.0.0 ============================

* 2006-07-06 Daniel-Constantin Mierla <daniel@voice-system.ro>
- packaging: added new openserctl

* 2006-07-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- dialog: several bugs fixed:
  1) fixed shutdown crash when dialog module was cleaned before TM module
  2) the dialog structure must be refed by the transaction callback.
  3) fixed missing unlock which leads to dead lock
-core:  more TLS functions to perform proper shared memory clenaup on shutdown

* 2006-07-05 Daniel-Constantin Mierla <daniel@voice-system.ro>
- avpops: is_avp_set() handles properly the index of AVPs (reported by
  Norman Brandinger)

* 2006-07-05 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- domain: clean shutdown: free all used shared memory on exit
- core: - more validity checks for table_version() - check if returned field
  has INT type and if it's not null
- memory cleanup on exit

* 2006-07-04 Daniel-Constantin Mierla <daniel@voice-system.ro>
- scripts: new version of openserctl

* 2006-07-04 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: at shutdown, do memory cleanup for extra iteams.

* 2006-07-03 Daniel-Constantin Mierla <daniel@voice-system.ro>
- pdt: avoid resynchronization when other worker processes still have to do it
  and diff list is not freed

* 2006-07-03 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- usrloc: bug fixed in updating the contact records.
- usrloc: - fixed bogus test for return code of new_ucontact()
- registrar: fixed bug in build_path_vector() - do not return a pointer to
  a str that in freed, but return the full str as parameter.

* 2006-07-02 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: check the type of table_version result (reported by
  Ryan (Matty <matty91@gmail.com>))
- mysql: free mysql connection from pool only when found

* 2006-06-30 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- packaging: various packaging control files updated

* 2006-06-29 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- pike: bug fixed - due bogus flag testing, race between timer and ip tree
  could occurred

* 2006-06-27 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: buffer overflow fixed in append_branch() function - dst_uri and path
  strings were not checked as length before being pushed into the static
  buffers;
- core: append_branch() push into internal branch structure the forced socket
  also.
- registrar: fixed mem leak during lookup in DB_ONLY mode
  Reported by Andreas Granig <andreas.granig@inode.info>
- tm: receiving more replies after the final reply is not reported anymore as
  error. The cause is signalling related and cannot be controlled.
  Reported by Andreas Granig <andreas.granig@inode.info>
- permissions: fixed crash on permissions module  when reload_trusted() failed.
- permissions: fixed clenup on error in init_trusted()
  Reported by Raymond Chen <rchen@broadz.com>

* 2006-06-26 Andreas Granig <andreas.granig@inode.info>
- path: fixed mem-leak in parsing route-params.

* 2006-06-26 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: fixed small potential memory leak in SIP resolver.
  Reported by Douglas Garstang <dgarstang@oneeighty.com>
- acc: fixed bug - the internal and script sets of flags whre swapped when
  using the FL_REQ_UPSTREAM flag
  Credits go to razvan radu <openser-devel@list.coretech.ro>.

* 2006-06-23 Andreas Granig <andreas.granig@inode.info>
- core: fixed two mem-leaks in Path-handling.

* 2006-06-22 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- acc: bug fixed:
     do not install FAILURE callback for CANCELs since TM does not allows it.
     Reported by Sumeet Gupta <skg1010@hotmail.com>
- acc: small optimization:
     install only really needed TM callbacks (for missed calls and ACK reports)
     Suggested by Juha Heinanen <jh@tutpro.com>

* 2006-06-21 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: fixed computation of VIA branch param for end2end ACK

* 2006-06-21 Daniel-Constantin Mierla <daniel@voice-system.ro>
- scripts: added manual page for openserctl

* 2006-06-20 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- usrloc: memory leak fixed. Reported by Christian Schlatter <cs@unc.edu>

* 2006-06-14 Elena-Ramona Modroiu <ramona@voice-system.ro>
- pdt: proper cleanup when server does not initialize

* 2006-06-13 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- acc: "0" and "1" FMT entries overlapps due internal usage of same
   parsed_uri structure.
- tm: tw_append should not append non-existing values
  Credits go to Juha Heinanen <jh@tutpro.com>

* 2006-06-09 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- usrloc: fixed bug in fetching all contacts in db_mode=3 (DB_ONLY).
  Reported by Christian Schlatter <cs@unc.edu>

* 2006-06-07 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- acc: fixed bug in direction detection algorithm during accounting.
  Reported by Glenn Dalgliesh <glenn@routerboy.com>
- gflags: functionality fix - added a new fifo function to be able to read
  the current bitmap of gflags. Reported by Helge Waastad <helge@smartnet.no>
- nathelper: fixed building of received uri when IPv6 is used.
  Credits go to Klaus Darilion <klaus.mailinglists@pernau.at>

* 2006-06-06 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: check for null passwords (on some OS strcmp crashes) - reported by
  Edgar Barbosa

* 2006-06-05 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: fixed bug in cleaning lump lists based on flags - this was generating
  double inserts in Branch routes or memeory leaks in Failure routes.

* 2006-06-01 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: fixed init of default server and client tls domains

* 2006-05-31 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core:  bug fixed in choosing the default port: if proto is TLS and no port
  or SRV is available, use 5061 as default port for outgoing connections.
- gflags: flag range checked for script functions
- gflags: proper cleanup at module destroy
- gflags: got rid of memory allocation in fixup function
- gflags: optimized fixup function -> compute directly the bitmap
- gflags: allowed script functions to be used from BRANCH_ROUTE (reported by
  Juha Heinanen)

* 2006-05-30 Daniel-Constantin Mierla <daniel@voice-system.ro>
- dbtext: added support DB_BITMAP in update() - reported by Ovidiu Sas
- core: fixed linking error on solaris for utils' tools due to -lfl (reported
  by Ryan matty91@gmail.com)

* 2006-05-30 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: even if it has no script parameters, a function may export a fixup
  function. If, param  no. = 0, the fixup will be called with param index 0.
  If function has params, nothing is changed. The possibility to have a fixup
  function even if no param is exported is useful when checking global settings
  that may affect the behaviour of the function.
- 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 DB
  environment.
- tm: fixed branch picking algorithm - if cancelled, but not 487 replied
  received, fallback and use classical algorithm.
- tm: fixed bug in CANCEL retransmission - an implementation more closer to the
  hop by hop CANCEL processing concept
- core: - fixed bug in parsing display name in format:
  "From: token1 token2<uri>"

* 2006-05-29 Daniel-Constantin Mierla <daniel@voice-system.ro>
- dbtext: dbt_row_set_val() accepts DB_BITMAP (reported by Ovidiu Sas)

* 2006-05-29 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- avpops: memory leak fixed in avp_raw_query()
  Credits go to John Riordan <john@junctionnetworks.com>
- core: FROM / TO header paramter parsing fixed:
    1) TAG parameter must have value, but any other parameters are accepted
        without value
    2) removed the NO_PINGTEL_TAG_HACK (long time ago, pingtel phones were
        sending empty tag param in TO) - it's conflicting the RFC 3261;
  Reported by Ovidiu Sas <osas@somanetworks.com>.
- permissions: fixed crash when permission module was shutdown after an
  incomplete startup. Reported by  Elton Machado (lowgitek).
- tm: bug 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.
  Thanks to Elias Baixas <elias.baixas@voztele.com> for troubleshooting the
  problem.

* 2006-05-26 Juha Heinanen <jh@tutpro.com>
- lcr: if R-URI userpart becomes empty, @ sign is not included in R-URI.

* 2006-05-25 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- postgres: bug fixed - postgres may return a row without a column value, so
  we need to double check it. Credits go to
  Arve Rasmussen <Arve.Rasmussen@iplink.no>
- auth_db: module accepts DB_STR type for credentials (dbtext beckend returns
  only DB_STR and not DB_STRING).
  Reported by Ovidiu Sas <osas@somanetworks.com>.

* 2006-05-24 Andreas Granig <andreas.granig@inode.info>
- core: heck for null-pointer before accessing Supported-flags.

* 2006-05-24 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- unixodbc: unixodbc patch wasteful memory fixes and reconnect, patch by
  Sumeet Gupta <skg1010@hotmail.com>
- uac_redirect: bug fixed - q value is also pushed into branches in order to 
  allow serial forking. Based on an original patch from
  Michael Samuel <michael.samuel@ipsystems.com.au>

* 2006-05-22 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: forward and send functions merged by including the protocol, host and
  port into a single parameter like [proto:]host[:port]. Aligned to t_relay()
  and t_forward() format and NAPTR lookup enabled also.
- core: applied patch from Klaus Darilion :  provides TLS client domains
  (name/socket based) and more script config capabilities
- tlsops: new module for TLS operations, patch by Klaus Darilion

* 2006-05-22 Daniel-Constantin Mierla <daniel@voice-system.ro>
- acc: null pseudo-variable values are stoared as "n/a" to keep consistency
  with acc format (reported by Juha Heinanen)

* 2006-05-19 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- avpops: branch can be used as new destinaton for avp_pushto().
    Ex: avp_pushto("$br","$avp(i:30)");  - it will push the avp directly as a
        new branch without affecting the RURI.
- acc: bugs fixed:
  ~ the "missed call" report will display as outgoing uri exactly the RURI used
    for that branch
  ~ the accounting report will display as outgoing uri the RURI of the winning
    branch
  ~ proper internally handling (set/reset) of the "missed call" flag
- acc: behaviour fix:
  ~ the "missed call" flag has effect only on the next serial fork - once
    triggered to report a missed call (a serial fork step ended), the flag is
    automatically reset by module. To catch the potential "missed call" reports
    due next serial forks, you need to re-arm the flag from failure route.
    This behaviour gives full control over what branches should be or not
    accounted as "missed calls".
- tm: 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.
- 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 statefull
  processing on requests.
- core:  new function added : int branch_uri2dset( str *new_uri ) ->
  moves the uri to destination for all branches and all uris are set to
  given uri; to be used to implement replication to multiple destinations
- tm: t_replicate() takes as parameter a SIP URI instead of a destination (in
  order to align the format as for append_branch() ).
- tm: t_replicate() uses the set branches to perform parallel replication to
  multiple destinations

* 2006-05-15 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- nathelper: applied patch for fixing the multiple stream handling in
  sequential requests. Patch by Laurent Schweizer <laurent.schweizer@gmail.com>

* 2006-05-13 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- rr: bug fixed in routing after a strict router
  Reported by Walter Schober <walter.schober@neotel.at>

* 2006-05-07 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: added support to manage AVP flags from configuration script
  ~ flags are 8bit long and have to specified after the AVP name type and before the semicolon, e.g., s3:rpid - string-named AVP with flags 1 and 2 set
  ~ avp naming is now $avp(name_type[flags]:name_id) - name_type = s | i;
    script_flags = 1..255
  ~ a reference to an AVP via alias is now: $avp(alias)
  ~ updated AVP API to allow flags usage

* 2006-05-05 Dan Pascu <dan@ag-projects.com>
- auth_db: Properly handle integer columns in the subscriber table when
  generating the AVPs specified by the auth_db/load_credentials module
  parameter. This fixes crahses caused by invalid memory access when a
  non-string column was specified to be loaded in load_credentials.
   With this patch, string and integer table columns are properly handled and
  will create an AVP with a string respectively an integer value depending
  on the type of the column in the subscriber table that is loaded.
  Other column types are currently not handled and will generate an error
  message in the logs if used, however if need arises they can be handled by
  converting them to a string and creating an AVP with a string value.
- core: Added missing definition for pkg_realloc if PKG_MALLOC was not defined
  and the standard libc allocation functions were used

* 2006-05-04 Klaus Darilion <klaus.mailinglists@pernau.at>
- dialog: added newly introduced parameter when registering pseudo variables

* 2006-05-03 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: old statistics incrementation moved after the length of message is
  computed to access the rigth value (reported by Dan Pascu)

* 2006-05-02 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: allow to set parameter for callback functions of extra pseudo-variables

* 2006-04-28 Juha Heinanen <jh@tutpro.com>
- lcr: applied patch by Andreas Granig that adds optional group id parameter
  to load_gws(), from_gw(), and to_gw() functions.

* 2006-04-26 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- tm: use new_uri instead of original uri in t_write().
  Credits go to Juha Heinanen <jh@tutpro.com>

* 2006-04-21 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- dialog: more dialog callbacks added: DLGCB_EARLY and DLGCB_RESPONSE_FWDED
  Patch provided by Ron Winacott <ronw@somanetworks.com>

* 2006-04-19 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- dialog: callback types renamed to avoid overlapping with some TM defines.
  Reporded by Ron Winacott <ronw@somanetworks.com>

* 2006-04-14 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- dialog: new module for dialog support
- unixodbc: leaking memory in the covert rows function; removes some deprecated
  ODBC functions; invalid cursort state on error; error reporting from ODBC;
  patch by Sumeet Gupta <skg1010@hotmail.com>

* 2006-04-13 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: fixed bug when using exit/return within a switch statement
- core: support for setting custom lifetime (expire time) for the TCP
  connections
- registrar: module may set for TCP connection a custom lifetime for keeping
  it open as long as the registered contact is valid.

* 2006-04-13 Daniel-Constantin Mierla <daniel@voice-system.ro>
- avpops: fixed crash when using global flags in avp_pushto() (reported by
Christian Schlatter)

* 2006-04-11 Daniel-Constantin Mierla <daniel@voice-system.ro>
- avpops: fixed avp_db_load() when loading all avps of a type (reported by
  Andreas Granig)

* 2006-04-10 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- usrloc: bug fixed in print_contacts() - sock may be null
- uac: forbid from changing in auto mode only for URI, but allow it for display

* 2006-04-07 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- scripts: replaced gen_ha1 with md5sum

* 2006-04-07 Daniel-Constantin Mierla <daniel@voice-system.ro>
- siptrace: siptrace
  ~ allow to intercept the SIP messages processed by the sip server and store
  them in a database
  ~ messages are stored along with destination IP and changes made by proxy to
  the original messages
  ~ ability to send a duplicate of the message to a configurable address

* 2006-04-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- cpl-c: fixed bug in processing DROP / EXIT in branch route (due nested
  execution). Reported by Tavis P <tavis.lists@galaxytelecom.net>

* 2006-03-29 Juha Heinanen <jh@tutpro.com>
- core: check_dig_cred() now checks that if digest username has domain, it
  must match realm.

* 2006-03-29 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- tm: new TM callbacks added:
          TMCB_TRANS_DELETED - called when the transaction is deleted
          TMCB_REQUEST_BUILT - called just before sending out a request
- tm: callback can get more paramters via extra params
- tm: 'char * buffer' and 'int len' fields in 'struct retr_buf' merged into a
  'str' for better manipulation
- sl: callbacks added - the only event is sending a stateless reply
- nathelper: bug fixed in processing the newly added "c" flag in
  force_rtp_proxy(). Reported by Bayan Towfiq <bayan@towfiq.com>

* 2006-03-28 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- acc: bug fixed in acc with serial forking: o-uri contains the uri of the
  winning branch and not the the first one.
- unixodbc: fixed bug in function db_update() : the query string was null
  terminated only if exist 'where' parameters.
- unixodbc: appled patch to support ODBC reconnect when connection not open or
  communication link failure - by Alex Gradinar <Alex.Gradinar@cartel.md>
- tm: applied patch provided by Juha Heinanen <jh@tutpro.com> : port from
  SER of "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.
- nathelper: added support for changing session-level SDP connection (c=) IP
  when media-description also includes connection information.
  This can be enabled by setting the "c" flag to force_rtp_proxy()
  Based on a patch sent by Bayan Towfiq <bayan@towfiq.com>

* 2006-03-24 Dan Pascu <dan@ag-projects.com>
- mediaproxy: do not print error to syslog is SDP body is missing. Return a
  different negative code instead (-2) and let the caller handle the error
  (there are cases where a missing SDP body is not an error and can be ignored).
  This also helps by avoiding the need to call a has_body() function prior
  to calling use_media_proxy(). Instead call use_media_proxy() directly and
  it will tell you if it can't find a body, but without giving an error to
  syslog

* 2006-03-20 Juha Heinanen <jh@tutpro.com>
- lcr: stripping was not done when next_gw() was called in  FAILURE_ROUTE.

* 2006-03-19 Juha Heinanen <jh@tutpro.com>
- permissions: if a trusted peer has a non-NULL tag field and if peer_tag_avp
  module parameter is defined, tag value of matching is added to AVP specified
  by peer_tag_avp as side effect of allow_trusted() call.

* 2006-03-17 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- textops: applied patch (modified) from Marc Haisenko <haisenko@comdasys.com>:
  provides new function has_body([mime])

* 2006-03-15 Jesus Rodriguez <jesusr@voztele.com>
- packaging: fix undefined symbols problems
- the HEAD branch of the CVS will keep the FreeBSD port files to build the
  last stable version. A tarball (and its checksum) is needed to build the
  port and this is not (easily) possible with current.

* 2006-03-15 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: xl_printf_s() has now support for nested calls - fixes in the simplest
  way the bug in uac_replace_from() when both parameters contains
  pseudo-variables. Reported by Urtho <junk@urtho.net>.
- core: bug fixed in extracting proper Route parameters after a strict router.
  Reported by Dan Pascu <dan@ag-projects.com>
- nathelper: bogus error message removed - if the contact header does not
  contain any URI, do not report it as a contact-body parse error - it may be
  a (*) body.

* 2006-03-15 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: added PUBLISH in the list of known methods

* 2006-03-14 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- uac: uac_auth() bug fixed in parsing the auth challenge - not all values are
  expected to be quoted.
- usrloc: 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.
- statistics: new module to provide statistic variables support directly into
  the script

* 2006-03-13  Di-Shi Sun <di-shi@transnexus.com>
- osp: fixed several typos in usage.c

* 2006-03-13 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- osp: module aligned to use the RR functionality via the RR API to avoid
  mismatches between function prototypes.
- core: more hash functionality:
  1) hash support in core
      - new_hash1() and new_hash2() merged into core_hash()
      - added core_case_hash() for case insensitive hashes
      - all TM related definitions moved into TM config file
      - if hash size param is 0, the functions will return the hash id
        instead of hash entry.
  2) domain module
      - use the case insensitive hash function
  3) pdt module
      - use the case insensitive hash function
  4) permission module
      - just updated according to coe hash changes
  5) TM module
      - updated according to coe hash changes
      - TM related stuff moved localy from core hash
- registrar: fixed memory bug - build_path_vector() does not allocated memory
  for the path array (returns a static buffer), so no free is needed anymore.
  Reported by Helge Waastad <helge@smartnet.no>
- registrar: build_path_vector() use the sibling link between the headers in
  order to have a faster access to all PATH headers.

* 2006-03-09 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- tm: bug fixed in processing the failure handlers (callbacks and route); error
  cases were not properly handled.
  Reported by Matt Schulte <mschulte@netlogic.net>

* 2006-03-08 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- nathelper: several upgrades to existing functions:
   - 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.
- usrloc: bug fixed when getting all contacts - most probably the bug was
  inserted when the DB_ONLY mode was added

* 2006-03-07 Dmitry Isakbayev <isakdim@gmail.com>
 - osp: update module for:
  1. int_str casing issue, in destination.c and usage.c
  2. inculde data_lump.h in sipheader.c
  3. add_rr_param issuer, in osp_mod.h, osp_mod.c and usage.c.
  4. some compiling warnings.

* 2006-03-07 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: fixed equal operator in comparison (reported by D. Hsueh)

* 2006-03-07 Andreas Granig <andreas.granig@inode.info>
- registrar: fixed lazy-mode-handling if no Supported HF is present.

* 2006-03-07 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- acc: etc/dictionary.radius contains only the OpenSER proprietary attributes
  and values; All standard (IANA registered) attributes are defined in the
  default dictionary of the radiusclient-ng library
- acc: values for Sip-Method attribute set as they are used by OpenSER. NOTE
  they overwrite the default values as defined by radiusclient-ng library.

* 2006-03-03 Daniel-Constantin Mierla <daniel@voice-system.ro>
- osp: removed dependency of textops module - append_hf() replaced with a local
  function

* 2006-03-03 Andreas Granig <andreas.granig@inode.info>
- path: new module for intermediate proxies to add Path-HFs and route
  requests according to the received-parameter of Route-HF URIs.

* 2006-03-03 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- registrar: support in registrar for loadbalancing using Path-HF with
  NAT-Support applied, patch by Andreas Granig <andreas.granig@inode.info>
- uac: default value for "from_restore_mode" switch to auto
- uac: new module parameter "from_passwd" - used to encrypt the RR parameter
  which contains the original FROM URI
- uac: 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.

* 2006-03-02 Daniel-Constantin Mierla <daniel@voice-system.ro>
- $si and $sp were mistakenly changed in $Si and $Sp by previous commit
  - reverted now (reported by Thomas Gelf)

* 2006-03-02 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- uac: when performing UAC authentication, look in predefined AVPs for
  credentials before using the static set credentials (via modparam)
- uac: new module parameters for defining the AVPs to contain realm, username
  and password for authentication.
- core: new header chaining based on type - all headers of same type are linked
  together via sibling link (Ex: msg->allow points to first Allow hdr;
  msg->allow->sibling to the second Allow hdr, and so on).
- core: parser for Allow ans Supported headers updated to parse and merge the
  values from all headers. This fixes problems in REGISTER module when PATH or
  method filtering supports are used - originally only the first
  allow/supported hdr was processed, the rest of them being ignore. This was
  problem maker if a client was registering with multiple Allow hdr, for
  example - reported by Daniel Hsueh <dhsueh@somanetworks.com>.
- core: several changes into routing/scripting internal tree:
  1) allow module to export same C function with same name, but with different
     parameter number - a lot of wrapper functions will become obsolete
  
  2) keep inside the tree nodes the corresponding config line to be able to
     give a more detailed report if fixup functions fails (like line number)
  
  3) some cleanup to simplify the association between the tree actions and
     exported functions

* 2006-03-01 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: XL_RPID, XL_DIVERSION types renamed to XL_RPID_URI, XL_DIVERSION_URI
- core: allow long names for pseudo-variables in format $(name)
- core: possibility to register pseudo-variables from modules
- tm:  module exports $T_branch_idx pseudo-variable refering to the index of
  the branch for which the branch_route[] is executed
- core: avp names must use i: or s: in front of IDs to avoid confusions
- core: avp alias is specified without $

* 2006-03-01 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- acc: Radius acc requests include an event time stamp (Event-Timestamp Radius
  AVP - see RFC2869). The Radius server timpstamp is not reliable since it
  contains also the delays due possible RADIUS retransmissions.
- unixodbc: several problems fixed:
  1) memory allocation size problem when converting the returned rows.
  2) use a define for the size of the static strings - avoid mem. overrides
     if changing the size
  3) more general connection cleanup (properly supported by a larger number
     of drivers)  before submitting a new query
- core: returne codes alligned (for widly used core functions) in order to
  avoid confusions
          == 0 - success
           < 0 - error
- cpl-c: applied patch from John Riordan <john@junctionnetworks.com> : provides
  NAT traversal support (via received) for the lookup CPL node.
- cpl-c: added per branch nat flags support for lookup CPL node
- auth: realm string in www/proxy challenge/authorize support pseudo variables.
  Allows dynamic realm definition in multi domain env.

* 2006-02-28 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: applied patch for Session-Timer header parsing support; provided by
  Daniel Hsueh <dhsueh@somanetworks.com>

* 2006-02-24 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: fixed parsing bug when spaces are present in non-quoted display name.
  reported by Raymond Chen <rchen@broadz.com>
- usrloc: fixed bug when insertion contacts in a new built AOR record - use
    get_ucontact() to detect contact duplicates.
    An initial REGISTER may contain several contacts and some of them may be
    identical. IF DB is used, this will lead to primary key (username, domain,
    contact URI) violation due double insert. Also un-necessary parallel fork
    to same destination is avoided.
  
    This may happen with bogus clients (I see no reason why a UAC may duplicate
    a contact in same REGISTER), so the fix is protection mechanism for the
    proxy.

* 2006-02-23 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- 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

* 2006-02-22 Klaus Darilion <klaus.mailinglists@pernau.at>
- core: introduction of the parameters tls_verify_server and tls_verify_client:
  allows to have different policies for incoming and outgoing TLS connections

* 2006-02-21 Daniel-Constantin Mierla <daniel@voice-system.ro>
- textops: new set of function to work on the body of the message:
          - search_body()
          - search_append_body()
          - replace_body()
          - replace_body_all()
          - subst_body()

* 2006-02-17 Juha Heinanen <jh@tutpro.com>
- permissions: allow_trusted() from_pattern can now be empty (NULL value in DB).
  Empty from_pattern matches any From URI.

* 2006-02-17 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: applied patch from Juha Heinanen <jh@tutpro.com> : new pseudo-variables
  are available: $re -Remote-Party-ID header URI; $di -Diversion header URI

* 2006-02-16 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: fixed several bugs strictly related to libssl version 0.9.8:
  1) bad record mac because of wrong SSL_OP_TLS_BLOCK_PADDING_BUG handling
     (see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=338006 for more
     info ; original bug registration to libssl at
     http://www.aet.tu-cottbus.de/rt2/Ticket/Display.html?id=1204 - note, it
     requires subscription)
  2) zlib compression does work correctly anymore in multi-process env. due
     problem with mem. allocation functions. Fix: disable compression.
     (see http://www.aet.tu-cottbus.de/rt2/NoAuth/Buglist.html - again,
     subscription is required)
- core: bug fixed : return code of tcp_send() set to negative value if write()
    failed; this was preventing the proxy to generate a negative reply in case
    of connection error via TCP (TLS was affected too).
    Reported by Klaus Darilion <klaus.mailinglists@pernau.at>

* 2006-02-15 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: function to get avp name from pseudo-variable specifier
- avpops: new function avp_db_query() to execute raw query and store the result
  in avps, e.g,
  avp_db_query("select password from subscriber where username='$fU'",
    "$avp(s:password)");

* 2006-02-15 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: new pseudo-variable available: $fs - returns the forced socket (if any)
  for current request; format is "proto:ip:port"

* 2006-02-14 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- rr: obsolete function strict_route() removed
- rr: add_rr_param may be called from BRANCH and FAILURE route
- rr: record_route() may take a parameter containing RR params
- rr: "lr" param is added as first param  to speed up the loose_routing
  processing
- rr: record_route / add_rr_param / record_route_preset accept pseudo-variables
  in params
- rr: extra checking to void double record routing via record_route and
  record_route_preset
- rr: callbacks are executed after all routing changes were done - this allows
  the usage of callback that may change the routing info without overlapping
  with the RR processing.
- core: applied patch from Daniel Hsueh <dhsueh@somanetworks.com> for
  SUPPORTED hdr: 1) corrects "rel100" to "100rel" (according to RFC 3262);
  2) supports "timer" according to RFC 4028
- core: DNS_IP_HACK define removed -> it will be always be used (great speed up)
- core: some improvements in DNS lookups by avoiding re-testing several times
  if IP or not

* 2006-02-14 Dan Pascu <dan@ag-projects.com>
- fixed parse_contact return test
- fixed test for return of parse_uri
- fixed test for parse_headers

* 2006-02-13 Daniel-Constantin Mierla <daniel@voice-system.ro>
- avpops: added db_url parameter same as 'avp_url' to have same name across
  modules
- avpops: fixed do {} while(); block in avp_pushto() - reported by Helge Wastad

* 2006-02-10 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- tm: bug fixed - transactions that gave error during relay stick into memory
  for ever. This memory leak occures only when using directly from script
  the "t_forward_nonack" function.

* 2006-02-10 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: int_str structure changed from (int, str*) to (int, str)
- avpops: avpops uses the same format for avp names as pseudo-variables. All
  parameters being an avp name must now be specified as $avp(name) and aliase
  as $avp($alias)
- core: support for dynamic avp/hdr names
    ~ $avp($pvar) refers to the avp having the name the value of $pvar
    ~ $hdr($pvar) refers to the header having the name the value of $pvar
- avpops: avp_pushto("header", "value") - is obsoleted, same functionality
  being offered by textops module via append_hf() and append_to_reply()
- avpops: all avpops parameters expecting a value can be now pseudo-variables
  (e.g., avp_check("$fu", "eq/$tu") returns true if From URI equals To URI;
  avp_write("$tU", "$avp($fU)") - writes the username in To header in the avp
  having the name the username from From header)

* 2006-02-09 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- domain: fixed conflicts due definition of HASH_SIZE and hash() by the core
  and the domain and permissions modules
- permissions: reduce code duplicity - domain and permissions modules are using
  hash function from the core (hash_func.h)
- core: support for registering function to provide as statistics values.
- core: shm memory exports as module "shmem" the following stats: total_size -
  total memory; used_size - used memory; real_used_size - real used memeory
  (used mem + overhead); max_used_size - maximum of real used memory;
  fragments - number of memory fragments
- cpl-c: multi domain support added

* 2006-02-07 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- tm: advanced TM monitoring; available statistic variables: received_replies -
  statefull received replies; relayed_replies - statefull relayed replies;
  local_replies - statefull local generated replies; UAS_transactions -
  no. of processed UAS transactions; UAC_transactions - no. of processed UAC
  transactions; 2xx_transactions - no. of trasactions finished via 2xx
  replies; 3xx_transactions - no. of trasactions finished via 3xx replies;
  4xx_transactions - no. of trasactions finished via 4xx replies;
  5xx_transactions - no. of trasactions finished via 5xx replies;
  6xx_transactions - no. of trasactions finished via 6xx replies;
  inuse_transactions - no. of current in memory transactions
- core: negative values accepted for updates via atomic ops
- usrloc: usrloc 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
- core: statistics manager supports dynamic allocated names (new falg
  STATS_SHM_NAME)

* 2006-02-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: core uses new statistics support
- core: old stattistics (based on snmp module) removed - functionality
  preserverd.
- sl: statistics support
- sl: new module parameter to enable/disable the statistics support
- sl: available statistics: 1xx_replies - 1xx replies sent out; 2xx_replies
  - 2xx replies sent out; 3xx_replies - 3xx replies sent out; 4xx_replies -
  4xx replies sent out; 5xx_replies - 5xx replies sent out; 6xx_replies -
  6xx replies sent out; sent_replies - total number of replies sent out
  sent_err_replies - number of replies triggered by sl_reply_error();
  received_ACKs - number of local ACK received

* 2006-02-05 Juha Heinanen <jh@tutpro.com>
- permissions: added "none" protocol option that never matches and thus
  disables the peer.
- permissions: free shm memory in case hash_table_insert call results in an
  error.

* 2006-02-03 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: NAPTR lookup support added according the RFC3263 "Locating SIP Servers"
- core: stateless forwarding functions - proto param merged into proxy
  struct to eliminate duplication

* 2006-02-02 Dan Pascu <dan@ag-projects.com>
- auth_db: fixed issue introduced by last commit, in which extra user
  properties were no longer loaded into avps with along with load_credentials.

* 2006-02-02 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- uac: uac_replace_from() denys FROM replace in sequential requenst
  *ONLY* in AUTO mode; otherwise manual mode can work on seq. requests

* 2006-01-31 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- registrar: bug fixed - improper param passing - reported by
  Andreas Granig <andreas.granig@inode.info>

* 2006-01-31 Daniel-Constantin Mierla <daniel@voice-system.ro>
- msilo: added statistics: stored_messages - how many messages were stored;
  dumped_messages - how many messages were sent; failed_messages - how many;
  messages failed to be delivered; dumped_reminders - how many reminders were
  sent; failed_reminders - how many reminders failed to be delivered

* 2006-01-30 Andreas Granig <andreas.granig@inode.info>
- tm: fixed inserting of Route after Via.
- core: fixed bug in parsing Supported header (reported by Helge Waastad).

* 2006-01-30 Elena-Ramona Modroiu <ramona@voice-system.ro>
- pdt: multi-domain support added

* 2006-01-30 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: fixed compiling error on solaris: IPTOS_MINCOST is not defined on
  solaris and netbsd. Reported by martin@campus-merseburg.de
- enum: new functions (or new vresions of them): enum_fquery(), 
  is_from_user_e164(), is_from_user_enum() (patch by 
  Greg Fausak <lgfausak@gmail.com>)
- core: support for atomic operations (assembler code) - only for i386 right
  now
- core: detection for SMP kernels - useful for atomic ops code
- core: statistics code uses atomic operations if available since they are much
  much faster - no locking required.
- core: statistics manager moved completly into shm mem to all dynamic
  registration/removal of statitstic variables.

* 2006-01-30 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: added OP_NEQ (!=) to database operators
- msilo: added reminder features (patch subbmited by Andrea Giordana)
- textops: append_to_reply() has support for pseudo-variables

* 2006-01-27 Andreas Granig <andreas.granig@inode.info>
- registrar: fixed detection of lr-parameter (reported by
  Helge Waastad <helge@smartnet.no>)

* 2006-01-26 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- cpl: column name may be configured via module parameters
- cpl: column for storing user name moved from "user" to "user_id"; was
  reported that columns named "user" are conflicting on postgres DB
- registrar: added len checks for username, domain, contact, received, callid
  and user-agent. The lens are limited to avoid DB error (columns have limited
  size) and DOS at memory and DB level
- registrar: request with failed checks are negativly replied with err headers
  for hints
- core: applied patch for Path support according to RFC 3327 for usage in
  registrars and home-proxies. Patch provided by
  Andreas Granig <andreas.granig@inode.info>

* 2006-01-25 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: fixed bug in to/from parser; display lenght was poorly computed in some
  cases. Reported by Lars Sundqvist <lars.sundqvist@algitech.com> and
  H Quintana <hjqlopez@yahoo.com>
- postgres: proper support form BLOB in postgres - patch submitted by
  Steen, Gerd <gerd.steen@de.thalesgroup.com>. It makes possible the usage of
  cpl-c with postgre DB.

* 2006-01-24 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: first version of a global Statistics Manager (core and modules exports
  statistics variables to the Manager which is centralized collector and access
  point for fetching statististics.
- core: module interfaces updated to export statistics (none so far)
- core: some basic statistics exported by core - how many replies/request were
  received, how many were dropped by script/callbacks and how many were bogus.
- core: new compilation define STATISTICS - if the statistics manaer and
  collection should be compiled or not (default no)
- core: onbreak module function removed from module interface : not used
  anymore, it;s functionality took-ver by post-script callbacks
- nathelper: crash fix for rtp proxy goes down during rtpp_test VF query;
  credits go to Andrei

* 2006-01-22 Dan Pascu <dan@ag-projects.com>
- domain: added is_domain_local(variable)

* 2006-01-17 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- tm: fixed bug in the new TM API (actually an old misfunctionality was
  triggered: exported functions with same names and same C function but with
  different number of parameter overlaps) - reported by
  Helge Waastad <helge@smartnet.no>
- lcr: allow prefix field to be NULL inside the lcr table (by Ovidiu Sas)

* 2006-01-17 Daniel-Constantin Mierla <daniel@voice-system.ro>
- tm: t_relay*() returns 1 instead of 0 when forwarding ACK (reported by
  Dan Pascu)
- core: bmark initialization fix provided by Quang Minh Phan

* 2006-01-15 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
relay functions merging:
- tm: t_relay_to_udp(), t_relay_to_tcp(), t_relay_to_tls() merged into
  t_relay(proto:host:port)
- tm: 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()
- tm: t_replicate_udp(), t_replicate_tcp(), t_replicate_tls() merged into
  t_replicate(proto:host:port)

* 2006-01-14 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- mysql: reconnect option is explicitly forced after mysql_real_connect()
- usrloc: socket_info structure contains static string representation as
  "proto:IP:port" (built only once at init time) -> avoid repeated computing
  on the string during usrloc DB update and add_sock_hdr() call

* 2006-01-13 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- acc: direction detection and compensation for sequential requests (request
  from Lenir <lenirsantiago@yahoo.com>
- acc: new module paramater "detect_direction" to enable/disable the above
  feature

* 2006-01-12 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: fixed crash when caller initiate call on TCP/TLS and expects subsequent
  requests on UDP -- reported by Adrian Georgescu and Dan Pascu
- msilo: callee user ID can be taken from an avp (fixes re-processing of R-URI
  to detect the destination of the message)

* 2006-01-10 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- unixodbc: added to connection string the UID (username) and PWD (password)
  attributes
- unixodbc: printf() replaced with LOG() or DBG()
- unixodbc: malloc()/free() replaced by pkg_malloc()/pkg_free()
- unixodbc: added checks for the returned values of malloc functions
- lcr: applied LCR patch for DB caching and FROM regexp matching from
  Ovidiu Sas <osas@somanetworks.com>
- lcr: DB caching of the DB content on startup or reload.
- lcr: DB operations alligned to internal DB API (no more raw queries)
- lcr: regexp matching for from field
- lcr: new module paramter "db_mode" may toggle between the old behaviour
  (no caching) - 1 - and the new one (DB cahing) - 0.
- scripts: applied patch from Ovidiu Sas <osas@somanetworks.com> :  The
  openser script will allow adding a temporary UrLoc entry if expires is
  specified: ul add <username> <uri> <expires>

* 2006-01-09 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: support for more than 1024 tcp connections on various systems
- core: more tcp options via global parameters (credits to Andrei)

* 2006-01-09 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- uac: place a space between the new dispaly name and the RURI - reported by
  "unplug <maillisting@gmail.com>"
- tm: proper cloning of DIVERSION, RPID and REFER-TO headers - reported by
  Dan Pascu <dan@ag-projects.com>

* 2006-01-09 Klaus Darilion <klaus.mailinglists@pernau.at>
- postgres: copied DB_BITMAP-to-string conversion from mysql module

* 2006-01-06 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: renamed meminfo structure to avoid conflicts in different OSes

* 2005-12-23 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- registrar: fixed crash on register with contacts without "methods" parameter
  reported by Helge Waastad

* 2005-12-22 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: for IPv6, setsockopt expects int as value and not char as for IPv4.
- core: failure of setting IPV6_MULTICAST_LOOP for IPv6 reported just as
  warning instead of error (same as for IPv4)
- usrloc: contact maching algorithm aligned to the RFC 3261 specs (added extra
  checking based on callid and cseq);
- usrloc: configurable multi-algorithm for contact matching:
  1) contact only based (as in RFC)
  2) contac and callid based
- usrloc: received (via AVPs) is looked up only if valid contact found
- usrloc: received contact param is evaluated for each contact

* 2005-12-21 Dmitry Isakbayev <isakdim@gmail.com>
- osp: changed the length of AVP keys to be a multiple of 8.

* 2005-12-19 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: setsockopt() for IP_MULTICAST_LOOP and IP_MULTICAST_TTL expects on
  some OS unsigned char for option value instead of int
- rr: the Route headers paramter's string checked by check_route_param()
  include also the leading ";" -> ";param1=val1;param2=val2" instead of
  "param1=val1;param2=val2" - all parameter names as consistent as format
  and can be much easier checked via regexp - credits go to Juha Heinanen
  for tracing the issue

* 2005-11-29 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: serial forking support added in core (migrated from LCR module)

* 2005-11-18 Daniel-Constantin Mierla <daniel@voice-system.ro>
- dispatcher: dispatcher has failover support
- dispatcher: to enable failover, set bit 2 of 'flags' parameter
- dispatcher: when failover is enabled, selected destination is added as
  dst_uri or domain part of r-uri and the rest of addresses in destination set
  are added in AVP list
- dispatcher: ds_next_{dst,domain} can be used in failure_route to get the
  next address in dst_uri or r-uri domain

* 2005-11-15 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: allow empty action list in switch for case and default statements
- core: allow empty action list in if statements: if(expr) {};

* 2005-11-14 Daniel-Constantin Mierla <daniel@voice-system.ro>
- msilo: bug fixed when marking sent messages (occured due to tm callback
  parameters which are given as reference instead of value)

* 2005-12-13 Juha Heinanen <jh@tutpro.com>
- textops: function is_method() can be called from BRANCH_ROUTE.
- tm: unction t_on_reply() can be called from BRANCH_ROUTE block

* 2005-12-09 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- registrar: method filtering performed by lookup()

* 2005-12-08 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: new function socket2str() - prints a scoket_info as string in format
  "proto:IP:port"; it may print into an internal static buffer or into a
  given buffer (as param)

* 2005-12-08 Juha Heinanen <jh@tutpro.com>
- core: methods lists can be empty

* 2005-12-07 Marco Lorrai <marco.lorrai@abbeynet.it>
- unixodbc: return values of insert

* 2005-12-07 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- usrloc: supported methods are saved into usrloc - patch contributed by
  Juha Heinanen <jh@tutpro.com>
- usrloc: DB operations optimized - domain name is kept null terminated;
  avoid extra memcpy() during each DB query
- core: the parsed methods (bitmap on unsigned int) in mapped directly over
  "parsed" pointer instead of allocated new mem chunk
- core: the function encapsulate complete functionality: find the header
  (new) and parse its body.
- core: defined ALL_METHODS as (0xFFFFFFFF)
- registrar: in REGISTER, the Allow header is parsed *only* if a contact
  without "methods"parameter is found (avoid unnecessary parsing)

* 2005-12-06 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: complete support for Allow header (parsing and accessing) - part of
  the patch submitted by Juha Heinanen <jh@tutpro.com>

* 2005-12-06 Juha Heinanen <jh@tutpro.com>
- domain: Made calculation of domain hash case insensitive (thanks to
  Alex Boeger)

* 2005-12-05 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- tm: fixed the set/unset of avp list during callbacks - credits go to
  Cesc Santasusana <cesc.santa@gmail.com>

* 2005-12-05 Juha Heinanen <jh@tutpro.com>
- lcr: added "strip_column" module parameter

* 2005-12-05 Dan Pascu <dan@ag-projects.com>
- mediaproxy: allow fixing of contacts independent of transport

* 2005-12-01 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- usrloc: display received URI with "opensertcl ul show" (patch from
  Klaus Darilion)
- unixodbc: unixodbc

* 2005-12-01 Daniel-Constantin Mierla <daniel@voice-system.ro>
- exec: functions exported by exec module can include pseudo-variables in
  parameters (credits to Patrick Jordan-Smith for testing)
  ~ caution: if the var your passing out has a bash special character in it,
  the var needs to be placed inside quotes, for ex:
  exec_msg("print-contact.sh '$ct'");
- dispatcher: proper parameters in example config file for 'forward()' function

* 2005-11-30 Klaus Darilion <klaus.mailinglists@pernau.at>
- scripts: increased user_agent to varchar(255), 50 is to small

* 2005-11-30 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- scripts: "acl grant" and "acl show" accespts also non-local users (with
  confirmation) this is necessary if you have groups based on destinations
  which can be non-subscriber numbers.

* 2005-11-29 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: AVP flags reordered - 0-7 core ; 8-15 for module usage
- core: new avp function added - destroy_avps() == search&delete
- avpops: avpops uses destroy_avps()
- avpops: avp_print() prints on INFO level instead of DEBUG
- lcr: AVP flag "Q_FLAG" mapped over core flag (prepare for core migration)
- core: serial forking support added in core (migrated from LCR module)

* 2005-11-28 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- usrloc: saved socket info contains now also the protocol. The socket is saved
  as: proto:ip:port
- tm: t_uac_dlg get an optional parameter which defined the socket to be used
  for sending the request

* 2005-11-28 Klaus Darilion <klaus.mailinglists@pernau.at>
- scripts: changed acc columns src and dst to src_leg and dst_leg

* 2005-11-25 Elena-Ramona Modroiu <ramona@voice-system.ro>
- core: $od - domain of original r-uri
- core: $op - port of original r-uri
- core: $oP - protocol of original r-uri
- core: $ou - original r-uri
- core: $oU - username in original r-uri

* 2005-11-23 Daniel-Constantin Mierla <daniel@voice-system.ro>
- textops: added insert_hf(txt) - insert txt as header before the first header
- textops: added insert_hf(txt, hdr) - insert txt as header before hdr
- textops: added append_hf(txt, hdr) - add txt as header after hdr
- textops: txt parameter of new functions as well as for old append_hf(txt) has
  support for pseudo-variables

* 2005-11-23 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- lcr: strip Option patch submitted - provided by Bayan William Towfiq
  <william@telepacket.com>

* 2005-11-22 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: configurable TOS added (thanks to Andreas Granig)

* 2005-11-22 Klaus Darilion <klaus.mailinglists@pernau.at>
- openserctl: applied patch from Ovidiu Sas to add "prefix" to gw table

* 2005-11-21 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- group: regular expression based group matching added

* 2005-11-17 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- rr: fixed double routing handeling for after_strict case
- rr: proper send socket set in after_strict case
- rr: proper call of rr callbacks in after_strict case

* 2005-11-13 Elena-Ramona Modroiu <ramona@voice-system.ro>
- core: $rm prints method from cseq hearder for replies
- core: new $fn and $tn for From and To display name

* 2005-11-12 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: global var msg_id renamed to avoid overlaping with similar var from
  modules

* 2005-11-10 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: customizable Server and User-Agent headers (provided by Juha Heinanen)
- rr: add_username alters also the behaviour of record_route_preset()

* 2005-11-07 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: proper fixup for switch statement

* 2005-11-07 Dmitry Isakbayev <isakdim@gmail.com>
- osp: new module

* 2005-11-03 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- maxfwd: better error reporting for mf_process_maxfwd_header()
- maxfwd: store MF value in parsed structure for later usage
- maxfwd: new function is_maxfwd_lt() added

* 2005-11-03 Jesus Rodriguez <jesusr@voztele.com>
- packaging FreeBSD
  ~ Do not overwrite configuration files across updates
  ~ Respect ${CC}, ${CFLAGS}, ${PTHREAD_CFLAGS}, ${PTHREAD_LIBS},
    ${OPENSSLINC}, ${OPENSSLLIB}, ${INSTALL_*}, ${NOPORTDOCS}
  ~ Fixup hardcoded paths (respect ${PREFIX} and ${LOCALBASE})
  ~ Put acc config in ${PREFIX}/etc/acc
  ~ Use OPTIONS to select compile (TLS/Mysql/Postgres) options


===================== 2006-02-27 OpenSER v1.0.1 released ======================

===================== Changes since release 1.0.0 ============================

* 2006-02-24 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- registrar: check the presence of same contact address many times in same
  REGISTER message to avoid DB key violation and unecessary paralel forking

* 2006-02-23 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: fixed parsing of To/From headers when spaces are present in non-quoted
  display name

* 2006-02-16 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: fixed several bugs strictly related to libssl version 0.9.8:
    1) bad record mac because of wrong SSL_OP_TLS_BLOCK_PADDING_BUG handling
       (see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=338006 for more
       info ; original bug registration to libssl at
       http://www.aet.tu-cottbus.de/rt2/Ticket/Display.html?id=1204)
    2) zlib compression does work correctly anymore in multi-process env. due
       problem with mem. allocation functions.
       (see http://www.aet.tu-cottbus.de/rt2/NoAuth/Buglist.html)
- core: return code of tcp_send() set to negative value if write() failed
  forcing the proxy to send negative reply immediately

* 2006-02-14 Dan Pascu <dan@ag-projects.com>
- core: fixed tests for return value of parse_uri() and parse_headers()

* 2006-02-10 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- tm: fixed memory leal for transactions that gave error during relay when using
  t_forward_nonack() in configuration script

* 2006-02-01 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- auth_db: check loaded credentials for 0 length
- rr: fixed uninitialized value for user part if add_username is disabled
- uac: uac_replace_from() denied the replace of FROM in sequential requensts
  when working in AUTO mode

* 2006-01-25 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: fix in to/from parser; lenght of display name was poorly computed in
  some cases
- rr: add_username parameter was not properly done by the record_route_preset()

* 2006-01-24 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- nathelper: fix when rtp proxy goes down during rtpp_test VF query at startup

* 2006-01-17 Daniel-Constantin Mierla <daniel@voice-system.ro>
- tm: t_relay*() returns 1 instead of 0 when forwarding ACK

* 2006-01-16 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- mysql: reconnect option is explicitly forced after mysql_real_connect()

* 2006-01-12 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: fix for nested transport protocols in same call

* 2006-01-09 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- uac: place a space between the new dispaly name and the URI
- tm: proper cloning of DIVERSION, RPID and REFER-TO headers

* 2006-01-06 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: renamed meminfo structure to avoid conflicts in different OSes

* 2005-12-29 Klaus Darilion <klaus.mailinglists@pernau.at>
- gflags: added documentation of fifo commands

* 2005-12-14 Daniel-Constantin Mierla <daniel@voice-system.ro>
- msilo: fixed marking sent messages

* 2005-12-05 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- tm: fixed the set/unset of avp list during callbacks

* 2005-12-05 Dan Pascu <dan@ag-projects.com>
- mediaproxy: allow fixing of contacts independent of transport

* 2005-11-28 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- tm: fixed matching local ACKs versus e2e ACKs

* 2005-11-28 Klaus Darilion <klaus.mailinglists@pernau.at>
- scripts: mysqldb.sh postgresqldb.sh - changed columns 'src' and 'dst'
  to 'src_leg' and 'dst_leg' in 'acc' and 'missed_calls' tables
  (fixes #1367858)

* 2005-11-22 Klaus Darilion <klaus.mailinglists@pernau.at>
- scripts: sc - backport of lcr gw prefix
- scripts: sc - bacport of "ul rm" of a dedicated contact

* 2005-11-22 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- rr: fixed double routing handeling for after_strict case
- rr: proper send socket set in after_strict case
- rr: proper call of rr callbacks in after_strict case

* 2005-11-07 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: proper fixup for switch statement

* 2005-10-31 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: IP_MULTICAST_LOOP error switched to warning (specific to openBSD amd64)
- core: fixed TCP fd passing error (specifc to openBSD amd64)


===================== 2005-10-28 OpenSER v1.0.0 released ======================

===================== Changes since release 0.9.4 ============================

* 2005-10-00 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
* 2005-10-00 Daniel-Constantin Mierla <daniel@voice-system.ro>
* 2005-10-00 Elena-Ramona Modroiu <ramona@voice-system.ro>
- modules' documentation updated to list the route types where the exported
  functions can be used

* 2005-09-15 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- maxfwd: max_limit of MAX-FORWARDS cannot exceed 256 (as per RFC)

* 2005-09-11 Klaus Darilion <klaus.mailinglists@pernau.at>
- postgres: adding transaction rollback for failed queries (postgres module
  encapsulates every query into transaction. If the query failed, the
  transcation was not finished, thus a new database connection was created
  on the next query)

* 2005-09-09 Elena-Ramona Modroiu <ramona@voice-system.ro>
- avpops: avp_write() allow $hdr(name) to be coherent with avp_printf()
- avpops: old format $hdr[name] is still valid

* 2005-09-07 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- tm: t_flush_flags() - flush to T (UAS side) only the global flags

* 2005-09-07 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: return code is printed to a string as signed int (was printed unsigned
  until now)

* 2005-09-06 Juha Heinanen <jh@tutpro.com>
- domain: is_uri_host_local() can now be called also from failure route,
  where it checks host part of first branch (which thus must have been earlier
  appended to the transaction)

* 2005-09-05 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- acc: DB support is compiled by default
- acc: DB support disabled by default (db_url=0)
- tm: inconsistency in "tw_append: parameter definition fixed: "msg(body)"
  proprietary specifier migrated to $rb pseudo variable; message body must
  be deal separately since it have a special status in the fifo/unix syntax.

* 2005-09-01 Juha Heinanen <jh@tutpro.com>
- lcr: Request-URI user part can be modified between load_gws() and first
  next_gw() calls.

* 2005-09-03 Elena-Ramona Modroiu <ramona@voice-system.ro>
- xlog: xlog() prints to level 'L_ERR' if the first parameter is omitted

* 2005-09-02 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: full suppor for per-branch flags
- registrar: may use the branch flags for NAT marking
- registrar: new module parameter "use_branch_flags": if enabled the branch
  flags will be used for NAT flag.
- tm: new param "branch_flag_mask" which defined which flags shall be
  considered to be branch flags; it's bit mask in 2, 10 or 16 base;

* 2005-09-02 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: new global parameter 'log_name' to set 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 daemonize. Default value is argv[0].

* 2005-09-01 Juha Heinanen <jh@tutpro.com>
- auth: append_rpid_hf function can now be called from branch_route block.

* 2005-08-31 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: "drop" statement has special meaning in some route types (by default
  it's equivalent to "exit"):
    - BRANCH ROUTE - the request branch is discarded (not fwd);
    - ONREPLY ROUTE - if provisional reply (<200), it will be discarded (not
      fwd, not stored, but only timers updated)

* 2005-08-29 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: new internal core function for checking if a module function may or
  may be not called from a script route (based on route type); all route
  inclusions are followed, but avoiding potential loops.
- core: new command line parameter (-C) - similar to (-c), but additioanly
  force the above described checking. (-C implies -c)
- tm: t_was_cancelled() - says if the transaction was cancelled or
  not from the UAC side.
- tm: request fwd functions break if the transaction was already cancelled.
- cpl-c: CPL interpreter stop floowing the negative replies in proxy node if
  the INVITE was cancelled.

* 2005-08-29 Juha Heinanen <jh@tutpro.com>
- auth: append_rpid_hf function can now be called from branch_route block.

* 2005-08-26 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: new pseudo-variables:
    - $rP - transport protocol of RURI
    - $dd - dst_uri domain
    - $dp - dst_uri port
    - $dP - dst_uri transport protocol
- core: new core functions to manage next hop destination address (dst_uri)
    - setdsturi("uri") - set the value of dst_uri - the value of the parameter
      must be a valid sip uri
    - resetdsturi() - reset dst_uri
    - isdsturiset() - test if there is a dst_uri address set
- avpops: avp_write() and avp_pushto() can access and set dst_uri field (if
  set, this is the next hop, regardless of r-uri address) via '$duri'

* 2005-08-25 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: in failure route will be visible the RURI of the selected branch
  (so far was all the time the RURI of the first branch).
- core: dst_uri (per branch) available in branch route - it can be also changed

* 2005-08-24 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- tm: new function t_check_trans(): checks if the request belongs to a
  transacation as follows:
     - non-CANCEL;non-ACK - checks if the the transaction already exists
       (retransmission)
     - ACK - returns true if it's local e2e ACK; false otherwise;
     - CANCEL - returns true if the coresponding INVITE transaction exists.

* 2005-08-23 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: branch_route[] support added (route blocks to be executed for each
  branch)

* 2005-08-20 Juha Heinanen <jh@tutpro.com>
- lcr: added support for gateway prefixes.

* 2005-08-19 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- tm: local builded requests (CANCEL and ACK) use UAC info (instead of UAS)
  if FL_USE_UAC_TO or FL_USE_UAC_CSEQ flags are set
- uac: proper TO mangling in sequential request due FROM magling in initial
  request. By this, FROM mangling may be used in full automatic mode - all
  sequential replies and requests (in all directions) will be automatically
  fixed.

* 2005-08-15 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- tm: delayed CANCEL feature added - cancelled transactions will be marked to be
  able to cancel delayed replies
- tm: proper timer cancelation for cancelled T_UAC with no received reply;

* 2005-08-12 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- uac: encoded FROM URI stored in RR hdr and not in FROM anymore (uses new RR
  API)
- uac: some TM callbacks replaced with RR callback - more efficient (as
  selective)
- uac: XOR used to mix together old and new URI - reduces the result size.

* 2005-08-12 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: add_local_rport() - new function to add 'rport' parameter to the Via
  header generated by server (according to RFC3581, issue reported by Ranveer
  Kunal)

* 2005-08-11 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- rr: enhancements which opens the road for a dialog awareness support:
    - RR API added - exported functions:
      add_rr_param()
      check_route_param()
      is_direction()
      get_route_param()
      register_rrcb()
- rr: callbacks added - can be registered callbacks to be executed when local
  Route is found and processed.

* 2005-08-11 Klaus Darilion <klaus.mailinglists@pernau.at>
- postgres: reconnect to database server (patch from Michael Ulitskiy)
- lcr: URI scheme and transport protocol can now be specified for gateways
  (port from ser)
- lcr: allow usage of from_gw in reply routes
- misc: postgresqldb.sh - emulate proprietary mysql functions in postgres
  used by lcr module
- misc: sc (openserctl) - support for lcr module to add/show/delete GWs,
  routes. IP addresses can be entered in dotted quad format, support for URI
  scheme and transport parameter

* 2005-08-10 Daniel-Constantin Mierla <daniel@voice-system.ro>
- dispatcher: support for round robin distribution per process (alg=4)

* 2005-08-09 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: various resolver/dns related options can now be set from cfg (credits
  go to Andrei Pelinescu-Onciul):
    - dns_try-ipv6=yes|no
    - dns_retr_time= time(in s)
    - dns_retr_no = no.
    - dns_use_search_list=yes|no
    - dns_servers_no= no

* 2005-08-08 Daniel-Constantin Mierla <daniel@voice-system.ro>
- dispatcher: added a new flag parameter which can be used (for now) to
  select only the  username or the username, host and port when hashing
  after an uri
- dispatcher: improved uri hashing (password is ignored, port is used only
  if sip and port != 5060 or sips and port!=5061) (credits to Andrei
  Pelinescu-Onciul)
  
* 2005-08-07 Daniel-Constantin Mierla <daniel@voice-system.ro>
- avpops: flags for is_avp_set() to check if the value is number or string

* 2005-08-03 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: new pseudo-varibles: $au - auth username; $ar - auth realm

* 2005-08-01 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- rr: new function is_direction("upstream|downstream") to detect message flow
  direction
- rr: added Route generic parameter parser

* 2005-07-29 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- gen_ha1 renamed as openser_gen_ha1 at installation and packaging to avoid
  conflicts with SER packages (credits to Klaus Darilion)

* 2005-07-29 Elena-Ramona Modroiu <ramona@voice-system.ro>
- uac: pseudo-variables support in uac_replace_from()

* 2005-07-29 Daniel-Constantin Mierla <daniel@voice-system.ro>
- avpops: is_avp_set("name") to test if an avp exists
- avpops: allow hexadecimal format for integer values of avp_write(),
  avp_check() and avp_op() (to ease bitwise operations)

* 2005-07-26 Daniel-Constantin Mierla <daniel@voice-system.ro>
- avpops: db-related function can take the URI parameter from an AVP
- group: is_user_in() can take the URI parameter form an AVP

* 2005-07-26 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: added default onreply_route in config (port from ser)

* 2005-07-25 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: old 'break' removed, 'return' must be used from now on. 'break' is
  now valid only to end a 'case' block in a 'switch' statement

* 2005-07-14 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- nathelper: posibility of mangling the IP address of the SDP origin
  description (o=): via new flag "0x08" in fix_nated_sdp() and via new flag
  "o" in force_rtp_proxy()
- tm: tw_append definition migrated to pseudo-variables; now anything that
  can be defined via pseudo-variables (headers, avps, message and system info)
  can be also written to fifo/unix sockets

* 2005-07-14 Daniel-Constantin Mierla <daniel@voice-system.ro>
- usrloc: versioning policy changed and added checking of table version

* 2005-07-13 Elena-Ramona Modroiu <ramona@voice-system.ro>
- avpops: added avp_op() - for integer operations with avps
- avpops: avp_copy() can do now string-int and viceversa conversions
- avpops: more operators for avp_check()
- core: new signed-int to str and viceversa conversion functions

* 2005-07-13 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- acc: acc_extra definition migrated to pseudo-variables

* 2005-07-12 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: allow 'return' with no parameters, equivalent to 'return(1)' as
  replacement for 'break'

* 2005-07-12 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- nathelper: possibility to send natpings per user with OPTIONS messages
  (stateless)

* 2005-07-10 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: 'switch' statement in config file to test the returned code 'retcode'

* 2005-07-09 Daniel-Constantin Mierla <daniel@voice-system.ro>
- misc: added sc.dbtext - openserctl-like script for use with dbtext
  (contributed by Cesc Santasusana)

* 2005-07-08 Elena-Ramona Modroiu <ramona@voice-system.ro>
- textops: added support to chech method value against a list in is_method()
  (e.g., is_method("INVITE|CANCEL|BYE"))

* 2005-06-08 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- core: define in config.h for default radiusclient configuration file set to
  "/usr/local/etc/radiusclient-ng/radiusclient.conf"
- auth_radius, avp_radius: possibility to use STRING/ID name and STRING/NUMBER
  value in SIP-AVP
- auth_radius: backward compatibility with RPID RADIUS AVP dropped

* 2005-07-05 Elena-Ramona Modroiu <ramona@voice-system.ro>
- core: merged method types from parse_methods.c with msg_parser.c
- core: method type is cached in cseq header structure
- textops: new function is_method() to check the method value using types

* 2005-07-04 Daniel-Constantin Mierla <daniel@voice-system.ro>
- dispatcher: added new function ds_select_domain() which replaces the
  host:port in R-URI with selected destination address

* 2005-07-02 Daniel-Constantin Mierla <daniel@voice-system.ro>
- enum: support for compound NAPTRs and lookup of multiple service types with
  a single DNS lookup (patch by Klaus Darilion)

* 2005-06-30 Elena-Ramona Modroiu <ramona@voice-system.ro>
- avpops: new function avp_subst() to apply perl/sed-like subst to AVP

* 2005-06-29 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- acc: accounting failed transactions - failed transactions can be logged
  one by one marking them with a special flag

* 2005-06-28 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- acc: call leg accounting support -- proper CDR generation in case of forward
  and redirect on server.

* 2005-06-28 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: config 'mpath' parameter to specify the common path for modules
- core: config 'retcode' variable to check the code returned by last function
  executed

* 2005-06-27 Daniel-Constantin Mierla <daniel@voice-system.ro>
- textops: subst(), subst_uri() and subst_user() have support for
  pseudo-variables

* 2005-06-24 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- uac_redirect: new module for handling redirect replies (3xx) on server
  (written by Bogdan-Andrei Iancu).

* 2005-06-23 Daniel-Constantin Mierla <daniel@voice-system.ro>
- core: xlog specifiers moved in core and made availabe as pseudo-variables
- xlog: uses pseudo-variables to print log messages
- avpops: new method avp_printf() that prints a formatted string which can
  include pseudo-variables

* 2005-06-18 Daniel-Constantin Mierla <daniel@voice-system.ro>
- xlog: support for color printing using escape sequences (patch by
  iwolfsberger@gmx.net)

* 2005-06-17 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- avpops: support for dst_ip (patch by evan.borgstrom@ca.mci.com)

* 2005-06-17 Bogdan-Andrei Iancu <bogdan@voice-system.ro>
- lcr: imported module in the trunk (written by Juha Heinanen)
- uac: imported module in the trunk (written by Elena-Ramona Modroiu)
- core: added TLS support (by Cesc Santasusana, originaly written by
  Peter Griffiths)

====================== 2005-06-14 Release 0.9.4 ==============================

* 2005-06-14
 - Initial release of OpenSER (v0.9.4) spawned from SER branch 0.9.0
