Goal
This guide helps you setup a simple, mature and flexible open source SIP server. OpenSER can be used on systems with limitted resources as well as on carrier grade servers, scaling to up to thousands call setups per second.
Applicability
OpenSER includes all major entity of a SIP Network. It is a registrar, location server, proxy server, redirect server, gateway to SMS/XMPP, or advanced VoIP application server.
Prerequisites (OS, dependencies on other software)
- Linux/Unix OS
Installation (OS agnostic)
Read first carefully the INSTALL file, paying especially attention to section 3C) and 3D).
...
Tip | ||
---|---|---|
| ||
If you need a newer version. Make packages by typing 'make deb' or 'make rpm' instead of 'make install'. |
Configuration (OS agnostic)
The configuration is located in /etc/openser
. The default configuration is ready for a very simple setup and for some very basic testtests. You can already try to register to the SIP server.
Troubleshooting with ngrep
Before you try to register to your SIP server make sure udp and tcp port 5060 are open. Use ngrep for tracing SIP messages on the SIP server. Useful commands are:
...
Warning | ||
---|---|---|
| ||
If you get the following error when registering: <Message too big> then probably your host forwards the SIP Message to itself. So trace on localhost to see if this is the case. If your server has more than one DNS entry, make sure that you have all hostnames in |
Troubleshooting with the xlog module
For debugging purposes, it may be very helpful to use the xlog module, which logs directly with syslog.
Add the following line to the /etc/syslog.conf
file:
Code Block |
---|
# OpenSER messages # make sure this spacing is done with tabs, spaces may cause errors local7.* /var/log/openser # remove local7 from syslog and messages *.*;auth,authpriv.none,local7.none -/var/log/syslog *.=info;*.=notice;*.=warn;\ mail,news.none,local7.none -/var/log/messages |
...
The full set of variables is available on http://openser.org/docs/pseudo-variables.html
Control server with openserctl
With sudo openserctl moni
you can monitor the state of your openser (whether it is actually running after the installation).
openserctl is located in /usr/sbin
, which is not by default in the user PATH. To use openserctl as a non-priviledged user you need to add the path to the environment export $PATH=PATH:/usr/sbin
or call with the full path /usr/sbin/openserctl
. Addionally you have to change permissions for the fifosockets. Add the following line in /etc/openser/openser.cfg
.
Code Block |
---|
sock_group="staff" # openser socket/fifo group, e.g. staff |
...