Configuration

3.1. The configuration file 'siproxd.conf'

Siproxd by default searches for its configuration file in the following locations:

The following is a list of directives that do exist. Note that string values MUST NOT contain spaces or tabs. Also read the explanations included in the supplied example configuration file fro more explanation. Items with a # in front are normally disabled / not defined.

To start with siproxd in the first run, just adapt the interface definition for the inbound and outbound network interfaces (if_inbound and if_outbound).

Definition of network interfaces for the inbound network (local network where your SIP client is connected, this network normally uses IP addresses from on of the private IP ranges like 10.x.x.x, 192.168.x.x) and outbound network (your connection to the Internet, normally this interface has a public IP assigned by your provider).

if_inbound  = eth0
if_outbound = ppp0

Usually only the if_inbound and if_outbound directives will be used. The host_outbound directive comes into play when running siproxd "in front of" a NAT router. Please check the configuration examples in this document for more details.

# host_outbound = <my_public_ip_address>

Access control lists for incoming SIP registrations and SIP traffic in general. These are comma separated lists of the form <IP>/<mask>, note that no spaces are allowed within the list (the configuration file parser cannot yet handle spaces).

# hosts_allow_reg = 192.168.1.0/24,192.168.2.0/24
# hosts_allow_sip = 123.45.0.0/16,123.46.0.0/16
# hosts_deny_sip  = 10.0.0.0/8,11.0.0.0/8

Port to listen for incoming SIP messages. 5060 is usually the correct choice, don't change this unless you have a reason to.

sip_listen_port = 5060

Shall siproxd run as daemon? Usually 1 is the correct choice. If you want siproxd not to daemonize and keep running in foreground and writing its output to the terminal set this to 0.

daemonize = 1

Siproxd does log using the syslog() facility when running a daemon. This setting controls how much logging is done:

silence_log = 0

Siproxd can log call establishment to syslog.

log_calls = 1

If siproxd is started as root, it can drop the root privileges and change its user ID at startup. It also can put itself into a chroot() jail (see 4.2 for details)

user = nobody
# chrootjail = /var/lib/siproxd/

Where to store the current registrations. This allows siproxd to remember registration across a restart. An empty value means we do not save registrations. The specified directory path must exist.

registration_file = /var/lib/siproxd/siproxd_registrations

Where to create the PID file.

pid_file = /var/run/siproxd/siproxd.pid

Enable/disable the RTP proxy. This must always be enabled. In some future release this directive may become obsolete.

rtp_proxy_enable = 1

Port range (UDP) that siproxd will use for incoming and outgoing RTP traffic. A firewall must be configured to allow traffic from and to these ports (UDP only). By default the range 7070 up to (and including) 7079 is used. This allows up to 5 simultaneous calls (2 ports per call). If you need more simultaneous calls, increase the range.

rtp_port_low  = 7070
rtp_port_high = 7079

Timeout for an RTP stream. If for the specified number of seconds no data is relayed on an active stream, it is considered dead and will be killed.

rtp_timeout = 300

If a REGISTER request does not contain an Expires header or expires= parameter in the Contact header, this number of seconds will be used and reported back to the UA in the answer.

default_expires = 600

If siproxd is used as registration server and authentication is wanted, define the following directive. If proxy_auth_realm is defined (a string), clients will be forced to authenticate themselfs to the proxy (for registration only). To disable Authentication, simply comment out this line. Default is disabled.

# proxy_auth_realm = Authentication_Realm

The password to be used for authentication may be a global one

# proxy_auth_passwd = some_password

or on a per user base, stored in its own file. proxy_auth_pwfile takes precedence over proxy_auth_passwd

# proxy_auth_pwfile = /etc/mysiproxd_passwd.cfg

To enable additional debug output of siproxd. This is a bit pattern representing the following items. Default is 0x0 - disabled. See below in this document for information on how to create a debug log file.

debug_level = 0x00000000

You may connect to this port from a remote machine and receive the debug output. This allows bettwer creation of debug output on embedded systems that do not have enough memory for large disk files. Port number 0 means this feature is disabled.

debug_port = 0

Some UAs (SIP clients) will always use the host/ip they register TO as host part in the registration record (which will be the inbound ip address/hostname of the proxy) and can not be told to register a different host (public IP address). This Mask feature allows to force such a UA to be masqueraded to a different host. Siemens SIP Phones seem to need this feature. Normally disabled.

# mask_host=local.ip.of.sipphone
# masked_host=public.domaind.org

Siproxd itself can be told to send all traffic to another outbound proxy. You can use this feature to 'chain' multiple siproxd proxies if you have several masquerading firewalls to cross. Normally disabled.

# outbound_proxy_host = my.outboundproxy.org
# outbound_proxy_port = 5060

Outbound proxies can be specified on a per-domain base. This allows to use an outbound proxy needed for ProviderA and none (or another) for ProviderB. Multiple domain specific proxies may be specified, each one with one set of the following directives. Note: These directives must always be specified as a triple, skipping one of them will affect later definitions.

#outbound_domain_name = freenet.de
#outbound_domain_host = proxy.for.domain.freende.de
#outbound_domain_port = 5060