1
0
Files
2016-11-30 09:03:17 +08:00

535 lines
26 KiB
Plaintext
Executable File
Raw Permalink Blame History

0.5.12
======
14-Apr-2006: - Released 0.5.12
8-Feb-2006: - replaced some malloc() by osip_malloc(),
(hopefully) fixed a sporadic crash in sdp_message_parse()
6-Feb-2006: - RTP timeouts on some PBX systems that include an video
stream, but the called UA has no video capability.
3-Feb-2006: - rewrite complete incoming request URI
31-Jan-2006: - CALLIDHOST_SIZE to 128: support longer hostnames
1-Jan-2006: - short-dial: use "302 Moved" to point to target
28-Dec-2005: - Call logging: display FROM & TO for calls.
26-Dec-2005: - Added a short-dial feature ("pi_shortdial_*" config options)
18-Dec-2005: - Grandstream "unregister at startup" works now
9-Oct-2005: - Expiration timeout is now taken from the REGISTER response
- fix: no audio with some UAs that do not include a
Contact header in ACK messages (which is compliant).
- static build works again
1-Oct-2005: - [1278537] Read proxy_auth_pwfile after config file is read
- [1278591] Proxy-Authenticate header not included in response
- process empty Contact header (means "query registrations")
(only supported for registrations at a remote server)
- handle multiple Contact headers (e.g. in REGISTER response)
14-Jul-2005: - allocate only even port numbers for RTP traffic
0.5.11
======
05-May-2005: - Released 0.5.11
29-Apr-2005: - fix: access lists with /32 did not work
21-Apr-2005: - fix: ACK may contain SDP body, process it
19-Apr-2005: - feature: DSCP value for RTP packets defineable (by Nick
Vermeer, Internet Express)
15-Apr-2005: - feature: auto-save registration table during operation
10-Apr-2005: - started DocBook documentation
3-Apr-2005: - fix: changing public IP address
27-Mar-2005: - feature: siproxd "in front of" a NAT router should work
20-Mar-2005: - when allocating local ports for RTP relaying, do this
in a round-robin way over the available port range.
1-Mar-2005: - working on running siproxd in front of a routing device
and NOT on the firewall itself.
19-Feb-2005: - more work on new libosip API
13-Feb-2005: - made compile with libosip2-2.2.0 (change of libosip2 API)
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