# $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 - 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 - install openser perl packages * 2007-03-09 Bogdan-Andrei Iancu - fixed several warnings regarding signed/unsigned ops, incomplet initializers for static data. -Based on a patch send by Eliot Gable for increasing the level of warning messages * 2007-03-09 Daniel-Constantin Mierla - 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 - play warn if fail over functions are used but required avp parameters are not set (reported by Helge Waastad) * 2007-03-09 Bastian Friedrich - Adding environment variables to Makefile to support cross compilation * 2007-03-08 Bogdan-Andrei Iancu - better install script for TLS etc * 2007-03-08 Anca Vamanu - changed the unique index for active_watchers table to to_tag reported by Aron Rosenberg; closes 1675964 * 2007-03-07 Bogdan-Andrei Iancu - the TLS tools for building rootCA and user certificates are now included in openserctl: * 2007-03-07 Bogdan-Andrei Iancu - fixed MIB installation when custom install prefix is used. Patch providede by Ovidiu Sas. Closes BUG 1675976 * 2007-03-07 Bogdan-Andrei Iancu - 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 - 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 - unique key (username,domain,contact) downgraded to index in location/aliases tables. Reported by Ovidiu Sas. * 2007-03-07 Bastian Friedrich - 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 - fixed module destroy - free the lock only if previously allocated. Closes BUG 1674501 * 2007-03-06 Bogdan-Andrei Iancu - 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 and ohad.levy@infineon.com for report and help in debugging this. * 2007-03-06 Daniel-Constantin Mierla - use full path to svnversion and test if it is executable * 2007-03-06 Daniel-Constantin Mierla - 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 - 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 * 2007-03-06 Bogdan-Andrei Iancu - 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 - Fixing getFullHeader function. Should work in reply context now, too. - Adding the requested "AddAVP" function. * 2007-03-05 Daniel-Constantin Mierla - AVP parameters of registrar module take full AVP name spec as value * 2007-03-05 Bogdan-Andrei Iancu - 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 - 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 - 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 - more consistency of avps parameters - timer avp parameters must be given in full PV format $avp(name) * 2007-03-02 Anca Vamanu - changed table definition for xcap_table- xcap column type changed to text * 2007-03-02 Bogdan-Andrei Iancu - 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 - fixed proto check for SIPS URIs. Credits go to Andrew T Gin - 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 - timeout value increased (how long the process will wait for the reply) * 2007-03-02 Bogdan-Andrei Iancu - 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 - include 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 - fixed memory deallocation at shutdown * 2007-02-28 Jesus Rodriguez - Update FreeBSD port files. This will not work for trunk but upgrade to 1.2 will be easier. * 2007-02-28 Daniel-Constantin Mierla - 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 - fixed TYPO when adding users - credits go to Helmut Kuper * 2007-02-28 Bogdan-Andrei Iancu - "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 - 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 - use generic (platform independent) install command * 2007-02-27 Jeffrey Magder - 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 - 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 - PVs are no sub-sections instead of items in the list to be indexed easily * 2007-02-27 Bogdan-Andrei Iancu - 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 - 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 - collapsed same functions with optional parameters in single entry (helps in indexing the functions, reported by Edson) * 2007-02-27 Bogdan-Andrei Iancu - 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 - internal variable CPU replaced with CPU_TYPE to avoid overlapping with system env. variables on some OSs. * 2007-02-27 Bogdan-Andrei Iancu - 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 - Fixing segfault when requesting empty URI struct members * 2007-02-26 Anca Vamanu - fixed adding event id in Notify (applied patch sent by Benny Prijono ) * 2007-02-26 Daniel-Constantin Mierla - moved pseudo-variables as section to get indexed in dokuwiki * 2007-02-26 Bastian Friedrich - Enforcing perl file initialization to enable global variables to be initialized * 2007-02-24 Bogdan-Andrei Iancu 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 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 - 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 - patch to assist in cross-compilation. Thanks go to Ovidiu Sas (osas) for the patch. * 2007-02-22 Bogdan-Andrei Iancu - 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 - 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 - 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 * 2007-02-21 Bogdan-Andrei Iancu - 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 - 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 - 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 . Closes BUG 1658796. * 2007-02-21 Daniel-Constantin Mierla - add date header (patch by Aron Rosenberg) - closes (1664766) * 2007-02-21 Juha Heinanen - 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 - 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 -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 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 - 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 . * 2007-02-19 Bogdan-Andrei Iancu - bug fixed in MI function "dlg_list" when printing the TO tag. * 2007-02-19 Daniel-Constantin Mierla - 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 - 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 - Removing unnecessary logs; adding DESTROY handler to prevent perl warnings * 2007-02-19 Anca Vamanu - corrected formatting in a reply message (reported by Helge Waastad) * 2007-02-16 Bogdan-Andrei Iancu - small timer bug fixed - fixed warnings in EXTRA_DEBUG * 2007-02-16 Jeffrey Magder 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 - 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 - handling error case for escape functions (reported by Dan Cristian Bogos) * 2007-02-16 Bogdan-Andrei Iancu - 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 - 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 - proper handling of retransmissions: - remove some obsolete TM script functions: t_lookup_request(), t_retransmit_reply() * 2007-02-15 Daniel-Constantin Mierla - 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 - use -n in tail for last line (reported by Ovidiu Sas, part of #1656081) * 2007-02-15 Daniel-Constantin Mierla - moved initialization of variable after declaration to comply with C - documentation alignment to common format (reported by Edson) * 2007-02-14 Anca Vamanu - 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 - correct order filling of avp parameters for exec_avp (reported by vabdulla) - closes 1657899 * 2007-02-14 Anca Vamanu - 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 - 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 - improved the mecanism of sending Notify with presence on callback for Notify with winfo * 2007-02-14 Cesc Santasusana 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 - fixed include lib hdr files - original error was triggered by a typo in the makefile Reported by Helge Waastad * 2007-02-14 Anca Vamanu - corrected xcap_xml table definition(reported by Helge Waastad ) * 2007-02-13 Juha Heinanen - Added missing strip count to lcr_dump. - ip_addr2a is now used to convert gw IP address to ASCII. * 2007-02-13 Klaus Darilion - fixed SQL definition: postgresql does not allow specifying the resolution of int: mysql: int(11) postgresql: int * 2007-02-13 Bogdan-Andrei Iancu - 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 - 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 - fixed checking with null-value PV - 'null' keyword introduced * 2007-02-13 Klaus Darilion - fix compilation bug (introduced by $SYSBASE patches) * 2007-02-13 Daniel-Constantin Mierla - 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 * Replaced sprintf and scanf with more efficient calls. * Added more checks on strip count. * 2007-02-12 Bogdan-Andrei Iancu - 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 - 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 - usleep() replaced with the portable sleep_us (internally defined) * 2007-02-12 Daniel-Constantin Mierla - 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 - 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 . * 2007-02-10 Juha Heinanen * 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 - auth_radius is now using new parse_from_uri and parse_to_uri functions. * 2007-02-09 Daniel-Constantin Mierla - check for null values before comparing script variables * 2007-02-09 Bogdan-Andrei Iancu - allowed AVPOPS functions to be used from onreply route * 2007-02-09 Bogdan-Andrei Iancu - 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 - 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 - 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 - fixed displaying scrolling during monitoring - redue the number of listed items to fit to a 24 lines screen * 2007-02-08 Daniel-Constantin Mierla - reset parsed_uri_ok when new_uri changes value - reset parsed_uri_ok for on_missed event * 2007-02-08 Bogdan-Andrei Iancu - 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 - Made environment variable names consistent with the ones used by openserctl * 2007-02-08 Bogdan-Andrei Iancu - 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 * 2007-02-07 Bogdan-Andrei Iancu - fixed the append_branch() logic Closes BUG 1653952. * 2007-02-07 Bogdan-Andrei Iancu - fixed restoring of path string after processing branches * 2005-02-07 Dan Pascu - Simplified getting the error output to prevent certain shells from chocking on the command. * 2007-02-06 Klaus Darilion - added description of return value of avp_db_load ( (c) Daniel ) * 2007-02-06 Bogdan-Andrei Iancu - 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 - Fix [1653350] bug reported for Scalable SIP server project in SourceForge. Please check OpenSER tracker for details. * 2007-02-06 Bogdan-Andrei Iancu - fixed compiling with EXTRA_DEBUG. Reported by Ovidiu Sas. Closes BUG 1653366. * 2007-02-06 Bogdan-Andrei Iancu - fixed line counting when using unescaped CR in quoted strings. Closes 1495359. * 2007-02-06 Klaus Darilion - 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 - added xcap_table parameter (closes 1645499) - 'user' column renamed in 'username' (closes 1645475 and relates to 1652302) * 2007-02-05 Bogdan-Andrei Iancu - "dereferencing type-punned pointer will break strict-aliasing rules" warnings fixed by doing casts via commonly accepted void*. * 2007-02-05 Bogdan-Andrei Iancu - 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 - sl api definitions * 2007-02-05 Bogdan-Andrei Iancu - 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 - 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 - 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 - 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 - 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 - dev version status changed to pre (pre-release) - devel is closed for 1.2.0 * 2007-02-03 Daniel-Constantin Mierla - new transformation {s.int} return int value from a string-represented number * 2007-02-02 Bogdan-Andrei Iancu - 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 - 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 - 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 - fixed bug in pre-3261 matching of spiralling 200-ACKs. * 2007-01-31 Daniel-Constantin Mierla - proper translation of parsed_uri for To/From headers (reported by Norman Brandiger) * 2007-01-30 Bogdan-Andrei Iancu 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 - fixed bug in printing the statsu (A or I) in ds_list MI command Reported by Helge Waastad - fixed bug in cloning the hostent struct in shm. Reported by Norman Brandinger and Helge Waastad * 2007-01-29 Daniel-Constantin Mierla - 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 - script variables are introduced having the name format $var(name) * 2007-01-26 Klaus Darilion - 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 - DNS based failover added (according to RFC3263) * 2007-01-24 Juha Heinanen - Removed db_mode module parameter. * 2007-01-23 Elena-Ramona Modroiu - cache update bug fixed (reported by Francesco Castellano) * 2007-01-23 Bogdan-Andrei Iancu - bug fixed in MI list_dialogs - incorrect value was used for timeout. Credits go to Ben Smithurst - 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 - 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 - 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 - fix for dynamic names of pseudo-variables when was an AVP with string name (reported by ) - 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 - 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 - 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 - 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 - 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 - config scripts updated to reflect latest changes (mainly FIFO related) * 2007-01-14 Daniel-Constantin Mierla - added function to escape special characters * 2007-01-12 Bogdan-Andrei Iancu - old fifo impl removed * 2007-01-12 Bogdan-Andrei Iancu - all openser tables have an auto-increment id column as primary key Closes feature request 1611616. * 2007-01-12 Julien Blache - Fix sed substitution to properly remove the PATH variable in the openserctl, openser_mysql and openser_postgresql scripts. * 2007-01-12 Bogdan-Andrei Iancu - fixed memory leak in case of failing to send an already constructed buffer reply. Credits go to Andrew Newton * 2007-01-11 Bogdan-Andrei Iancu - sql table format update to use an id column as PK - SQL creation script listed in the documentation * 2007-01-11 Bogdan-Andrei Iancu - fixed bug in ACK matching when a call spirals on openser. Reported by Christian Schlatter * 2007-01-11 Bogdan-Andrei Iancu - new core option "auto_aliases" * 2007-01-10 Elena-Ramona Modroiu - updated documentation; new exported parameters, functions, mi commands and statistics * 2007-01-09 Daniel-Constantin Mierla - introduction of a new route type: error_route * 2007-01-09 Bogdan-Andrei Iancu - re-design of flags in openser to allow a better flexibility and extensibility * 2007-01-02 Di-Shi Sun - Fix ospCopyStrToBuffer bug. - Add call id length check in ospValidateHeader. * 2006-12-25 Juha Heinanen - 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 - Added SEAS module. * 2006-12-22 Bogdan-Andrei Iancu - socket description includes all info (protocol too). Based on the modified patch from Ovidiu Sas (Soma Networks). Closes 1614047. * 2006-12-13 Bastian Friedrich - Fixing Makefile to use MOD_CFLAGS while compiling openserxs.c. Needed on x86-64 * 2006-12-21 Daniel-Constantin Mierla - 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 - initial version of xmpp API to be used for SIMPLE-XMPP presence translation (not tested yet) * 2006-12-19 Juha Heinanen - 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 -Initial release of the SNMPStats OpenSER module. * 2006-12-18 Juha Heinanen - Added pseudo variable $pn for accessing display name of P-Preferred-Identity header. * 2006-12-18 Daniel-Constantin Mierla - 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 - 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 - applied patch from Norman Brandinger to update the reply reason phrase accordingly to http://www.iana.org/assignments/sip-parameters Closes 1615280. * 2006-12-18 Anca Vamanu - extended primary key for table "xcap_xml" (reported by Mircea Amarascu) * 2006-12-16 Juha Heinanen - 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 - applied patch from Ovidiu Sas to fix socket description string on arch with no BE (16-bit atomic element) - like ARM Closes 1614192. * 2006-12-15 Juha Heinanen - Added parsing of P-Preferred-Identity header (RFC 3325). * 2006-12-15 Bogdan-Andrei Iancu - 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 - 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 - 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 - 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 - New perl method: getBody() * 2006-12-12 Bogdan-Andrei Iancu - applied patch from Elias Baixas ; 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 - applied patch from Jeffrey Magder : - 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 - 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 - Initial import of Perl module. * 2006-12-07 Bogdan-Andrei Iancu - 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 - 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 - applied patch from Jeffrey Magder - 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 - 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 . * 2006-12-07 Anca Vamanu - corrected action sequence to enable sending Notify with basic status closed when Publish expires * 2006-12-06 Bogdan-Andrei Iancu - new PV added to make available the reply code in all types of routes $T_reply_code * 2006-12-06 Bogdan-Andrei Iancu - 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 - 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 - set default not to send usrloc publish * 2006-12-06 Bogdan-Andrei Iancu - 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 - TLS certificate validation is now on by default - docs updated * 2006-12-06 Bogdan-Andrei Iancu - parsing bug fixed: the "stale" field in digest challange hdr may take not quoted value (as well as quoted) Credits go to Christophe Irles * 2006-12-06 Klaus Darilion - 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 - added verification in callback function if reply message is FAKED_REPLY * 2006-12-05 Bogdan-Andrei Iancu - 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 .Thanks!! Closes bug 1605410. * 2006-12-05 Bogdan-Andrei Iancu - fixed credentials calculation for admin user in serweb section Reported by Klaus Darilion * 2006-12-05 Bogdan-Andrei Iancu - 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 -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 * Added subnet support to allow_address functions. * 2006-12-05 Bogdan-Andrei Iancu - docs updated (module dependencies) Reported by Nicolas Palix - 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 - 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 - 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 - initial upload of a XMLRPC implementation for MI interface. * 2006-11-29 Dan Pascu - 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 - bug fixed: improper free of linked list (first delete and later iterate) based on a patch submitted by Jan Andres for SER * 2006-11-29 Bogdan-Andrei Iancu - added BLOB support in flatstore - useful if you want to used along siptrace module. Based on an original patch sent by Francisco Olarte Sanz * 2006-11-29 Bogdan-Andrei Iancu - 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 - Merge the changes in rel_1_1_0 to CVS HEAD on 11/28/06. * 2006-11-28 Daniel-Constantin Mierla - 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 - local generated requests will include a Content-Length header all the time. reported by Chris Robson * 2006-11-28 Daniel-Constantin Mierla - 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 - added missing documentation of traced_user_avp - ability to disable usage of traced_user_avp * 2006-11-27 Bogdan-Andrei Iancu - detailed description of loose_route() function added to docs. Credits go to Klaus Darilion - 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 - 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 - bug fixed: User-Agent was not reloaded from DB during restart. Closes bug 1602339. * 2006-11-24 Daniel-Constantin Mierla -added new field for pseudo-variables in exported interface * 2006-11-23 Daniel-Constantin Mierla - 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 - 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 - fromip for outbound proxy-ed requests set to local ip (credits to Dan Pascu) * 2006-11-22 Bogdan-Andrei Iancu - 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 - 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 - "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 - local function mi_get_mask() replaced with the new core function strno2int() * 2006-11-22 Bogdan-Andrei Iancu - 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 - 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 -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 - MI support added (existing FIFO functions migrated to MI) * 2006-11-16 Bogdan-Andrei Iancu - 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 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 * 2006-11-13 Bogdan-Andrei Iancu 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 * 2006-11-08 Norman Brandinger - 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 - 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 - 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 - 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 * 2006-11-01 Bogdan-Andrei Iancu - avp_radius module added to openser-radius-modules debian package * 2006-11-01 Daniel-Constantin Mierla - fix of usrloc callbaks: invoke only if the type of event matches with callback function type * 2006-10-31 Bogdan-Andrei Iancu - fixed some low probability races. Patch sent by Andrei Pelinescu-Onciul * 2006-10-31 Bogdan-Andrei Iancu Major rewritting of postgres module, contributed by Norman Brandinger : 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 - send NOTIFY after each SUBSCRIBE(reported by Franz Edler) - don't save when initial SUBSCRIBE has expires 0 * 2006-10-30 Bogdan-Andrei Iancu -DB name updated - reported by Doug Meredith * 2006-10-27 Bogdan-Andrei Iancu - 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 . * 2006-10-27 Bogdan-Andrei Iancu - ACC DB aligned to latest changes in ACC module - from_uri, to_uri and cseq columns were dropped. * 2006-10-27 Bogdan-Andrei Iancu - 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 - 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 - 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 - 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 - Fix asm constraint to avoid register overlap on arm Credits got to Julien Blache * 2006-10-19 Bogdan-Andrei Iancu - table "address" added, thanks to Norman Brandinger * 2006-10-19 Bogdan-Andrei Iancu - 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 - Changed two addf_mi_node_child calls to add_mi_node_child calls. * 2006-10-19 Juha Heinanen - Introduced mi interface to permissions module. * 2006-10-17 Juha Heinanen - Example now uses avpops instead of textops. * 2006-10-13 Anca Vamanu - 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 - ability to get To tag from avp - dev version increased * 2006-10-06 Bogdan-Andrei Iancu - 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 - Made the sst module compliant with the RFC. and now the 422 reply will carry the Min-SE: header. * 2006-10-10 Ron Winacott - Updated the documents to match the new API/RFC compliant functionality. * 2006-10-09 Elena-Ramona Modroiu - bug fix reported by Julien Blache * 2006-10-09 Anca Vamanu - 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 -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 - "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 - 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 - the MI functions accepts the flag bitmap in hexa format also * 2006-10-05 Juha Heinanen - Removed unused r_uri column of silo table. - Added into silo table an index on ($USERNAME, domain). * 2006-10-05 Juha Heinanen - 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 - 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 for the help to debug this. * 2006-10-02 Bogdan-Andrei Iancu - 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 - 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 - 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 - A faster implementation is_domain_local() that accepts only a pseudo variable as argument. * 2006-09-30 Bogdan-Andrei Iancu - fixed compile error when SQL_ACC is nod enabled Reported by Juha Heinanen * 2006-09-30 Dan Pascu - 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 - removed special characters used by 'show create', they conflict with shell special quotes (reported by Rafael J. Risco) * 2006-09-28 Dan Pascu -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 - user2uid() and group2gid() moved from main.c to ut.c to be also used by modules. * 2006-09-25 Daniel-Constantin Mierla - 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 -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 - Add support for extended Secure RTP Profile for RTCP. (ported from ser) * 2006-09-21 Bogdan-Andrei Iancu - 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 - 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 - New module uploaded: SIP Session Timer (sst) Provided by Ron Winacott 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 - 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 - 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 - clean utils/openserunix as well * 2006-09-17 Juha Heinanen - Added 'id' auto-increment primary key to 'address' table. * 2006-09-14 Bogdan-Andrei Iancu - example scripts updated (break replaced with exit) Reported by Ruchir Brahmbhatt * 2006-09-13 Daniel-Constantin Mierla - 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 - more flexible implementation for multi-leg accounting - code cleanup for low level functions: * 2006-09-07 Bogdan-Andrei Iancu - harmless bug fixed - it was triggering some integrity tests in EXTRA_DEBUG. Reported by Mark Kent * 2006-09-06 Bogdan-Andrei Iancu - 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 - 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 - build the sibling linked list also for the VIA hdrs * 2006-09-02 Juha Heinanen - Introduced set_address_group, allow_address, and allow_source_address permission module script functions and address database table. * 2006-08-24 Bogdan-Andrei Iancu - 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 . Closes 1545219. * 2006-08-15 Daniel-Constantin Mierla - 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 - maddr is automatically handled by RR processing (initial patch by graphy, Simon Morvan) * 2006-08-12 Julien Blache - Adding Debian packaging for Debian 3.1 Sarge. * 2006-08-09 Daniel-Constantin Mierla - 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 - Use get_from/to/rpid instead of accessing date directly. * 2006-08-03 Daniel-Constantin Mierla - applied patch for better get_result() handling from Norman Brandiger * 2006-08-03 Bogdan-Andrei Iancu - flag index 0 enabled reported by Tavis P - 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 - 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 - got rid of the "-i" sed parameter since it is not available on all OS. Credits go to Wolfgang Hottgenroth * 2006-07-27 Bogdan-Andrei Iancu - applied patch from Norman Brandinger : maps the postgres data type BPCHAROID as intternal string. Closes patch 1529340. * 2006-07-27 Bogdan-Andrei Iancu - fixed memory leak and double free. Thanks to Marcos Hack for debugging. * 2006-07-23 Daniel-Constantin Mierla - 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 - Introduced is_uri_user_e164() function. * 2006-07-17 Di-Shi Sun - 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 - Replaced allow_refer_to functions with more general purpose allow_uri function. * 2006-07-17 Klaus Darilion - fixed typo in TLS documentation - updated TLS settings in default openser.cfg to the new TLS syntax * 2006-07-17 Daniel-Constantin Mierla - 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 - removed double definition of "usr_preferences_types" table and added missing definition of "active_sessions" table Reported by Klaus Darilion - 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 * 2006-07-14 Bogdan-Andrei Iancu - Applied path for correcting syntax from MySQL to Postgres (credits go to Norman Brandinger ). * 2006-07-14 Daniel-Constantin Mierla - 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 - 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 - 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 - packaging: added new openserctl * 2006-07-06 Bogdan-Andrei Iancu - 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 - avpops: is_avp_set() handles properly the index of AVPs (reported by Norman Brandinger) * 2006-07-05 Bogdan-Andrei Iancu - 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 - scripts: new version of openserctl * 2006-07-04 Bogdan-Andrei Iancu - core: at shutdown, do memory cleanup for extra iteams. * 2006-07-03 Daniel-Constantin Mierla - pdt: avoid resynchronization when other worker processes still have to do it and diff list is not freed * 2006-07-03 Bogdan-Andrei Iancu - 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 - core: check the type of table_version result (reported by Ryan (Matty )) - mysql: free mysql connection from pool only when found * 2006-06-30 Bogdan-Andrei Iancu - packaging: various packaging control files updated * 2006-06-29 Bogdan-Andrei Iancu - pike: bug fixed - due bogus flag testing, race between timer and ip tree could occurred * 2006-06-27 Bogdan-Andrei Iancu - 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 - 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 - permissions: fixed crash on permissions module when reload_trusted() failed. - permissions: fixed clenup on error in init_trusted() Reported by Raymond Chen * 2006-06-26 Andreas Granig - path: fixed mem-leak in parsing route-params. * 2006-06-26 Bogdan-Andrei Iancu - core: fixed small potential memory leak in SIP resolver. Reported by Douglas Garstang - acc: fixed bug - the internal and script sets of flags whre swapped when using the FL_REQ_UPSTREAM flag Credits go to razvan radu . * 2006-06-23 Andreas Granig - core: fixed two mem-leaks in Path-handling. * 2006-06-22 Bogdan-Andrei Iancu - acc: bug fixed: do not install FAILURE callback for CANCELs since TM does not allows it. Reported by Sumeet Gupta - acc: small optimization: install only really needed TM callbacks (for missed calls and ACK reports) Suggested by Juha Heinanen * 2006-06-21 Bogdan-Andrei Iancu - core: fixed computation of VIA branch param for end2end ACK * 2006-06-21 Daniel-Constantin Mierla - scripts: added manual page for openserctl * 2006-06-20 Bogdan-Andrei Iancu - usrloc: memory leak fixed. Reported by Christian Schlatter * 2006-06-14 Elena-Ramona Modroiu - pdt: proper cleanup when server does not initialize * 2006-06-13 Bogdan-Andrei Iancu - 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 * 2006-06-09 Bogdan-Andrei Iancu - usrloc: fixed bug in fetching all contacts in db_mode=3 (DB_ONLY). Reported by Christian Schlatter * 2006-06-07 Bogdan-Andrei Iancu - acc: fixed bug in direction detection algorithm during accounting. Reported by Glenn Dalgliesh - gflags: functionality fix - added a new fifo function to be able to read the current bitmap of gflags. Reported by Helge Waastad - nathelper: fixed building of received uri when IPv6 is used. Credits go to Klaus Darilion * 2006-06-06 Daniel-Constantin Mierla - core: check for null passwords (on some OS strcmp crashes) - reported by Edgar Barbosa * 2006-06-05 Bogdan-Andrei Iancu - 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 - core: fixed init of default server and client tls domains * 2006-05-31 Bogdan-Andrei Iancu - 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 - 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 - 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" * 2006-05-29 Daniel-Constantin Mierla - dbtext: dbt_row_set_val() accepts DB_BITMAP (reported by Ovidiu Sas) * 2006-05-29 Bogdan-Andrei Iancu - avpops: memory leak fixed in avp_raw_query() Credits go to John Riordan - 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 . - 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 for troubleshooting the problem. * 2006-05-26 Juha Heinanen - lcr: if R-URI userpart becomes empty, @ sign is not included in R-URI. * 2006-05-25 Bogdan-Andrei Iancu - postgres: bug fixed - postgres may return a row without a column value, so we need to double check it. Credits go to Arve Rasmussen - auth_db: module accepts DB_STR type for credentials (dbtext beckend returns only DB_STR and not DB_STRING). Reported by Ovidiu Sas . * 2006-05-24 Andreas Granig - core: heck for null-pointer before accessing Supported-flags. * 2006-05-24 Bogdan-Andrei Iancu - unixodbc: unixodbc patch wasteful memory fixes and reconnect, patch by Sumeet Gupta - 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 * 2006-05-22 Bogdan-Andrei Iancu - 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 - 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 - 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 - nathelper: applied patch for fixing the multiple stream handling in sequential requests. Patch by Laurent Schweizer * 2006-05-13 Bogdan-Andrei Iancu - rr: bug fixed in routing after a strict router Reported by Walter Schober * 2006-05-07 Daniel-Constantin Mierla - 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 - 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 - dialog: added newly introduced parameter when registering pseudo variables * 2006-05-03 Daniel-Constantin Mierla - 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 - core: allow to set parameter for callback functions of extra pseudo-variables * 2006-04-28 Juha Heinanen - 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 - tm: use new_uri instead of original uri in t_write(). Credits go to Juha Heinanen * 2006-04-21 Bogdan-Andrei Iancu - dialog: more dialog callbacks added: DLGCB_EARLY and DLGCB_RESPONSE_FWDED Patch provided by Ron Winacott * 2006-04-19 Bogdan-Andrei Iancu - dialog: callback types renamed to avoid overlapping with some TM defines. Reporded by Ron Winacott * 2006-04-14 Bogdan-Andrei Iancu - 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 * 2006-04-13 Bogdan-Andrei Iancu - 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 - avpops: fixed crash when using global flags in avp_pushto() (reported by Christian Schlatter) * 2006-04-11 Daniel-Constantin Mierla - avpops: fixed avp_db_load() when loading all avps of a type (reported by Andreas Granig) * 2006-04-10 Bogdan-Andrei Iancu - 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 - scripts: replaced gen_ha1 with md5sum * 2006-04-07 Daniel-Constantin Mierla - 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 - cpl-c: fixed bug in processing DROP / EXIT in branch route (due nested execution). Reported by Tavis P * 2006-03-29 Juha Heinanen - core: check_dig_cred() now checks that if digest username has domain, it must match realm. * 2006-03-29 Bogdan-Andrei Iancu - 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 * 2006-03-28 Bogdan-Andrei Iancu - 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 - tm: applied patch provided by Juha Heinanen : 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 * 2006-03-24 Dan Pascu - 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 - lcr: stripping was not done when next_gw() was called in FAILURE_ROUTE. * 2006-03-19 Juha Heinanen - 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 - textops: applied patch (modified) from Marc Haisenko : provides new function has_body([mime]) * 2006-03-15 Jesus Rodriguez - 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 - 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 . - core: bug fixed in extracting proper Route parameters after a strict router. Reported by Dan Pascu - 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 - core: added PUBLISH in the list of known methods * 2006-03-14 Bogdan-Andrei Iancu - 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 - osp: fixed several typos in usage.c * 2006-03-13 Bogdan-Andrei Iancu - 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 - 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 - tm: bug fixed in processing the failure handlers (callbacks and route); error cases were not properly handled. Reported by Matt Schulte * 2006-03-08 Bogdan-Andrei Iancu - 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 - 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 - core: fixed equal operator in comparison (reported by D. Hsueh) * 2006-03-07 Andreas Granig - registrar: fixed lazy-mode-handling if no Supported HF is present. * 2006-03-07 Bogdan-Andrei Iancu - 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 - osp: removed dependency of textops module - append_hf() replaced with a local function * 2006-03-03 Andreas Granig - 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 - registrar: support in registrar for loadbalancing using Path-HF with NAT-Support applied, patch by Andreas Granig - 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 - $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 - 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 . - 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 - 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 - 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 : 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 - core: applied patch for Session-Timer header parsing support; provided by Daniel Hsueh * 2006-02-24 Bogdan-Andrei Iancu - core: fixed parsing bug when spaces are present in non-quoted display name. reported by Raymond Chen - 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 - 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 - 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 - 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 - 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 - core: applied patch from Juha Heinanen : new pseudo-variables are available: $re -Remote-Party-ID header URI; $di -Diversion header URI * 2006-02-16 Bogdan-Andrei Iancu - 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 * 2006-02-15 Daniel-Constantin Mierla - 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 - 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 - 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 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 - fixed parse_contact return test - fixed test for return of parse_uri - fixed test for parse_headers * 2006-02-13 Daniel-Constantin Mierla - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - 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 - registrar: bug fixed - improper param passing - reported by Andreas Granig * 2006-01-31 Daniel-Constantin Mierla - 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 - tm: fixed inserting of Route after Via. - core: fixed bug in parsing Supported header (reported by Helge Waastad). * 2006-01-30 Elena-Ramona Modroiu - pdt: multi-domain support added * 2006-01-30 Bogdan-Andrei Iancu - 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 ) - 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 - 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 - registrar: fixed detection of lr-parameter (reported by Helge Waastad ) * 2006-01-26 Bogdan-Andrei Iancu - 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 * 2006-01-25 Bogdan-Andrei Iancu - core: fixed bug in to/from parser; display lenght was poorly computed in some cases. Reported by Lars Sundqvist and H Quintana - postgres: proper support form BLOB in postgres - patch submitted by Steen, Gerd . It makes possible the usage of cpl-c with postgre DB. * 2006-01-24 Bogdan-Andrei Iancu - 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 - domain: added is_domain_local(variable) * 2006-01-17 Bogdan-Andrei Iancu - 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 - lcr: allow prefix field to be NULL inside the lcr table (by Ovidiu Sas) * 2006-01-17 Daniel-Constantin Mierla - 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 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 - 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 - acc: direction detection and compensation for sequential requests (request from Lenir - acc: new module paramater "detect_direction" to enable/disable the above feature * 2006-01-12 Daniel-Constantin Mierla - 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 - 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 - 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 : The openser script will allow adding a temporary UrLoc entry if expires is specified: ul add * 2006-01-09 Daniel-Constantin Mierla - 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 - uac: place a space between the new dispaly name and the RURI - reported by "unplug " - tm: proper cloning of DIVERSION, RPID and REFER-TO headers - reported by Dan Pascu * 2006-01-09 Klaus Darilion - postgres: copied DB_BITMAP-to-string conversion from mysql module * 2006-01-06 Daniel-Constantin Mierla - core: renamed meminfo structure to avoid conflicts in different OSes * 2005-12-23 Bogdan-Andrei Iancu - registrar: fixed crash on register with contacts without "methods" parameter reported by Helge Waastad * 2005-12-22 Bogdan-Andrei Iancu - 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 - osp: changed the length of AVP keys to be a multiple of 8. * 2005-12-19 Bogdan-Andrei Iancu - 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 - core: serial forking support added in core (migrated from LCR module) * 2005-11-18 Daniel-Constantin Mierla - 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 - 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 - 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 - 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 - registrar: method filtering performed by lookup() * 2005-12-08 Bogdan-Andrei Iancu - 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 - core: methods lists can be empty * 2005-12-07 Marco Lorrai - unixodbc: return values of insert * 2005-12-07 Bogdan-Andrei Iancu - usrloc: supported methods are saved into usrloc - patch contributed by Juha Heinanen - 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 - core: complete support for Allow header (parsing and accessing) - part of the patch submitted by Juha Heinanen * 2005-12-06 Juha Heinanen - domain: Made calculation of domain hash case insensitive (thanks to Alex Boeger) * 2005-12-05 Bogdan-Andrei Iancu - tm: fixed the set/unset of avp list during callbacks - credits go to Cesc Santasusana * 2005-12-05 Juha Heinanen - lcr: added "strip_column" module parameter * 2005-12-05 Dan Pascu - mediaproxy: allow fixing of contacts independent of transport * 2005-12-01 Bogdan-Andrei Iancu - usrloc: display received URI with "opensertcl ul show" (patch from Klaus Darilion) - unixodbc: unixodbc * 2005-12-01 Daniel-Constantin Mierla - 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 - scripts: increased user_agent to varchar(255), 50 is to small * 2005-11-30 Bogdan-Andrei Iancu - 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 - 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 - 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 - scripts: changed acc columns src and dst to src_leg and dst_leg * 2005-11-25 Elena-Ramona Modroiu - 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 - 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 - lcr: strip Option patch submitted - provided by Bayan William Towfiq * 2005-11-22 Bogdan-Andrei Iancu - core: configurable TOS added (thanks to Andreas Granig) * 2005-11-22 Klaus Darilion - openserctl: applied patch from Ovidiu Sas to add "prefix" to gw table * 2005-11-21 Bogdan-Andrei Iancu - group: regular expression based group matching added * 2005-11-17 Bogdan-Andrei Iancu - 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 - 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 - core: global var msg_id renamed to avoid overlaping with similar var from modules * 2005-11-10 Bogdan-Andrei Iancu - 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 - core: proper fixup for switch statement * 2005-11-07 Dmitry Isakbayev - osp: new module * 2005-11-03 Bogdan-Andrei Iancu - 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 - 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 - 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 - core: fixed parsing of To/From headers when spaces are present in non-quoted display name * 2006-02-16 Bogdan-Andrei Iancu - 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 - core: fixed tests for return value of parse_uri() and parse_headers() * 2006-02-10 Bogdan-Andrei Iancu - 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 - 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 - 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 - nathelper: fix when rtp proxy goes down during rtpp_test VF query at startup * 2006-01-17 Daniel-Constantin Mierla - tm: t_relay*() returns 1 instead of 0 when forwarding ACK * 2006-01-16 Bogdan-Andrei Iancu - mysql: reconnect option is explicitly forced after mysql_real_connect() * 2006-01-12 Daniel-Constantin Mierla - core: fix for nested transport protocols in same call * 2006-01-09 Bogdan-Andrei Iancu - 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 - core: renamed meminfo structure to avoid conflicts in different OSes * 2005-12-29 Klaus Darilion - gflags: added documentation of fifo commands * 2005-12-14 Daniel-Constantin Mierla - msilo: fixed marking sent messages * 2005-12-05 Bogdan-Andrei Iancu - tm: fixed the set/unset of avp list during callbacks * 2005-12-05 Dan Pascu - mediaproxy: allow fixing of contacts independent of transport * 2005-11-28 Bogdan-Andrei Iancu - tm: fixed matching local ACKs versus e2e ACKs * 2005-11-28 Klaus Darilion - 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 - scripts: sc - backport of lcr gw prefix - scripts: sc - bacport of "ul rm" of a dedicated contact * 2005-11-22 Bogdan-Andrei Iancu - 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 - core: proper fixup for switch statement * 2005-10-31 Bogdan-Andrei Iancu - 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 * 2005-10-00 Daniel-Constantin Mierla * 2005-10-00 Elena-Ramona Modroiu - modules' documentation updated to list the route types where the exported functions can be used * 2005-09-15 Bogdan-Andrei Iancu - maxfwd: max_limit of MAX-FORWARDS cannot exceed 256 (as per RFC) * 2005-09-11 Klaus Darilion - 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 - 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 - tm: t_flush_flags() - flush to T (UAS side) only the global flags * 2005-09-07 Daniel-Constantin Mierla - core: return code is printed to a string as signed int (was printed unsigned until now) * 2005-09-06 Juha Heinanen - 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 - 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 - lcr: Request-URI user part can be modified between load_gws() and first next_gw() calls. * 2005-09-03 Elena-Ramona Modroiu - xlog: xlog() prints to level 'L_ERR' if the first parameter is omitted * 2005-09-02 Bogdan-Andrei Iancu - 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 - 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 - auth: append_rpid_hf function can now be called from branch_route block. * 2005-08-31 Bogdan-Andrei Iancu - 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 - 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 - auth: append_rpid_hf function can now be called from branch_route block. * 2005-08-26 Daniel-Constantin Mierla - 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 - 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 - 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 - core: branch_route[] support added (route blocks to be executed for each branch) * 2005-08-20 Juha Heinanen - lcr: added support for gateway prefixes. * 2005-08-19 Bogdan-Andrei Iancu - 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 - 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 - 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 - 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 - 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 - 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 - dispatcher: support for round robin distribution per process (alg=4) * 2005-08-09 Daniel-Constantin Mierla - 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 - 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 - avpops: flags for is_avp_set() to check if the value is number or string * 2005-08-03 Daniel-Constantin Mierla - core: new pseudo-varibles: $au - auth username; $ar - auth realm * 2005-08-01 Bogdan-Andrei Iancu - rr: new function is_direction("upstream|downstream") to detect message flow direction - rr: added Route generic parameter parser * 2005-07-29 Bogdan-Andrei Iancu - 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 - uac: pseudo-variables support in uac_replace_from() * 2005-07-29 Daniel-Constantin Mierla - 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 - 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 - core: added default onreply_route in config (port from ser) * 2005-07-25 Daniel-Constantin Mierla - 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 - 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 - usrloc: versioning policy changed and added checking of table version * 2005-07-13 Elena-Ramona Modroiu - 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 - acc: acc_extra definition migrated to pseudo-variables * 2005-07-12 Daniel-Constantin Mierla - core: allow 'return' with no parameters, equivalent to 'return(1)' as replacement for 'break' * 2005-07-12 Bogdan-Andrei Iancu - nathelper: possibility to send natpings per user with OPTIONS messages (stateless) * 2005-07-10 Daniel-Constantin Mierla - core: 'switch' statement in config file to test the returned code 'retcode' * 2005-07-09 Daniel-Constantin Mierla - misc: added sc.dbtext - openserctl-like script for use with dbtext (contributed by Cesc Santasusana) * 2005-07-08 Elena-Ramona Modroiu - 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 - 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 - 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 - 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 - 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 - avpops: new function avp_subst() to apply perl/sed-like subst to AVP * 2005-06-29 Bogdan-Andrei Iancu - acc: accounting failed transactions - failed transactions can be logged one by one marking them with a special flag * 2005-06-28 Bogdan-Andrei Iancu - acc: call leg accounting support -- proper CDR generation in case of forward and redirect on server. * 2005-06-28 Daniel-Constantin Mierla - 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 - textops: subst(), subst_uri() and subst_user() have support for pseudo-variables * 2005-06-24 Bogdan-Andrei Iancu - uac_redirect: new module for handling redirect replies (3xx) on server (written by Bogdan-Andrei Iancu). * 2005-06-23 Daniel-Constantin Mierla - 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 - xlog: support for color printing using escape sequences (patch by iwolfsberger@gmx.net) * 2005-06-17 Bogdan-Andrei Iancu - avpops: support for dst_ip (patch by evan.borgstrom@ca.mci.com) * 2005-06-17 Bogdan-Andrei Iancu - 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