- released 3.3.3
- rewritten rewrite_invite_request - more debug output in RTP proxy
This commit is contained in:
parent
bb1e4b63f0
commit
de208ab818
@ -1,5 +1,8 @@
|
||||
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)
|
||||
|
||||
15
README
15
README
@ -78,10 +78,15 @@ The easiest way to do this:
|
||||
3) reproduce the error
|
||||
4) include the debug.log in your error report.
|
||||
|
||||
If siproxd crashes (core dump), a stack backtrace usually is helpful to me:
|
||||
1) reproduce the crash -> core file
|
||||
2) use gdb to print the stack backtrace:
|
||||
$ gdb ./src/siproxd core
|
||||
If siproxd crashes, a stack backtrace usually is helpful to me:
|
||||
1) start siproxd in the debugger (daemonize set to 0):
|
||||
$ gdb ./src/siproxd
|
||||
(gdb) set args -c /path/to/siproxd.conf
|
||||
(gdb) run
|
||||
2) reproduce the crash
|
||||
3) use gdb to print the stack backtrace:
|
||||
(gdb) info thread
|
||||
...
|
||||
(gdb) bt
|
||||
#0 0x400ec9ee in __select ()
|
||||
#1 0xbffff6f8 in ?? ()
|
||||
@ -91,7 +96,7 @@ If siproxd crashes (core dump), a stack backtrace usually is helpful to me:
|
||||
rtld_fini=0x4000a350 <_dl_fini>, stack_end=0xbffffc4c)
|
||||
at ../sysdeps/generic/libc-start.c:78
|
||||
(gdb)
|
||||
|
||||
4) copy-paste all the output and include it in your problem report.
|
||||
|
||||
|
||||
WHAT SIPROXD DOES
|
||||
|
||||
660
RELNOTES
660
RELNOTES
@ -1,4 +1,4 @@
|
||||
Release Notes for siproxd-0.3.1
|
||||
Release Notes for siproxd-0.3.3
|
||||
===============================
|
||||
|
||||
- Fli4l OPT_SIP (still experimental) available, check
|
||||
@ -32,149 +32,6 @@ Requirements:
|
||||
- builds with libosip>0.8.8 / libosip2
|
||||
- prebuild binaries (RPMs) require libosip2 to be installed
|
||||
|
||||
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 (Fli4l use)
|
||||
- should run on others Linux distributions as well.
|
||||
- FreeBSD 4.7-STABLE (compilation)
|
||||
|
||||
Reported to build on:
|
||||
- OpenBSD 2.9
|
||||
|
||||
|
||||
Reported interoperability (tested with softphones):
|
||||
- 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)
|
||||
|
||||
Known bugs:
|
||||
- with kphone 3.1 & libosip-0.*, authentication does NOT work at
|
||||
all (due to 'parse error' in libosip) - use libosip2, this works fine
|
||||
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.3.1.tar.gz:
|
||||
md5sum for siproxd-0.3.1-1rh60.i386.rpm:
|
||||
md5sum for siproxd-0.3.1-1rh72.i386.rpm:
|
||||
md5sum for siproxd-0.3.1-1.src.rpm:
|
||||
|
||||
GnuPG signature for siproxd-0.3.0.tar.gz archive:
|
||||
|
||||
|
||||
|
||||
Release Notes for siproxd-0.3.0
|
||||
===============================
|
||||
|
||||
- Fli4l OPT_SIP (still experimental) available, check
|
||||
http://home.arcor.de/jsffm/fli4l/
|
||||
- supports Linux and FreeBSD (other BSD derivates not yet tested)
|
||||
- SIP (RFC3261) Proxy for SIP based softphones hidden behind a
|
||||
masquerading firewall
|
||||
- Includes an RTP data stream proxy for *incoming* audio data
|
||||
(outgoing RTP data should be handled by IP masquerading by the firewall)
|
||||
- Port range to be used for incoming RTP traffic is configurable
|
||||
(-> easy to set up apropriate firewall rules for incoming traffic)
|
||||
- RTP proxy can handle multiple RTP streams (eg. audio + video)
|
||||
within a single SIP session.
|
||||
- Multiple local users/hosts can be masqueraded simultaneously
|
||||
- Supports running in a chroot jail (configurable)
|
||||
- Supports changing user-ID after startup (if started as root)
|
||||
- All configuration done via one simple ascii configuration file
|
||||
- Proxy Authentication for registration of local clients (User Agents)
|
||||
with individual passwords for each user
|
||||
- Logging to syslog in daemon mode
|
||||
- Access control (IP based) for incoming traffic
|
||||
- RPM support (release includes SRC rpm and binary RPMS for Redhat 6.0, 7.2)
|
||||
- works with "dial-up" conenctions (dynamic IP addresses)
|
||||
- The host part of UA registration entries can be masqueraded
|
||||
(mask_host, masked_host config items) Siemens SIP phones seem to
|
||||
need this 'feature'.
|
||||
|
||||
Requirements:
|
||||
- pthreads
|
||||
- glibc2 / libc5 / uClibc
|
||||
- builds with libosip>0.8.8 / libosip2
|
||||
- prebuild binaries (RPMs) require libosip2 to be installed
|
||||
|
||||
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 (Fli4l use)
|
||||
- should run on others Linux distributions as well.
|
||||
- FreeBSD 4.7-STABLE (compilation)
|
||||
|
||||
Reported to build on:
|
||||
- OpenBSD 2.9
|
||||
|
||||
|
||||
Reported interoperability (tested with softphones):
|
||||
- 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)
|
||||
|
||||
Known bugs:
|
||||
- with kphone 3.1 & libosip-0.*, authentication does NOT work at
|
||||
all (due to 'parse error' in libosip) - use libosip2, this works fine
|
||||
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.3.0.tar.gz: 3a69d2a3a62c47e04f36dab2e5262fac
|
||||
md5sum for siproxd-0.3.0-1rh60.i386.rpm:d42b3a9ee72ff1a94f3243e01f3debb8
|
||||
md5sum for siproxd-0.3.0-1rh72.i386.rpm:fb44e9922d56e7f62a982fe9100fca9d
|
||||
md5sum for siproxd-0.3.0-1.src.rpm: 8f39f69b8d736816ce44b00c08c17ce7
|
||||
|
||||
GnuPG signature for siproxd-0.3.0.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.0.5 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAj6FibIACgkQPOYHDi42pIqAZQCeNzjNS4g885bGsjtbQF0MI5AY
|
||||
tGkAoMYgF+RBbVDgXO/9dc8Yf8iidvP+
|
||||
=0/eL
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
Release Notes for siproxd-0.2.8
|
||||
===============================
|
||||
|
||||
Note: using libosip-0.9.3, the proxy authentication does *NOT* work.
|
||||
Yet is is unclear to me if this is a bug in libosip or siproxd.
|
||||
libosip-0.8.8 works.
|
||||
|
||||
|
||||
- Fli4l OPT_SIP currently under development
|
||||
- supports Linux and FreeBSD (other BSD derivates not tested)
|
||||
- SIP (RFC3261) Proxy for SIP based softphones hidden behind a
|
||||
masquerading firewall
|
||||
- Includes an RTP data stream proxy for *incoming* audio data
|
||||
(outgoing RTP data should be handled by IP masquerading by the firewall)
|
||||
- Port range to be used for incoming RTP traffic is configurable
|
||||
(-> easy to set up apropriate firewall rules for incoming traffic)
|
||||
- RTP proxy can handle multiple RTP streams (eg. audio + video)
|
||||
within a single SIP session.
|
||||
- Multiple local users/hosts can be masqueraded simultaneously
|
||||
- Supports running in a chroot jail (configurable)
|
||||
- Supports changing user-ID after startup (if started as root)
|
||||
- All configuration done via one simple ascii configuration file
|
||||
- Proxy Authentication for registration of local clients (User Agents)
|
||||
with individual passwords for each user
|
||||
- Logging to syslog in daemon mode
|
||||
- Access control (IP based) for incoming traffic
|
||||
- RPM support (release includes SRC rpm and binary RPMS for Redhat 6.0, 7.2)
|
||||
- works with "dial-up" conenctions (dynamic IP addresses)
|
||||
- (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'.
|
||||
|
||||
Requirements:
|
||||
- pthreads
|
||||
- glibc2 / libc5 / uClibc
|
||||
- libosip 0.8.8 (using libosip 0.9.6, proxy authentication does *not*
|
||||
work. Unclear if this is a bug in libosip or not)
|
||||
|
||||
Currently tested on:
|
||||
- Redhat 6.0 (Kernel 2.2.x, Glibc)
|
||||
- Redhat 7.2 (Kernel 2.4.x, Glibc)
|
||||
@ -188,515 +45,32 @@ Reported to build on:
|
||||
|
||||
|
||||
Reported interoperability (tested with softphones):
|
||||
- Linphone (local UA) (http://www.linphone.org)
|
||||
- Kphone (local UA) (http://www.wirlab.net/kphone/)
|
||||
- MSN messenger 4.6 (remote UA)
|
||||
- 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)
|
||||
|
||||
Known bugs:
|
||||
- with kphone 3.1 & libosip-0.*, authentication does NOT work at
|
||||
all (due to 'parse error' in libosip) - use libosip2, this works fine
|
||||
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.2.8.tar.gz: d12feec20adb9b451550d95c68f49eca
|
||||
md5sum for siproxd-0.2.8-1rh60.i386.rpm:66c4d9acca31a9366011e7c2f67b2fb7
|
||||
md5sum for siproxd-0.2.8-1rh72.i386.rpm:d0f87ecd7c11f374148a406e5fe18b21
|
||||
md5sum for siproxd-0.2.8-1.src.rpm: ceda9699c3e401f9676327463df865aa
|
||||
md5sum for siproxd-0.3.3.tar.gz: 110651cb3a7ad9b2cabc598d83a7bc4d
|
||||
md5sum for siproxd-0.3.3-1rh60.i386.rpm:ba1cf809e14241b4e3b979b2c7173e10
|
||||
md5sum for siproxd-0.3.3-1rh72.i386.rpm:
|
||||
md5sum for siproxd-0.3.3-1.src.rpm: 5b7275c714ca51f14b9df26c4d123dab
|
||||
|
||||
GnuPG signature for siproxd-0.2.8.tar.gz archive:
|
||||
GnuPG signature for siproxd-0.3.3.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.0.5 (GNU/Linux)
|
||||
Version: GnuPG v1.2.1 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAj5+AaQACgkQPOYHDi42pIqKAACeNFI42rCBvyOaqHrWo8fk6Qm7
|
||||
hR8AnjeFTROytpI+YsZIpfwFYfsbSXEr
|
||||
=QGGx
|
||||
iD8DBQA/BwNECfzBioe83JQRAto5AJ9RDVpGHO3exzFz99/TAEuAS54H9gCguaU+
|
||||
8AzD82Zpj2szGh2dWp+LOCk=
|
||||
=WGag
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
Release Notes for siproxd-0.2.7
|
||||
===============================
|
||||
|
||||
Note: using libosip-0.9.3, the proxy authentication does *NOT* work.
|
||||
Yet is is unclear to me if this is a bug in libosip or siproxd.
|
||||
libosip-0.8.8 works.
|
||||
|
||||
|
||||
- supports Linux and FreeBSD (other BSD derivates not tested)
|
||||
- SIP (RFC3261) Proxy for SIP based softphones hidden behind a
|
||||
masquerading firewall
|
||||
- Includes an RTP data stream proxy for *incoming* audio data
|
||||
(outgoing RTP data should be handled by IP masquerading by the firewall)
|
||||
- Port range to be used for incoming RTP traffic is configurable
|
||||
(-> easy to set up apropriate firewall rules for incoming traffic)
|
||||
- RTP proxy can handle multiple RTP streams (eg. audio + video)
|
||||
within a single SIP session.
|
||||
- Multiple local users/hosts can be masqueraded simultaneously
|
||||
- Supports running in a chroot jail (configurable)
|
||||
- Supports changing user-ID after startup (if started as root)
|
||||
- All configuration done via one simple ascii configuration file
|
||||
- Proxy Authentication for registration of local clients (User Agents)
|
||||
with individual passwords for each user
|
||||
- Logging to syslog in daemon mode
|
||||
- Access control (IP based) for incoming traffic
|
||||
- RPM support (release includes SRC rpm and binary RPMS for Redhat 6.0, 7.2)
|
||||
- works with "dial-up" conenctions (dynamic IP addresses)
|
||||
- (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'.
|
||||
|
||||
Requirements:
|
||||
- pthreads
|
||||
- libosip 0.8.8 (using libosip 0.9.6, proxy authentication does *not*
|
||||
work. Unclear if this is a bug in libosip or not)
|
||||
|
||||
Currently tested on:
|
||||
- Linux 2.2.x (Redhat 6.0) and 2.4.x (Redhat 7.2), should run
|
||||
on others Linux distributions as well.
|
||||
- FreeBSD 4.7-STABLE (compilation)
|
||||
|
||||
Reported to build on:
|
||||
- OpenBSD 2.9
|
||||
|
||||
|
||||
Reported interoperability (tested with softphones):
|
||||
- Linphone (local UA) (http://www.linphone.org)
|
||||
- Kphone (local UA) (http://www.wirlab.net/kphone/)
|
||||
- MSN messenger 4.6 (remote UA)
|
||||
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.2.7.tar.gz: 0c5dcaedb2d94d71748e9595aab29c8d
|
||||
md5sum for siproxd-0.2.7-1rh60.i386.rpm:1ab308e12942bdd6f63c94895f4eb2dd
|
||||
md5sum for siproxd-0.2.7-1rh72.i386.rpm:3469d290d053b05dc9ab5c34fd75e7da
|
||||
md5sum for siproxd-0.2.7-1.src.rpm: a915a1bca19a08c65621cf90e0372232
|
||||
|
||||
GnuPG signature for siproxd-0.2.7.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.0.5 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAj5zcJUACgkQPOYHDi42pIpZUQCfaWX14zRcB6gdOpXEO1sygZDx
|
||||
0kkAn2MRecmOho0oJgxt8axtuJ37Cng7
|
||||
=OFU1
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
Release Notes for siproxd-0.2.6
|
||||
===============================
|
||||
This release introduces RTP proxying capabilities for simultaneous
|
||||
audio and video RTP streams and fixes a crash when using
|
||||
MSN Messenger as UA.
|
||||
See the ChangeLog for details.
|
||||
|
||||
Note: using libosip-0.9.3, the proxy authentication does *NOT* work.
|
||||
Yet is is unclear to me if this is a bug in libosip or siproxd.
|
||||
libosip-0.8.8 works.
|
||||
|
||||
|
||||
- supports Linux and FreeBSD (other BSD derivates not tested)
|
||||
- SIP (RFC3261) Proxy for SIP based softphones hidden behind a
|
||||
masquerading firewall
|
||||
- Includes an RTP data stream proxy for *incoming* audio data
|
||||
(outgoing RTP data should be handled by IP masquerading by the firewall)
|
||||
- Port range to be used for incoming RTP traffic is configurable
|
||||
(-> easy to set up apropriate firewall rules for incoming traffic)
|
||||
- RTP proxy can handle multiple RTP streams (eg. audio + video)
|
||||
within a single SIP session.
|
||||
- Multiple local users/hosts can be masqueraded simultaneously
|
||||
- Supports running in a chroot jail (configurable)
|
||||
- Supports changing user-ID after startup (if started as root)
|
||||
- All configuration done via one simple ascii configuration file
|
||||
- Proxy Authentication for registration of local clients (User Agents)
|
||||
with individual passwords for each user
|
||||
- Logging to syslog in daemon mode
|
||||
- Access control (IP based) for incoming traffic
|
||||
- RPM support (release includes SRC rpm and binary RPMS for Redhat 6.0, 7.2)
|
||||
- works with "dial-up" conenctions (dynamic IP addresses)
|
||||
|
||||
Requirements:
|
||||
- pthreads
|
||||
- libosip 0.8.8 (using libosip 0.9.6, proxy authentication does *not*
|
||||
work. Unclear if this is a bug in libosip or not)
|
||||
|
||||
Currently tested on:
|
||||
- Linux 2.2.x (Redhat 6.0) and 2.4.x (Redhat 7.2), should run
|
||||
on others Linux distributions as well.
|
||||
- FreeBSD 4.7-STABLE (compilation)
|
||||
|
||||
Reported to build on:
|
||||
- OpenBSD 2.9
|
||||
|
||||
|
||||
Reported interoperability (tested with softphones):
|
||||
- Linphone (local UA) (http://www.linphone.org)
|
||||
- Kphone (local UA) (http://www.wirlab.net/kphone/)
|
||||
- MSN messenger 4.6 (remote UA)
|
||||
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.2.6.tar.gz: e74fce87438b118d09072baf25cccc7f
|
||||
md5sum for siproxd-0.2.6-1rh60.i386.rpm:36e5030697148d509b31f47a05201937
|
||||
md5sum for siproxd-0.2.6-1rh72.i386.rpm:b4ef2b66d15a33cbe2eebf20b89c5ba4
|
||||
md5sum for siproxd-0.2.6-1.src.rpm: 43c84ea8823794daa6d536d800792a38
|
||||
|
||||
GnuPG signature for siproxd-0.2.6.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.0.5 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAj424UQACgkQPOYHDi42pIqmoACgziteXrb94ZP59R3FwKb+a2am
|
||||
K88AoMfuE3iIM2Eg0GXBUmEyy+vM6Ac+
|
||||
=fiZA
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
Release Notes for siproxd-0.2.5
|
||||
===============================
|
||||
This release mainly fixes some annoying (and stupid) bugs.
|
||||
See the ChangeLog for details.
|
||||
|
||||
- supports Linux and FreeBSD (other BSD derivates not tested)
|
||||
- SIP Proxy for SIP based softphones hidden behind a masquerading firewall
|
||||
- Includes an RTP data stream proxy for *incoming* audio data
|
||||
(outgoing RTP data should be handled by IP masquerading by the firewall)
|
||||
- Port range to be used for incoming RTP traffic is configurable
|
||||
(-> easy to set up apropriate firewall rules for incoming traffic)
|
||||
- Multiple local users/hosts can be masqueraded simultaneously
|
||||
- Supports running in a chroot jail (configurable)
|
||||
- Supports changing user-ID after startup (if started as root)
|
||||
- All configuration done via one simple ascii configuration file
|
||||
- Proxy Authentication for registration of local clients (User Agents)
|
||||
with individual passwords for each user
|
||||
- Logging to syslog in Daemon mode
|
||||
- Access control (IP based) for incoming traffic
|
||||
- RPM support (release includes SRC rpm and binary RPMS for Redhat 6.0, 7.2)
|
||||
- should now works with "dial-up" conenctions (changing IP addresses)
|
||||
|
||||
Requirements:
|
||||
- pthreads
|
||||
- libosip 0.8.8
|
||||
|
||||
Currently tested on:
|
||||
- Linux 2.2.x (Redhat 6.0) and 2.4.x (Redhat 7.2), should run
|
||||
on others Linux distributions as well.
|
||||
- FreeBSD 4.7-STABLE (compilation)
|
||||
|
||||
Reported to build on:
|
||||
- OpenBSD 2.9
|
||||
|
||||
|
||||
Reported interoperability (tested with softphones):
|
||||
- Linphone (http://www.linphone.org)
|
||||
- Kphone (http://www.wirlab.net/kphone/)
|
||||
- MSN messenger 4.6
|
||||
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.2.5.tar.gz: 042986602efeaaa77a14bb0b1a416083
|
||||
md5sum for siproxd-0.2.5-1rh60.i386.rpm:
|
||||
md5sum for siproxd-0.2.5-1rh72.i386.rpm:
|
||||
md5sum for siproxd-0.2.5-1.src.rpm:
|
||||
|
||||
GnuPG signature for siproxd-0.2.5.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.0.5 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAj3v6zkACgkQPOYHDi42pIppDACfc0Bw3vcNFE5+qSHIzMacdHow
|
||||
kGgAn11c69ibc9bLd+la9j0otqxhAWIK
|
||||
=OZ6c
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
Release Notes for siproxd-0.2.4
|
||||
===============================
|
||||
- supports Linux and FreeBSD (other BSD derivates not tested)
|
||||
- SIP Proxy for SIP based softphones hidden behind a masquerading firewall
|
||||
- Includes an RTP data stream proxy for *incoming* audio data
|
||||
(outgoing RTP data should be handled by IP masquerading by the firewall)
|
||||
- Port range to be used for incoming RTP traffic is configurable
|
||||
(-> easy to set up apropriate firewall rules for incoming traffic)
|
||||
- Multiple local users/hosts can be masqueraded simultaneously
|
||||
- Supports running in a chroot jail (configurable)
|
||||
- Supports changing user-ID after startup (if started as root)
|
||||
- All configuration done via one simple ascii configuration file
|
||||
- Proxy Authentication for registration of local clients (User Agents)
|
||||
with individual passwords for each user
|
||||
- Logging to syslog in Daemon mode
|
||||
- Access control (IP based) for incoming traffic
|
||||
- RPM support (release includes SRC rpm and binary RPMS for Redhat 6.0, 7.2)
|
||||
- should now works with "dial-up" conenctions (changing IP addresses)
|
||||
|
||||
Requirements:
|
||||
- pthreads
|
||||
- libosip 0.8.8
|
||||
|
||||
Currently tested on:
|
||||
- Linux 2.2.x (Redhat 6.0) and 2.4.x (Redhat 7.2), should run
|
||||
on others Linux distributions as well.
|
||||
- FreeBSD 4.7-STABLE (compilation only)
|
||||
|
||||
|
||||
Interoperability (tested with softphones):
|
||||
- Linphone (http://www.linphone.org)
|
||||
- Kphone (http://www.wirlab.net/kphone/)
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.2.4.tar.gz: 1f9bd5fb0031870cf8cc25fb1098d687
|
||||
md5sum for siproxd-0.2.4-1rh60.i386.rpm:1862342b8b006632aec0eb6619a53ae9
|
||||
md5sum for siproxd-0.2.4-1rh72.i386.rpm:35896373a8a091a4edfcec26418f6b76
|
||||
md5sum for siproxd-0.2.4-1.src.rpm: 757b63b6365d19b62ae6e5f98489f913
|
||||
|
||||
GnuPG signature for siproxd-0.2.4.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.0.5 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAj3fwmAACgkQPOYHDi42pIqQtwCdGBsqWmqMsw0ADwH63VBP4r9K
|
||||
rMwAn3VjqrmeBZ9s9mHyCtmvTaZPNsPX
|
||||
=w2Ce
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
Release Notes for siproxd-0.2.3
|
||||
===============================
|
||||
- SIP Proxy for SIP based softphones hidden behind a masquerading firewall
|
||||
- Includes an RTP data stream proxy for *incoming* audio data
|
||||
(outgoing RTP data should be handled by IP masquerading by the firewall)
|
||||
- Port range to be used for incoming RTP traffic is configurable
|
||||
(-> easy to set up apropriate firewall rules for incoming traffic)
|
||||
- Multiple local users/hosts can be masqueraded simultaneously
|
||||
- Supports running in a chroot jail (configurable)
|
||||
- Supports changing user-ID after startup (if started as root)
|
||||
- All configuration done via one simple ascii configuration file
|
||||
- Proxy Authentication for registration of local clients (User Agents)
|
||||
with individual passwords for each user
|
||||
- Logging to syslog in Daemon mode
|
||||
- Access control (IP based) for incoming traffic
|
||||
- RPM support (release includes SRC rpm and binary RPMS for Redhat 6.0, 7.2)
|
||||
|
||||
Requirements:
|
||||
- pthreads
|
||||
- libosip 0.8.8
|
||||
|
||||
Currently tested on Linux 2.2.x (Redhat 6.0) and 2.4.x (Redhat 7.2),
|
||||
should run on others Linux distributions as well.
|
||||
|
||||
Interoperability (tested with softphones):
|
||||
- Linphone (http://www.linphone.org)
|
||||
- Kphone (http://www.wirlab.net/kphone/)
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.2.3.tar.gz: 91feadda140bdd5beba58de66d97b168
|
||||
md5sum for siproxd-0.2.3-1rh60.i386.rpm:bde445eff2af345f2d04f02c7049ef5c
|
||||
md5sum for siproxd-0.2.3-1rh72.i386.rpm:a24887563d10083d5762e819d85c5b79
|
||||
md5sum for siproxd-0.2.3-1.src.rpm: 18bca360d8021a98ec4b6d0f03af4c93
|
||||
|
||||
GnuPG signature for siproxd-0.2.3.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.0.5 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAj3OX5QACgkQPOYHDi42pIpR0wCgooTOhk6mpV6cNi9q/WPLITbN
|
||||
z28AoONvmvpy+uS7khruF18SPfb6znvl
|
||||
=loxH
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
Release Notes for siproxd-0.2.2
|
||||
===============================
|
||||
- SIP Proxy for SIP based softphones hidden behind a masquerading firewall
|
||||
- Includes an RTP data stream proxy for *incoming* audio data
|
||||
(outgoing RTP data should be handled by IP masquerading by the firewall)
|
||||
- Port range to be used for incoming RTP traffic is configurable
|
||||
(-> easy to set up apropriate firewall rules for incoming traffic)
|
||||
- Multiple local users/hosts can be masqueraded simultaneously
|
||||
- Supports running in a chroot jail (configurable)
|
||||
- Supports changing user-ID after startup (if started as root)
|
||||
- All configuration done via one simple ascii configuration file
|
||||
- Proxy Authentication for registration of local clients (User Agents)
|
||||
now supports per user passwords
|
||||
- Logging to syslog in Daemon mode
|
||||
- Access control (IP based) for incoming traffic
|
||||
- RPM support (spec file)
|
||||
|
||||
Requirements:
|
||||
- pthreads
|
||||
- libosip 0.8.8
|
||||
|
||||
Currently tested on Linux 2.2.x (Redhat 6.0) and 2.4.x (Redhat 7.2),
|
||||
should run on others Linux distributions as well.
|
||||
|
||||
Interoperability (tested with softphones):
|
||||
- Linphone (http://www.linphone.org)
|
||||
- Kphone (http://www.wirlab.net/kphone/)
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.2.2.tar.gz: eaeb7277277cf9c113a23d77c6e024ba
|
||||
|
||||
GnuPG signature for siproxd-0.2.2.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.0.5 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAj2oURQACgkQPOYHDi42pIpWUQCfdNtmP/l010HtzCHPMKjbBZo/
|
||||
MNUAn2dOBHIfOJLy3CaqM1AUt8PC8iN6
|
||||
=AIbl
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
Release Notes for siproxd-0.2.1
|
||||
===============================
|
||||
- SIP Proxy for SIP based softphones hidden behind a masquerading firewall
|
||||
- Includes an RTP data stream proxy for *incoming* audio data
|
||||
(outgoing RTP data should be handled by IP masquerading by the firewall)
|
||||
- Port range to be used for incoming RTP traffic is configurable
|
||||
(-> easy to set up apropriate firewall rules for incoming traffic)
|
||||
- Multiple local users/hosts can be masqueraded simultaneously
|
||||
- Supports running in a chroot jail (configurable)
|
||||
- Supports changing user-ID after startup (if started as root)
|
||||
- All configuration done via one simple ascii configuration file
|
||||
- Proxy Authentication for registration of local clients (User Agents)
|
||||
- Logging to syslog in Daemon mode
|
||||
- Access control (IP based) for incoming traffic
|
||||
- RPM support (spec file)
|
||||
|
||||
Requirements:
|
||||
- pthreads
|
||||
- libosip 0.8.8
|
||||
|
||||
Currently tested on Linux 2.2.x (Redhat 6.0) and 2.4.x (Redhat 7.2),
|
||||
should run on others Linux distributions as well.
|
||||
|
||||
Interoperability (tested with softphones):
|
||||
- Linphone (http://www.linphone.org)
|
||||
- Kphone (http://www.wirlab.net/kphone/)
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.2.1.tar.gz: 3d0a46587494dd8c308c85f16d6f5555
|
||||
|
||||
GnuPG signature for siproxd-0.2.1.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.0.5 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAj2U6d4ACgkQPOYHDi42pIq5ygCg3oavz9FHFTXNZT/R4YNECzEX
|
||||
IX4AnAtYcNxJJhLXEKcj2ziKKvkectL9
|
||||
=A3tF
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
Release Notes for siproxd-0.2.0
|
||||
===============================
|
||||
- SIP Proxy for SIP based softphones hidden behind a masquerading firewall
|
||||
- Includes an RTP data stream proxy for incoming audio data
|
||||
- Supports running in a chroot jail (configurable)
|
||||
- Supports changing user ID after startup (if started as root)
|
||||
- All configuration done via config file
|
||||
|
||||
Requirements:
|
||||
- pthreads
|
||||
- libosip 0.8.8
|
||||
|
||||
- currently tested on Linux 2.2.x (Redhat 6.0) and 2.4.x (Redhat 7.2)
|
||||
however, should run on any other
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.2.0.tar.gz: fe22245be675015a296e9b19327c4941
|
||||
|
||||
GnuPG signature for siproxd-0.2.0.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.0.5 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAj2HXe0ACgkQPOYHDi42pIo/FACg2AiHoo6BMy93PDmW/3uFl19+
|
||||
0NoAoIpD7jROQlLtUYrB8n8elBODR1dA
|
||||
=8fno
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
Release Notes for siproxd-0.1.3
|
||||
===============================
|
||||
- Bugfixes in the SIP proxy part
|
||||
- Performance imporvement in RTP proxy part
|
||||
- some documentation updates
|
||||
- include ./scripts subdirectory in the distribution,
|
||||
was an error in the autoconf/automake setup
|
||||
|
||||
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.1.3.tar.gz: 82405c104267ad48c2d3421580625972
|
||||
|
||||
GnuPG signature for siproxd-0.1.3.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.0.5 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAj1/eUwACgkQPOYHDi42pIq0agCgn46GkmeoOpTWnVJoQSl+5oTl
|
||||
b1cAn331fJVdvaVyRJz0AVjUnD7v+fx6
|
||||
=Sm6d
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
Release Notes for siproxd-0.1.2
|
||||
===============================
|
||||
- New: experimental proxying incoming RTP data streams
|
||||
(please send me feedback if you try it out)
|
||||
- optimizations in DNS resolving
|
||||
- fix in client registration concept (Contact Header)
|
||||
|
||||
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.1.2.tar.gz: 622762081dfb8e6b4b521b4e4e9ae568
|
||||
|
||||
GnuPG signature for siproxd-0.1.2.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v1.0.5 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAj16c+gACgkQPOYHDi42pIrgwwCfe66NjapoeyG6By8/cvRlMjiJ
|
||||
YAoAoLsJBZTimXDISVqMsxK4NmjdKevF
|
||||
=Yc5X
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
Release Notes for siproxd-0.1.1
|
||||
===============================
|
||||
- configurable using a config file
|
||||
- can run as daemon in background
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.1.1.tar.gz: d0b7b691801f4138c271a8ebae5b7a24
|
||||
|
||||
GnuPG signature for siproxd-0.1.1.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
iEYEABECAAYFAj1pUuMACgkQPOYHDi42pIpkwgCeOheMIeE9EmmPONsXpKMNshMc
|
||||
0YAAnic4Tzj709IuYEtTdwIcPildot6g
|
||||
=Wa6O
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
Release Notes for siproxd-0.1.0
|
||||
===============================
|
||||
- This is the first published release.
|
||||
Be warned, this (and all the other) documentantation is far from
|
||||
complete. This is just a *very* preliminary pre-alpha release. Don't
|
||||
expect anything!
|
||||
|
||||
-----
|
||||
md5sum for siproxd-0.1.0.tar.gz: 53288af6ec8c0a92e52226df1a89fc98
|
||||
|
||||
GnuPG signature for siproxd-0.1.0.tar.gz archive:
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
iEYEABECAAYFAj1nzOsACgkQPOYHDi42pIpruACffBef8M3EkvIOIzu+Ds8bxGCs
|
||||
S5gAoMWLl9GVFmGzPTG2X0BK850eIfWc
|
||||
=OGXj
|
||||
-----END PGP SIGNATURE-----
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
GnuPG Public Key is available on wwwkeys.pgp.net
|
||||
pub 1024D/87BCDC94 2000-03-19 Thomas Ries (tries@gmx.net)
|
||||
Key fingerprint = 13D1 19F5 77D0 4CEC 8D3F A24E 09FC C18A 87BC DC94
|
||||
|
||||
2
TODO
2
TODO
@ -17,7 +17,7 @@ TODOs, in random order:
|
||||
|
||||
- Documentation (yeah, yeah...)
|
||||
|
||||
- support for proxy chaining - UPNP support?
|
||||
- support for proxy chaining - "next-hop"
|
||||
|
||||
- general security issues
|
||||
- security tests for received SIP messages (function securitycheck)
|
||||
|
||||
181
src/proxy.c
181
src/proxy.c
@ -469,36 +469,44 @@ int proxy_rewrite_invitation_body(sip_t *mymsg){
|
||||
sdp_t *sdp;
|
||||
struct in_addr outb_addr, lcl_clnt_addr;
|
||||
int sts;
|
||||
char *oldbody;
|
||||
char newbody[BODY_MESSAGE_MAX_SIZE];
|
||||
char *bodybuff;
|
||||
char clen[8]; /* content length: probably never more than 7 digits !*/
|
||||
int outb_rtp_port, inb_clnt_port;
|
||||
int media_stream_no;
|
||||
sdp_connection_t *sdp_conn;
|
||||
sdp_media_t *sdp_med;
|
||||
|
||||
/*
|
||||
* get SDP structure
|
||||
*/
|
||||
sts = msg_getbody(mymsg, 0, &body);
|
||||
if (sts != 0) {
|
||||
ERROR("rewrite_invitation_body: no body found in message");
|
||||
return STS_FAILURE;
|
||||
}
|
||||
|
||||
sts = body_2char(body, &oldbody);
|
||||
|
||||
sts = body_2char(body, &bodybuff);
|
||||
sts = sdp_init(&sdp);
|
||||
sts = sdp_parse (sdp, oldbody);
|
||||
sts = sdp_parse (sdp, bodybuff);
|
||||
free(bodybuff);
|
||||
if (sts != 0) {
|
||||
ERROR("rewrite_invitation_body: unable to sdp_parse body");
|
||||
return STS_FAILURE;
|
||||
}
|
||||
|
||||
|
||||
if (configuration.debuglevel)
|
||||
{ /* just dump the buffer */
|
||||
char *tmp2;
|
||||
char *tmp, *tmp2;
|
||||
sts = msg_getbody(mymsg, 0, &body);
|
||||
sts = body_2char(body, &tmp);
|
||||
content_length_2char(mymsg->contentlength, &tmp2);
|
||||
DEBUG("Body before rewrite (clen=%s, strlen=%i):\n%s\n----",
|
||||
tmp2, strlen(oldbody), oldbody);
|
||||
tmp2, strlen(tmp), tmp);
|
||||
free(tmp);
|
||||
free(tmp2);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* RTP proxy: get ready and start forwarding
|
||||
* start forwarding for each media stream ('m=' item in SIP message)
|
||||
@ -517,6 +525,22 @@ int proxy_rewrite_invitation_body(sip_t *mymsg){
|
||||
return STS_FAILURE;
|
||||
}
|
||||
|
||||
/*
|
||||
* rewrite c= address
|
||||
*/
|
||||
sdp_conn = sdp_connection_get (sdp, -1, 0);
|
||||
if (sdp_conn && sdp_conn->c_addr) {
|
||||
free(sdp_conn->c_addr);
|
||||
sdp_conn->c_addr=malloc(HOSTNAME_SIZE);
|
||||
sprintf(sdp_conn->c_addr, "%s", inet_ntoa(outb_addr));
|
||||
} else {
|
||||
ERROR("got NULL c= address record - can't rewrite");
|
||||
}
|
||||
|
||||
/*
|
||||
* loop through all m= descritions,
|
||||
* start RTP proxy and rewrite them
|
||||
*/
|
||||
for (media_stream_no=0;;media_stream_no++) {
|
||||
/* check if n'th media stream is present */
|
||||
if (sdp_m_port_get(sdp, media_stream_no) == NULL) break;
|
||||
@ -527,146 +551,50 @@ int proxy_rewrite_invitation_body(sip_t *mymsg){
|
||||
rtp_start_fwd(msg_getcall_id(mymsg), media_stream_no,
|
||||
outb_addr, &outb_rtp_port,
|
||||
lcl_clnt_addr, inb_clnt_port);
|
||||
/* and rewrite the port */
|
||||
sdp_med=list_get(sdp->m_medias, media_stream_no);
|
||||
if (sdp_med && sdp_med->m_port) {
|
||||
free(sdp_med->m_port);
|
||||
sdp_med->m_port=malloc(8);
|
||||
sprintf(sdp_med->m_port, "%i", outb_rtp_port);
|
||||
DEBUGC(DBCLASS_PROXY, "proxy_rewrite_invitation_body: "
|
||||
"m= rewrote port to [%i]",outb_rtp_port);
|
||||
|
||||
} else {
|
||||
ERROR("rewriting port in m= failed sdp_med=%p, "
|
||||
"m_number_of_port=%p", sdp_med, sdp_med->m_port);
|
||||
}
|
||||
} else {
|
||||
/* no port defined - skip entry */
|
||||
WARN("no port defined in m=(media) stream_no=&i", media_stream_no);
|
||||
continue;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* yup, I know - here are some HARDCODED strings that we
|
||||
* search for in the connect information and media description
|
||||
* in the SDP part of the INVITE packet
|
||||
*
|
||||
* TODO: redo the rewriting section below,
|
||||
* using the nice sdp_ routines of libosip!
|
||||
*
|
||||
* Up to now, also only ONE incoming media port per session
|
||||
* is supported! I guess, there may be more allowed.
|
||||
*/
|
||||
{
|
||||
char *data_c=NULL; /* connection information 'c=' line*/
|
||||
char *data_m=NULL; /* media description 'm=' line*/
|
||||
char *data2_c=NULL; /* end of IP address on 'c=' line */
|
||||
char *data2_m=NULL; /* end of port number on 'm=' line */
|
||||
char *ptr=NULL;
|
||||
|
||||
memset(newbody, 0, sizeof(newbody));
|
||||
|
||||
/*
|
||||
* find where to patch connection information (IP address)
|
||||
*/
|
||||
data_c = strstr (oldbody, "\nc=");
|
||||
if (data_c == NULL) data_c = strstr (oldbody, "\rc=");
|
||||
if (data_c == NULL) {
|
||||
ERROR("did not find a c= line in the body");
|
||||
return STS_FAILURE;
|
||||
}
|
||||
data_c += 3;
|
||||
/* can only rewrite IPV4 addresses by now */
|
||||
if (strncmp(data_c,"IN IP4 ",7)!=0) {
|
||||
ERROR("c= does not contain an IN IP4 address");
|
||||
return STS_FAILURE;
|
||||
}
|
||||
data_c += 7; /* PTR to start of IP address */
|
||||
/* find the end of the IP address -> end of line */
|
||||
data2_c = strstr (data_c, "\n");
|
||||
if (data2_c == NULL) data2_c = strstr (oldbody, "\r");
|
||||
if (data2_c == NULL) {
|
||||
ERROR("did not find a CR/LF after c= line");
|
||||
return STS_FAILURE;
|
||||
}
|
||||
|
||||
/*
|
||||
* find where to patch media description (port number)
|
||||
*/
|
||||
data_m = strstr (oldbody, "\nm=");
|
||||
if (data_m == NULL) data_m = strstr (oldbody, "\rm=");
|
||||
if (data_m == NULL) {
|
||||
ERROR("did not find a m= line in the body");
|
||||
return STS_FAILURE;
|
||||
}
|
||||
data_m += 3;
|
||||
/* check for audio media */
|
||||
if (strncmp(data_m,"audio ",6)!=0) {
|
||||
ERROR("m= does not contain audio");
|
||||
return STS_FAILURE;
|
||||
}
|
||||
data_m += 6; /* PTR to start of port number */
|
||||
/* find the end of the IP address -> end of line */
|
||||
data2_m = strstr (data_m, " RTP/");
|
||||
if (data2_m == NULL) {
|
||||
ERROR("did not find RTP/ on m= line");
|
||||
return STS_FAILURE;
|
||||
}
|
||||
|
||||
/*
|
||||
* what is first? c= or m= ?
|
||||
* (Im sure this can be made nicer)
|
||||
*/
|
||||
if (data_c < data_m) {
|
||||
DEBUGC(DBCLASS_PROXY,"c= before m=");
|
||||
/*
|
||||
* c= line first, replace IP address, then port
|
||||
*/
|
||||
/* copy up to the to-be-masqueraded address */
|
||||
memcpy(newbody, oldbody, data_c-oldbody);
|
||||
/* insert proxy outbound address */
|
||||
ptr=newbody+(data_c-oldbody);
|
||||
sprintf(ptr, "%s", inet_ntoa(outb_addr));
|
||||
ptr += strlen(ptr);
|
||||
/* copy up to the m= line */
|
||||
memcpy (ptr, data2_c, data_m-data2_c);
|
||||
ptr += strlen(ptr);
|
||||
/* substitute port number */
|
||||
sprintf(ptr, "%i", outb_rtp_port);
|
||||
ptr += strlen(ptr);
|
||||
/* copy the rest */
|
||||
memcpy (ptr, data2_m, strlen(data2_m));
|
||||
} else {
|
||||
DEBUGC(DBCLASS_PROXY,"m= before c=");
|
||||
/*
|
||||
* m= line first, replace port, then IP address
|
||||
*/
|
||||
/* copy up to the to-be-masqueraded port */
|
||||
memcpy(newbody, oldbody, data_m-oldbody);
|
||||
ptr=newbody+(data_m-oldbody);
|
||||
/* substitute port number */
|
||||
sprintf(ptr, "%i", outb_rtp_port);
|
||||
ptr += strlen(ptr);
|
||||
/* copy up to the c= line */
|
||||
memcpy (ptr, data2_m, data_c-data2_m);
|
||||
ptr += strlen(ptr);
|
||||
/* insert proxy outbound address */
|
||||
sprintf(ptr, "%s", inet_ntoa(outb_addr));
|
||||
ptr += strlen(ptr);
|
||||
/* copy the rest */
|
||||
memcpy (ptr, data2_c, strlen(data2_c));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* remove old body */
|
||||
sts = list_remove(mymsg->bodies, 0);
|
||||
body_free(body);
|
||||
free(body);
|
||||
|
||||
/* dump new body */
|
||||
sdp_2char(sdp, &bodybuff);
|
||||
|
||||
/* free sdp structure */
|
||||
sdp_free(sdp);
|
||||
free(sdp);
|
||||
|
||||
/* include new body */
|
||||
msg_setbody(mymsg, newbody);
|
||||
msg_setbody(mymsg, bodybuff);
|
||||
free(bodybuff);
|
||||
|
||||
/* free content length resource and include new one*/
|
||||
content_length_free(mymsg->contentlength);
|
||||
free(mymsg->contentlength);
|
||||
mymsg->contentlength=NULL;
|
||||
sprintf(clen,"%i",strlen(newbody));
|
||||
sprintf(clen,"%i",strlen(bodybuff));
|
||||
sts = msg_setcontent_length(mymsg, clen);
|
||||
|
||||
|
||||
if (configuration.debuglevel)
|
||||
{ /* just dump the buffer */
|
||||
char *tmp, *tmp2;
|
||||
sts = msg_getbody(mymsg, 0, &body);
|
||||
@ -677,7 +605,6 @@ int proxy_rewrite_invitation_body(sip_t *mymsg){
|
||||
free(tmp);
|
||||
free(tmp2);
|
||||
}
|
||||
free(oldbody);
|
||||
return STS_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
@ -141,6 +141,7 @@ void *rtpproxy_main(void *arg) {
|
||||
tv.tv_usec = 0;
|
||||
|
||||
num_fd=select(fd_max+1, &fdset, NULL, NULL, &tv);
|
||||
if ((num_fd<0) && (errno==EINTR)) continue;
|
||||
#ifdef MOREDEBUG /*&&&&*/
|
||||
if (num_fd<0) {WARN("select() returned error [%s]",strerror(errno));}
|
||||
#endif
|
||||
|
||||
@ -32,7 +32,7 @@ int sockbind(struct in_addr ipaddr, int localport, int errflg);
|
||||
void register_init(void);
|
||||
int register_client(sip_t *request); /*X*/
|
||||
void register_agemap(void);
|
||||
int register_response(sip_t *request, int flag); /*X*/
|
||||
int register_response(sip_t *request, int flag); /*X*/
|
||||
|
||||
/* proxy.c */
|
||||
int proxy_request (sip_t *request); /*X*/
|
||||
@ -182,4 +182,4 @@ struct siproxd_config {
|
||||
This issue is fixed in linphone-0.9.1pre1
|
||||
*/
|
||||
|
||||
//#define MOREDEBUG
|
||||
#define MOREDEBUG
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user