0.5.10 ====== 01-Feb-2005: - Released 0.5.10 24-Jan-2005: - fix: Re-Invites may change remote IP address as well 08-Jan-2005: - include ./autogen.sh into distribution - fix: FreeBSD - libgnugetopt is optional library - feature: build support for Cygwin (by Mathias Wohlfarth) 01-Jan-2005: - fix: doc/Makefile.am, install part (by David Taylor) 30-Dec-2004: - feature: remote TCP logging facility 29-Dec-2004: - feature: Outbound proxies configurable per domain 08-Dec-2004: - make install will set siproxd_passwd.cfg to -rw----- 0.5.9 ===== 03-Nov-2004: - Released 0.5.9 31-Oct-2004: - fix: A negative response to an INVITE shall stop any associated initiated RTP streams 24-Oct-2004: - Default Expires timeout is now configurable. 23-Oct-2004: - fix: route_processing.c - when adding my record-route header, the 'lr' parameter was not dynamically allocated memory (possible crash when trying to free is) - up to 1000 characters per line in config file (was 120), some typos corrected (by Tero Pelander) - fix: various correction in Record-Route processing 13-Oct-2004: - utils.c: preparation for chroot() (consider syslog) 09-Oct-2004: - included startup script (by Guido Trentalancia) - siproxd.spec: create PID and registrations directories and install startup script 0.5.8 ===== 22-Sep-2004: - Released 0.5.8 05-Sep-2004: - Cross-provider calls (e.g. sipphone <-> FWD, with dial prefixes) did not work properly 04-Sep-2004: - more on Route headers 27-Aug-2004: - preliminary (and reduced) support for Route Headers 26-Aug-2004: - more DEBUG output 22-Aug-2004: - fix: secure_enviroment - set proper EGID (by Daniel Mueller) 19-Aug-2004: - fix: don't crash on missing Contact header during registration 18-Aug-2004: - reworked configure.in for FLI4L building 06-Jul-2004: - patch from Dan Weber: Open the password file for SIP accounts at startup, so we still have access after chroot()ing. PID filename can be given at command-line. - again: using a port number != 5060 27-Jun-2004: - fix: in some configurations incoming requests could be sent to a wrong port number. 0.5.7 ===== 24-Jun-2004: - Released 0.5.7 18-Jun-2004: - 2 fixes for using a port number != 5060 (by Miguel Angel) 13-Jun-2004: - fix: get_ip_by_host() and buffer allocation for reentrant gethostbyname_r() functions - if compiled for fli4l 2.0.x, don't use reentrant gethostbyname_r() - in some cases it fails reproduceably when running under fli4l (however, the same binary does behave properly under an old SUSE libc5 system) 12-Jun-2004: - use SIGUSR2 for dmalloc debugging (SIGUSR1 is occupied with old libc5 & threads) - reworked calling parameters for passing SIP data 11-Jun-2004: - silenced some MSN Messenger provoked WARNings 29-May-2004: - "determine next hop" also takes Route header into account (outgoing packets only, incoming can not have a proxy in between siproxd and the client anyway) 25-May-2004: - sip_utils.c:sip_del_myvia check for NULL list 24-May-2004: - included doc/sample_* to package 23-May-2004: - doc/: added configuration example for X-Lite 0.5.6 ===== 20-May-2004: - Released 0.5.6 - some cleanup in configure.in 14-May-2004: - FAQ update 16-May-2004: - INFO/WARN/ERROR are always logged to syslog, even if running in foreground (syslog still can be silenced using the silence_log config option) 09-May-2004: - Authentication headers: enquote Realm (linphone) - complain about empty values in config file - fli4l-uclibc: statically link against libpthread (as it seems to be not included in fli4l distribution) 02-May-2004: - better recognition of redirected incoming requests (like INVITES from sipgate.de - SIP URI points to the real wanted target but To: header only points to the initially wanted target before the redirection) - compiling on BSD (fwapi.c, custom_fw_module.c) 11-Apr-2004: - on termination, stop all active RTP streams 24-Apr-2004: - simplified SIP RX & TX routines 0.5.5 ===== 11-Apr-2004: - Released 0.5.5 9-Apr-2004: - SDP body: do rewrite 'o=' (originator) address, too - siproxd can be linked to a customer firewall control module (library) that will be called for each RTP stream that is started/stopped. 8-Apr-2004: - small FAQ updates 5-Apr-2004: - config file: don't complain on lines with only whitespaces - fix: Via branch calculation - security.c: increased max acceptable line length - security.c: prevent libosip2 to die with "out of memory" on some malformed headers 4-Apr-2004: - Realtime Scheduling for RTP proxy 3-Apr-2004: - fix: SDP 'c=' items in media part 2-Apr-2004: - PID file 31-Mar-2004: - accessctl.c: text correction in ERROR output 30-Mar-2004: - Again '*' Contact header in unREGISTER - new: tools/extract_sip.pl 26-Mar-2004: - SDP rewrite: properly handle 'c=' items in session *and* media part of SDP data. 22-Mar-2004: - deal with wildcard Contact header for unREGISTER - enhanced security tests to survive the PROTOS test 21-Mar-2004: - added ./autogen.sh - security_check_sip: check existence of mandatory headers 19-Mar-2004: - proxy_rewrite_invitation_body: check success of starting RTP relay before rewriting SDP body - proxy_rewrite_invitation_body: don't fail on Contact header with no user part. 18-Mar-2004: - security_check_sip: CSeq header must be present. 0.5.4 ===== 6-Mar-2004: - Released 0.5.4 - Some FAQ updates 21-Feb-2004: - Proxy Authorization: enclose strings with quotes and fixed an error that did not let REGISTER requests pass through to a 3rd party registrar. 17-Feb-2004: - Documentation spell corrections (patch from Luke Mewburn) 16-Feb-2004: - Hack for Grandstream SIP phones and SUBSCRIBE response 0.5.3 ===== 14-Feb-2004: - Released 0.5.3 - Removed superfluous backslashes for line continuation 11-Feb-2004: - Use same SIP port number for RX & TX (-> support symmetric SIP signalling) 7-Feb-2004: - Fix for local-UA to local-UA RTP proxying, symmetric RTP was not working. - logging routines now use a MUTEX to be thread safe. - RTP proxy: fixed a bug that could lead to a deadlock on very rapid HOLD/unHOLD sequences. 1-Feb-2004: - Added handling of Max-Forwards header - a detected via loop results in an 482 Loop detected 31-Jan-2004: - Allow 2 of my vias in header to let 2 UA's sitting behind the same siproxd have conversation together UA1 -->--\ > /-->--\ siproxd Registrar UA2 --<--/ < \--<--/ - Redone code for evaluation if a received packet is coming from the inbound or outbound network - RTP streams are now identified by call_id AND USERNAME of the contact header. This provides support for RTP proxying between 2 UAs sitting on the inbound network. -> Calls between local UAs going via siproxd should now work. UA1 -->--\ siproxd UA2 --<--/ - Rewriting of SUBSCRIBE messages should now work. - Removed obsolete prototypes from rtpproxy.h - If the RTP stream in one direction is found to be aborted (sendto() failure), also stop the stream for the opposite direction 0.5.2 ===== 31-Jan-2004: - Released 0.5.2 30-Jan-2004: - If RTP proxy is disabled, don't rewrite incomming SDP bodies (patch from Robert Högberg) 29-Jan-2004: - new doc/RFC3261_compliance.txt and comments in the code that refer to the RFC. 28-Jan-2004: - don't die on INVITE requests that include no Contact header - which is legal. (patch from Robert Högberg) - RTP proxy: don't try to forward empty RTP packets - renamed some variables of rtp_proxytable_t to make better sense (changed meaning in fullduplex RTP proxy) 27-Jan-2004: - added doc/KNOWN_BUGS - better branch parameter calculation (via header), now honors RFC3261 for stateless proxies (section 16.11) - SIP request: remove a Route header pointing to myself. This was an issue with Linphone 0.12.1. (patch from Robert Högberg). - removed IPCHAINS & IPTABLES (netfilter) proxy support - RTPPROXY correction: match RTP ports crosswise - use one single port (and socket) on each side (inbound/ outbound) to send and receive RTP traffic for every active stream (patch from Christof Meerwald). 22-Jan-2004: - ./configure option: --enable-static to build a completely statically linked executable - REGISTER honors the expires parameter of the contact header - Contact header of REGISTER response must be rewritten back to the local (true) URL 18-Jan-2004: - security_check_raw: size check: >= 16 bytes - at exit, check registration file to be writable - no WARNING if SIP user-agent header is not supplied. - Call logging: distinguish between In & Out - include branch parameter for via headers 0.5.1 ===== 22-Dec-2003: - Released 0.5.1 21-Dec-2003: - possibility to log call establishment 17-Dec-2003: - full duplex RTP proxy (many thanks to Chris Ross for his work on this). Up to now, only the RTP *Relay* has been tested (it works with KPhone, BudgeTone) - fix: SIP phones that allocate a random port for incomming SIP traffic should now work (like BudgeTone) - fix: some SIP phones do change the RTP port number during a session (like KPhone during HOLD/unHOLD) - textual corrections 15-Dec-2003: - use only even port numbers for RTP traffic 05-Dec-2003: - some changes & enhancements inspired by Chris Ross: * 183 Trying *may* contain SDP data * compare_url: now does compare the scheme, if a host is not resolveable, hostnames will be compared as strings 04-Dec-2003: - have registrations persistent across restarts of the daemon ('registration_file' config option) 29-Nov-2003: - some documentation & FAQ updates 0.5.0 ===== 26-Nov-2003: - released 0.5.0 - included preliminary support for IPTABLES (netfiler) based systems. 24-Nov-2003: - some fixes in sockbind() (FreeBSD) by Jeremy Shaw 23-Nov-2003: - got the gethostbyname() failure problem solved. (the resolver needs a shared lib that was tried to load AFTER chrooting...) 22-Nov-2003: - utils.c: use gethostbyname_r() in favor of gethostbyname - if available (siproxd uses threads!) - some small items & cleanup 19-Nov-2003: - Integrated a patch from Chris Ross: * have siproxd compile on Solaris and BSD/OS (more to come) * ./configure option --with-libosip-prefix * properly handle getopt_long()/getopt() 18-Nov-2003: - readconfig.c: include sysconfdir to the list of locations where siproxd will search for its config file 14-Nov-2003: - rtpproxy.c: sys/types.h needed for *BSD - tested: siproxd builds on FreeBSD 4.9 2-Nov-2003: - rtpproxy bugfix: On repetitive INVITES, the UDP media port could end up as -1 in the rewritten packet. 1-Nov-2003: - siproxd can use another outbound proxy (chaining) - Linux 2.4.x: siproxd with RTP relay could hang on termination (Thread termination). Fixed. 0.4.2 ===== 31-Oct-2003: - released 0.4.2 - Makefile: install siproxd to sbin (was bin) 24-Oct-2003: - SPEC file: included config files & more docu 19-Oct-2003: - included compiling support for DMALLOC debugging - fixed 2 memory leaks in proxy.c 0.4.1 ===== 12-Oct-2003: - released 0.4.1 12-Oct-2003: - Local registration of UAs was simply broken. Fixed. 0.4.0 ===== 11-Oct-2003: - released 0.4.0 08-Oct-2003: - rtpproxy_masq: fixed an issue in port allocation which lead to syslog entries from IPCHAINS complaining about 'already used connection' in the syslog. - added INFO() for incomming SIP Calls 04-Oct-2003: - Siproxd now also works as outbound proxy 'only', means that local UAs may register themselfes to a 3rd party registrar and use siproxd only as oubound proxy for masquerading purpose. - fixed some errors with callid handling (NULL pointers) 24-Sep-2003: - corrected the calling arguments of rtp_masq dummy routines (non IPCHAINS capable kernels) 22-Sep-2003: - '\0' termination of read() SIP telegram from line 0.3.6 ===== 22-Sep-2003: - released 0.3.6 - Code cleanup for RTP proxy 07-Sep-2003: - IPCHAINS based UDP tunneling (kernel masquerading) for RTP traffic (still experimental - but seems to work). To activate it, just set 'rtp_proxy_enable' equal 2 in the config. NOTE: siproxd must then be started by root (but dropping privileges works). 05-Sep-2003: - configure.in: test for pthreads before libosip (RH9.0) 0.3.5 ===== 30-Aug-2003: - released 0.3.5 20-Aug-2003: - security tests: responses may have empty SIP URI don't fail there. - increase size of call_id for RTP proxy table and include a size check. - rtpproxy: cleaned up some stuff with handling of FD's 0.3.4 ===== 05-Aug-2003: - released 0.3.4 31-Jul-2003: - now supports OSIP2 only (due to rather big changes in the API libosip -> libosip2). Compiles cleanly w/ libosip2 2.0.2 0.3.3 ===== 05-Jul-2003: - released 0.3.3 10-May-2003: - rewritten code in proxy_rewrite_invitation_body should now work (better) with multiple media streams 23-Apr-2003: - FAQ updates: RTP internals - more debug and error testing (MOREDEBUG) 6-Apr-2003: - build options for FLI4L builds (libc5 & uClibc) 0.3.2 ===== 5-Apr-2003: - released 0.3.2 4-Apr-2003: - introduced config option 'silence_log' - this allows to control how much logging is done to syslog - logging can even completely be switched off... 1-Apr-2003: - should now be able to deal with an outbound interface that is "temporary" DOWN (dial up internet access) if outbound IF is down, send back a response to inbound UAs "408 Request Timeout". - always log to syslog, also when running in foreground - changed some WARNINGS into DEBUG statements - re-arranged some code - rtpproxy: prepared for proper thread termination on exit - introduced short term caching for get_ip_by_ifname - fixed check for socket() return status - fixed bug in RTP Proxy (timeout of inactive streams) that produced a bunch of "ERROR:Error in close(0): Bad file descriptor" errors each time a RTP stream timed out - fixed daemonizing (libc5) - now it properly detaches 30-May-2003: - always log ERROR, WARNING and INFO to syslog (also if not running as daemon) - minor corrections on ERROR printouts 0.3.1 ===== - 29-May-2003: - released 0.3.1 - fix in configure.in for statically linking to libosip - fix in rewriting SIP messages, figure out proper destination if *not* rewriting the SIP URI - another NULL pointer related crash (no UA header present) 0.3.0 ===== - 29-May-2003: - released 0.3.0 - supports libosip2 (automatically detect osip1/osip2) - redone authentication - now should work with libosip2 libosip0.8.8 has a bug (fails in parse_msg) - 28-May-2003: - changes in rewriting SIP messages - not everything is blindly rewritten now (e.g. SUBSCRIBE is NOT) - fixed resource leak (sockets) in get_ip_by_ifname - 26-Mar-2003: - Bugfix: some potential NULL pointers passed to atoi() of optional fields in SIP message could lead to crash - 23-Mar-2003: - send 403 FORBIDDEN response to requests addressed to proxy itself (-> SUBSCRIBE bug) 0.2.8 ===== - 23-Mar-2003: - released 0.2.8 - made compile with uClibc (see doc/FLI4L_HOWTO.txt) - 22-Mar-2003: - made compile on SUSE5.3 (libc5) - added --enable-almost-static feature switch. This will build siproxd statically linked against libosip & pthreads (for Fli4l use) - 16-Mar-2003: - ERROR on unknown keywords in config file - introduced INFO logging 0.2.7 ===== - 15-Mar-2003: - released 0.2.7 - 9-Mar-2003: - replaced get_ip_by_ifname by simpler code (still to be *BSD tested) - removed old host-name based style for in/outbound interface configuration. This is only done via interface names - experimental: The host part of UA registration entries can be masqueraded (mask_host, masked_host config items) Siemens SIP phones seem to need this 'feature'. 0.2.6 ===== - 28-Jan-2003: - released 0.2.6 - New Feature: RTP proxy should be able to handle multiple media stream in the same session (audio + video) - 21-Jan-2003: - Bugfix: crash in compare_url (MSN Messenger issue) - 19-Jan-2003: - use of libosip-0.9.3 not possible yet - libosip fails in msg_setproxy_authenticate -> Bug in libosip? to be investigated! - give IP address in debug for 'received packet' - 'WARNING:proxy.c:202 request from/to unregistered UA' now includes sender and destination url - 17-Jan-2003: - OpenBSD: do not link against gnugetopt (Luke Renn) 0.2.5a ====== - 6-Dec-2002: - released 0.2.5a (major bugfixes) - Bugfix: interfaces on odd positions (the 1st , 3rd, 5th) have been skipped during the search (ip by interface) - Bugfix: MSN messenger 4.6 caused a segfault due to non supplied username in contact header during registration. (Credits to Dhiraj Bhuyan for the hint) Included additional tests in that area. - 4-Dec-2002: - fixed a major (but stupid) bug in check_vialoop. Siproxd wrongly claimed to have detected a loop... 0.2.4 ===== - 23-Nov-2002: - released 0.2.4 (feature enhancements) - BSD: resolved some compatibility issues (sscanf -> resulted in coredump when reading config file) should now build on *BSD (tested on FreeBSD 4.7) - inbound/outbound interfaces now can be specified by their interface name - this removes the need for a 'quasi' static IP and restarting siproxd at change of IP address. - 13-Nov-2002: - working on portability - goal is building on *BSD (feedback from Georg Schwarz) 0.2.3 ===== - 10-Nov-2002: - released 0.2.3 (minor fixes) - 9-Nov-2002: - make install also installs a sample password file (/etc/siproxd_passwd.cfg) - 8-Nov-2002: - string manipulations & data structures: better error handling on some places. - 2-Nov-2002: - 'make install' install now a template config file (/etc/siproxd.conf.example) - 24-Oct-2002: - small docu updates in README - 17-Oct-2002: - fix in ./configure - abort on missing libraries 0.2.2 ===== - 12-Oct-2002: - Released version 0.2.2 - '-d' commandline option supersedes config file setting of debug_level. - reworked return status from functions - now uses symbolic values and is more consistent - added individual user passwords for authentication 0.2.1 ===== - 28-Sep-2002: - Released version 0.2.1 - 27-Sep-2002: - first implementation of proxy authentication (for REGISTER) - 24-Sep-2002: - if daemonized, log to syslog - 22-Sep-2002: - added access list support for registration and incoming SIP packets. - 21-Sep-2002: - added RPM support (Spec File) 0.2.0 ===== - 17-Sep-2002: - Released version 0.2.0 - 15-Sep-2002: - added functionality to change user ID (drop privs) after startup (configurable) - added optional chroot jail (configurable) 0.1.3 ===== - 11-Sep-2002: - Fixed a error in the autoconf/automake part of the project. (scripts subdirectory was missing in the tar.gz archive. This resulted in an error during ./configure - complaining about non existent install-sh script) - startup is more silent - set initial debug level to 0 - 10-Sep-2002: - Some (yea, I know...) -minor- docu updates - 8-Sep-2002: - Masquerade Contact Headers of inbound clients (Contact header will be used by the remote SIP user agent to directly contact the local user agent - and bypassing the proxy. This of course will *not* work if the local user agent is located in a private IP range.) - Performance optimizations in RTP proxy - Bugfix: now masqueraded clients work with any SIP port (other than 5060). Before, incoming requests/responses where always sent to port 5060. 0.1.2 ===== - 7-Sep-2002: - Released version 0.1.2 - fixed registration concept (SIP Contact header is not a *must* to be present in every frame) - Experimental RTP proxying feature (using pthreads) - 26-Aug-2002: - Optimized DNS caching 0.1.1 ===== - 25-Aug-2002: - Released version 0.1.1 - can daemonize (detach and run in background) - do some DNS caching - 24-Aug-2002: - Imlemented support for a config file, - obsoletes siproxd_conf.h 0.1.0 ===== - 19-Aug-2002: - Released version 0.1.0