- started with 0.5.10

This commit is contained in:
Thomas Ries
2004-12-08 18:49:28 +00:00
parent e2b0777dfa
commit f954bd8418
4 changed files with 70 additions and 45 deletions
+63 -32
View File
@@ -6,21 +6,24 @@ complete. This is still considered an alpha release.
OVERVIEW
========
Siproxd is an proxy/masquerading daemon for the SIP protocol.
Siproxd is a proxy/masquerading daemon for the SIP protocol.
It handles registrations of SIP clients on a private IP network
and performs rewriting of the SIP message bodies to make SIP
connections possible via an masquerading firewall.
connections work via an masquerading firewall (NAT).
It allows SIP software clients (like kphone, linphone) or SIP
hardware clients (Voice over IP phones which are SIP-compatible,
such as those from Cisco, Grandstream or Snom) to work behind
an IP masquerading firewall or router.
an IP masquerading firewall or NAT router.
SIP (Session Initiation Protocol, RFC3261) is the protocol of
choiche for most VoIP (Voice over IP) phones to initiate
choice for most VoIP (Voice over IP) phones to initiate
communication. By itself, SIP does not work via masquerading
firewalls as the transfered data contains IP addresses and
port numbers.
port numbers. There do exist other solutions to traverse NAT existing
(like STUN, or SIP aware NAT routers), but such a solutions has its
disadvantages or may not be applied to a given situation.
Siproxd does not aim to be a replacement for these solutions,
however in some situations siproxd may bring advantages.
PREREQUISITES
@@ -28,7 +31,9 @@ PREREQUISITES
- OS of either:
* Linux (preferred kernel 2.2.x or 2.4.x)
* FreeBSD
* Solaris (porting is being worked on but you may try it)
* OpenBSD
* SunOS
* Mac OS X
- libosip2 package (http://www.fsf.org/software/osip/)
@@ -37,6 +42,8 @@ PREREQUISITES
HOW TO GET STARTED
==================
- make sure libosip2 is installed
If your libposip2 libraries are installed in
/usr/local/lib, be sure to include this library path to /etc/ld.so.conf
- ./configure
For Flifl: see doc/FLI4L_HOWTO.txt
@@ -74,7 +81,7 @@ The easiest way to generate a debug log is:
2) start siproxd:
$ ./siproxd -d -1 2>debug.log
3) reproduce the error
4) include the debug.log in your error report.
4) include the file debug.log in your error report.
If siproxd crashes, a stack backtrace usually is helpful to me:
1) start siproxd in the debugger (daemonize set to 0):
@@ -94,30 +101,28 @@ If siproxd crashes, 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.
4) copy-paste all the output and include it in your error report.
SENDING A PATCH
===============
If you send a patch, please make the diff using "diff -Naur" and
include the version of siproxd you used to patch. It makes it a lot
include the version of siproxd you used to patch. This makes it a lot
easier for me to merge it.
WHAT SIPROXD DOES
=================
Siproxd's purpose is to act as an SIP proxy for softphones located
in private IP ranges. Therefore it will rewrite SIP messages to allow a
softphone to communicate to a counterpart that is located in the Internet.
There usually will be a masquerading firewall in between to 'hide' the
private IP range (either via NAT - network address translation or
masquerading). Check the scenario drawn below.
Siproxd's purpose is to act as an SIP proxy for SIP softphones/hardphones
located behind an masquerading router (NAT). It will rewrite SIP messages
to allow a SIP phone to communicate to a counterpart that is located in
the Internet. Check the scenarios drawn below.
Scenario
--------
Scenario 1
----------
private IP address range : Internet
10.0.0.x : (public IP address range)
@@ -130,33 +135,59 @@ Scenario
+-------------+ +--------------+
eth0 : ppp0
- The Firewall does IP masquerading (NAT) and is running siproxd
- IntHost is running an SIP phone (like linphone, kphone)
- The Firewall does IP masquerading and is running siproxd
- The SIP address used by the SIP phone is sip:johndoe@foo.bar.org
- IntHost is running an SIP softphone (like linphone, kphone)
- The SIP address used by the softphone is sip:johndoe@foo.bar.org
- The softphone is configured to register itself at siproxd
- The SIP phone is configured to register itself at siproxd
running on the firewall host (10.0.0.1) as sip:johndoe@foo.bar.org
- foo.bar.org is the domain name corresponding to the public IP address
of the firewall (e.g. use some dynamic DNS service [1])
Scenario 2
----------
private IP address range : Internet
10.0.0.x : (public IP address range)
:
: foo.bar.org
+-------------+ +--------------+ +--------------+
! !.10 .1 ! masquerading ! publicIP ! external SIP !
! IntHost !---------------! Firewall !------------>>! Registrar !
! ! ! ! ! !
+-------------+ +--------------+ +--------------+
eth0 : ppp0
- The Firewall does IP masquerading (NAT) and is running siproxd
- IntHost is running an SIP phone (like linphone, kphone)
- The SIP address used by the SIP phone is sip:johndoe@foo.bar.org
- The SIP phone is configured to register itself at the external<BR>
registrar as sip:johndoe@foo.bar.org
- foo.bar.org is the domain name corresponding to the public IP address
of the firewall (e.g. use some dynamic DNS service [1])
IPCHAINS:
Firewall rules for incoming traffic:
$ ipchains -A input --proto udp --dport 5060 --log -j ACCEPT
$ ipchains -A input --proto udp --dport 7070:7080 -j ACCEPT
# ipchains -A input --proto udp --dport 5060 --log -j ACCEPT
# ipchains -A input --proto udp --dport 7070:7080 -j ACCEPT
IPTABLES:
Firewall rules for incoming traffic:
$iptables -A INPUT -i ppp0 -p udp -m udp --dport 5060 -j ACCEPT
$iptables -A INPUT -i ppp0 -p udp -m udp --dport 7070:7080 -j ACCEPT
# iptables -A INPUT -i ppp0 -p udp -m udp --dport 5060 -j ACCEPT
# iptables -A INPUT -i ppp0 -p udp -m udp --dport 7070:7080 -j ACCEPT
The first line will allow incoming SIP traffic. The second line will
allow incoming RTP traffic on the ports 7070 - 7080 (the default port
range used by siproxd for incoming RTP traffic).
The first line will allow incoming SIP traffic (UDP port 5060). The second
line will allow incoming RTP traffic on the ports 7070-7080 (the default port
range used by siproxd for incoming RTP traffic).<P>
REFERENCES
@@ -199,7 +230,7 @@ Thomas Ries (tries@gmx.net)
GnuPG: pub 1024D/87BCDC94 2000-03-19 Thomas Ries <tries@gmx.net>
- Fingerprint = 13D1 19F5 77D0 4CEC 8D3F A24E 09FC C18A 87BC DC94
- Key via pgp.openpkg.org / http://www.ries.ch.vu/87BCDC94.pub
VoIP: sip:17476691342@proxy01.sipphone.com | sip:thomas@ries.homeip.net
VoIP: sip:17476691342@proxy01.sipphone.com | sip:431783@fwd.pulver.com
CREDITS
+4 -11
View File
@@ -1,7 +1,7 @@
Release Notes for siproxd-0.5.9
Release Notes for siproxd-0.5.10
===============================
Major changes since 0.5.8:
Major changes since 0.5.9:
Several bugfixes and better support for Record-Route headers.
General Overview:
@@ -80,16 +80,9 @@ distribution I'd be happy to get a short notice.
-----
md5sum for siproxd-0.5.9.tar.gz: 7428bc04eb8d60a5741d68190b06f10b
md5sum for siproxd-0.5.10.tar.gz:
GnuPG signature for siproxd-0.5.9.tar.gz archive:
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (GNU/Linux)
iD8DBQBBiU0nCfzBioe83JQRAr7zAKCmGQSmgigXuZewX7TAn5qt0PcYsACfbE4H
J351yL2YttRZXxnd6C2HSSU=
=Xoms
-----END PGP SIGNATURE-----
GnuPG signature for siproxd-0.5.10.tar.gz archive:
GnuPG: pub 1024D/87BCDC94 2000-03-19 Thomas Ries <tries@gmx.net>
+1 -1
View File
@@ -43,7 +43,7 @@ dnl Release Version
dnl
SPD_MAJOR_VERSION=0
SPD_MINOR_VERSION=5
SPD_MICRO_VERSION=9
SPD_MICRO_VERSION=10
SPD_VERSION=$SPD_MAJOR_VERSION.$SPD_MINOR_VERSION.$SPD_MICRO_VERSION
+2 -1
View File
@@ -12,7 +12,8 @@ Name: %{name}
Summary: A SIP masquerading proxy with RTP support
Version: %{ver}
Release: %{release}
Copyright: GPL
Copyright: (c) 2002-2004 Thomas Ries
License: GPL
Group: Applications/Communications
Source0: %{name}-%{ver}.tar.gz