diff --git a/ChangeLog b/ChangeLog index 591d9ec..c1a5cf7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,6 @@ 0.5.5 ===== - 11-Mar-2004: - Released 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 diff --git a/RELNOTES b/RELNOTES index 8c92d09..322b0b1 100644 --- a/RELNOTES +++ b/RELNOTES @@ -2,8 +2,13 @@ Release Notes for siproxd-0.5.5 =============================== Major changes since 0.5.4: - - - - + - several fixes in the SDP media rewriting part + - use realtime scheduling for RTP proxy thread + - PID file + - custom firewall control module: siproxd can be linked against + custom library that may perform specific actions on start/stop + of RTP streams (dynamically reconfigure firewall settings) + - a number of enhancement in security checks General Overview: - SIP (RFC3261) Proxy for SIP based softphones hidden behind a @@ -40,26 +45,29 @@ Requirements: - libosip2 Currently tested on: -- Redhat 6.0 (Kernel 2.2.x, Glibc) -- Redhat 7.2 (Kernel 2.4.x, Glibc) -- SUSE 5.3 (kernel 2.0.x, libc5) -- Redhat 7.2 (build against uClibc) -- SuSE 7.3 - Fedora Core1 (Kernel 2.4.x, Glibc) + This is my main development and testing environment. Other platforms + are not extensively tested by myself. Reported to build on: - FreeBSD 4.7-STABLE - OpenBSD 2.9 - Solaris2 -Reported interoperability (tested with softphones): +Reported interoperability with softphones: - Grandstream BudgeTone-100 series - Linphone (local and remote UA) (http://www.linphone.org) - Kphone (local and remote UA) (http://www.wirlab.net/kphone/) - MSN messenger 4.6 (remote and local UA) - X-Lite (Win XP Professional) - If you can confirm other SIP phones working, please drop me - a short note. + +Reported interoperability with service providers: + - Sipphone (http://www.sipphone.com) + - FWD (http://www.fwd.pulver.com) + + If you have siproxd successfully running with another SIP phone + and/or service provider, please drop me a short note so I can update + the list. Known bugs: There will be... diff --git a/src/accessctl.c b/src/accessctl.c index 3474029..31abff4 100644 --- a/src/accessctl.c +++ b/src/accessctl.c @@ -31,9 +31,7 @@ #include "siproxd.h" #include "log.h" -static char const ident[]="$Id: " __FILE__ ": " PACKAGE "-" VERSION "-" - BUILDSTR " $"; - +static char const ident[]="$Id$"; /* configuration storage */ struct siproxd_config configuration; diff --git a/src/auth.c b/src/auth.c index 3c06f02..343a23b 100644 --- a/src/auth.c +++ b/src/auth.c @@ -37,8 +37,7 @@ #include "siproxd.h" #include "log.h" -static char const ident[]="$Id: " __FILE__ ": " PACKAGE "-" VERSION "-" - BUILDSTR " $"; +static char const ident[]="$Id$"; /* configuration storage */ extern struct siproxd_config configuration; diff --git a/src/custom_fw_module.c b/src/custom_fw_module.c index 15799bb..3002b4c 100644 --- a/src/custom_fw_module.c +++ b/src/custom_fw_module.c @@ -54,6 +54,8 @@ #include "fwapi.h" #include "log.h" +static char const ident[]="$Id$"; + /* * some prototypes of util.c - so I don't have to suck in the * whole bunch of include files. You probably will not use this diff --git a/src/digcalc.h b/src/digcalc.h index db1914f..a67f009 100644 --- a/src/digcalc.h +++ b/src/digcalc.h @@ -1,6 +1,8 @@ /* TAKEN from rcf2617.txt */ +/* $Id$ */ + #ifndef _DIGCALC_H_ #define _DIGCALC_H_ diff --git a/src/fwapi.c b/src/fwapi.c index c440ece..7fab501 100644 --- a/src/fwapi.c +++ b/src/fwapi.c @@ -24,6 +24,8 @@ #include "fwapi.h" #include "log.h" +static char const ident[]="$Id$"; + int fwapi_start_rtp(int rtp_direction, struct in_addr local_ipaddr, int local_port, struct in_addr remote_ipaddr, int remote_port) { diff --git a/src/fwapi.h b/src/fwapi.h index 3535261..edf2961 100644 --- a/src/fwapi.h +++ b/src/fwapi.h @@ -19,6 +19,8 @@ */ +/* $Id$ */ + /* * constants */ diff --git a/src/log.c b/src/log.c index fb52ee0..a0989be 100644 --- a/src/log.c +++ b/src/log.c @@ -30,10 +30,7 @@ #include #include - -static char const ident[]="$Id: " __FILE__ ": " PACKAGE "-" VERSION "-" - BUILDSTR " $"; - +static char const ident[]="$Id$"; static int log_to_syslog=0; static int debug_pattern=0; diff --git a/src/log.h b/src/log.h index a5296c7..0ae9d42 100644 --- a/src/log.h +++ b/src/log.h @@ -18,6 +18,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/* $Id$ */ + #include #define DBCLASS_BABBLE 0x00000001 /* babble (like entering/leaving fnc)*/ diff --git a/src/proxy.c b/src/proxy.c index 6e70b51..e0491a9 100644 --- a/src/proxy.c +++ b/src/proxy.c @@ -35,9 +35,7 @@ #include "siproxd.h" #include "log.h" -static char const ident[]="$Id: " __FILE__ ": " PACKAGE "-" VERSION "-" - BUILDSTR " $"; - +static char const ident[]="$Id$"; /* configuration storage */ extern struct siproxd_config configuration; diff --git a/src/readconf.c b/src/readconf.c index f120064..e37e71c 100644 --- a/src/readconf.c +++ b/src/readconf.c @@ -32,8 +32,7 @@ #include "siproxd.h" #include "log.h" -static char const ident[]="$Id: " __FILE__ ": " PACKAGE "-" VERSION "-" - BUILDSTR " $"; +static char const ident[]="$Id$"; /* configuration storage */ extern struct siproxd_config configuration; diff --git a/src/register.c b/src/register.c index 8682690..ebd0271 100644 --- a/src/register.c +++ b/src/register.c @@ -35,8 +35,7 @@ #include "siproxd.h" #include "log.h" -static char const ident[]="$Id: " __FILE__ ": " PACKAGE "-" VERSION "-" - BUILDSTR " $"; +static char const ident[]="$Id$"; /* configuration storage */ extern struct siproxd_config configuration; diff --git a/src/rewrite_rules.h b/src/rewrite_rules.h index d8e840f..9cc3bab 100644 --- a/src/rewrite_rules.h +++ b/src/rewrite_rules.h @@ -19,6 +19,8 @@ */ +/* $Id$ */ + /* * SIP Method 'knowledg base' * This table tells siproxd what incomming requests (which methods) diff --git a/src/rtpproxy.c b/src/rtpproxy.c index 23de195..cf8dd99 100644 --- a/src/rtpproxy.c +++ b/src/rtpproxy.c @@ -29,9 +29,7 @@ #include "rtpproxy.h" #include "log.h" -static char const ident[]="$Id: " __FILE__ ": " PACKAGE "-" VERSION "-" - BUILDSTR " $"; - +static char const ident[]="$Id$"; /* configuration storage */ extern struct siproxd_config configuration; diff --git a/src/rtpproxy.h b/src/rtpproxy.h index 9a83ffd..acff858 100644 --- a/src/rtpproxy.h +++ b/src/rtpproxy.h @@ -18,6 +18,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/* $Id$ */ + #define CALLIDNUM_SIZE 256 #define CALLIDHOST_SIZE 32 #define CLIENT_ID_SIZE 128 diff --git a/src/rtpproxy_relay.c b/src/rtpproxy_relay.c index 0608b86..73a5762 100644 --- a/src/rtpproxy_relay.c +++ b/src/rtpproxy_relay.c @@ -42,9 +42,7 @@ #include "rtpproxy.h" #include "log.h" -static char const ident[]="$Id: " __FILE__ ": " PACKAGE "-" VERSION "-" - BUILDSTR " $"; - +static char const ident[]="$Id$"; /* configuration storage */ extern struct siproxd_config configuration; @@ -119,6 +117,7 @@ int rtp_relay_init( void ) { if (uid != euid) seteuid(0); if (geteuid()==0) { +#if defined(HAVE_SCHED_GET_PRIORITY_MAX) && defined(HAVE_SCHED_GET_PRIORITY_MIN) int pmin, pmax; /* place ourself at 1/3 of the available priority space */ pmin=sched_get_priority_min(SCHED_RR); @@ -126,6 +125,11 @@ int rtp_relay_init( void ) { schedparam.sched_priority=pmin+(pmax-pmin)/3; DEBUGC(DBCLASS_RTP,"pmin=%i, pmax=%i, using p=%i", pmin, pmax, schedparam.sched_priority); +#else + /* just taken a number out of thin air */ + schedparam.sched_priority=10; + DEBUGC(DBCLASS_RTP,"using p=%i", schedparam.sched_priority); +#endif sts=pthread_setschedparam(rtpproxy_tid, SCHED_RR, &schedparam); if (sts != 0) { ERROR("pthread_setschedparam failed: %s", strerror(errno)); diff --git a/src/security.c b/src/security.c index 60ed61a..66e497b 100644 --- a/src/security.c +++ b/src/security.c @@ -32,10 +32,7 @@ #include "siproxd.h" #include "log.h" - -static char const ident[]="$Id: " __FILE__ ": " PACKAGE "-" VERSION "-" - BUILDSTR " $"; - +static char const ident[]="$Id$"; /* * do security and integrity checks on the received packet diff --git a/src/sip_utils.c b/src/sip_utils.c index b60a981..edc3449 100644 --- a/src/sip_utils.c +++ b/src/sip_utils.c @@ -43,8 +43,8 @@ #include "rewrite_rules.h" #include "log.h" -static char const ident[]="$Id: " __FILE__ ": " PACKAGE "-" VERSION "-" - BUILDSTR " $"; +static char const ident[]="$Id$"; + /* configuration storage */ extern struct siproxd_config configuration; diff --git a/src/siproxd.c b/src/siproxd.c index c60f269..e480f84 100644 --- a/src/siproxd.c +++ b/src/siproxd.c @@ -38,9 +38,7 @@ #include "siproxd.h" #include "log.h" -static char const ident[]="$Id: " __FILE__ ": " PACKAGE "-" VERSION "-" - BUILDSTR " $"; - +static char const ident[]="$Id$"; /* configuration storage */ struct siproxd_config configuration; @@ -197,7 +195,7 @@ int main (int argc, char *argv[]) sts=unlink(configuration.pid_file); if ((sts==0) ||(errno == ENOENT)) { if ((pidfile=fopen(configuration.pid_file, "w"))) { - fprintf(pidfile,"%i\n",getpid()); + fprintf(pidfile,"%i\n",(int)getpid()); fclose(pidfile); } else { WARN("couldn't create new PID file: %s", strerror(errno)); diff --git a/src/siproxd.h b/src/siproxd.h index a51ed43..b5a4e3b 100644 --- a/src/siproxd.h +++ b/src/siproxd.h @@ -18,6 +18,8 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/* $Id$ */ + #ifdef DMALLOC #include #endif diff --git a/src/sock.c b/src/sock.c index d592b24..f207c42 100644 --- a/src/sock.c +++ b/src/sock.c @@ -38,8 +38,8 @@ #include "siproxd.h" #include "log.h" -static char const ident[]="$Id: " __FILE__ ": " PACKAGE "-" VERSION "-" - BUILDSTR " $"; +static char const ident[]="$Id$"; + /* configuration storage */ extern struct siproxd_config configuration; diff --git a/src/utils.c b/src/utils.c index cc9d345..578f2d3 100644 --- a/src/utils.c +++ b/src/utils.c @@ -44,8 +44,7 @@ #include "siproxd.h" #include "log.h" -static char const ident[]="$Id: " __FILE__ ": " PACKAGE "-" VERSION "-" - BUILDSTR " $"; +static char const ident[]="$Id$"; /* configuration storage */ extern struct siproxd_config configuration; @@ -350,7 +349,7 @@ int get_ip_by_ifname(char *ifname, struct in_addr *retaddr) { } /* for i */ /* not found in cache, go and get it */ - bzero(&ifr, sizeof(ifr)); + memset(&ifr, 0, sizeof(ifr)); if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) { ERROR("Error in socket: %s\n",strerror(errno));