0.5.3 ===== 31-Jan-2004: - Allow 2 of my vias in header to let 2 UA's sitting behind the same siproxd to have conversation together UA1 -->--\ /-->--\ siproxd Registrar UA2 --<--/ \--<--/ - Redone code for evaluation if a received packet if coming from inbound or outbound interface - RTP stream 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 should now work. - Removed obsolete prototypes from rtpproxy.h - If the RTP stream in one direction is found to be stopped (sendto()) also stop the opposite direction 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 ===== 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 templace 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