Table of Contents

Installing SER 2.0

This guide is work in progress. The guide was originally conceived as the administrator's guide for SER 2.0 and it is currently being transformed into the Administrator's Guide for the SIP Router.

There are two ways to get your own installation of SER. If you are lucky and there are binary packets for your system available, you can simply download them and install them with your system's packet manager. Otherwise you can always compile your very own SER from the sources.

Both options are explained below.

Installing From Binary Packages

Binary packages are only available for a small number of systems. If you are interested in providing and maintaining packages for your favorite system, feel free to do so. The serdev mailing list will be a good place to announce your interest and co-ordinate efforts.

Packages are available for the following systems:

Once the packet is installed successfully, you will most likely need to do some configuration. To learn which, continue reading with Initializing Database below.

Getting SER

Before you can start compiling, you need a set of the sources. The safest way is to download the tarball of the latest stable release. For SER 2.0 series, the stable release is numbered 2.0.x.

If you prefer to live on the bleeding edge, we also provide daily snapshots. You can choose from three different versions: "stable" will provide you with the snapshot of the current stable series 2.0. A bit more dangerous still is the "testing" snapshot which contains the upcoming stable series 2.1. And finally, there is "unstable" which provides you with a snapshot of the current development series. Neither of those snapshots are guaranteed to work. But a "stable" snapshot is quite likely to actually turn out okay since only bug fixes will go into that series.

Alternatively you can also check out the sources directly from our revision control system.

Compiling SER Sources

Prerequisites

Before you can start compiling, you need to make sure, you have all the required tools and libraries. The file INSTALL in the source tarball contains details on versions and also lists the packets to install on various systems.

You will need the following tools:

SER itself doesn't need any libraries, apart from the obvious ones, such as a libc. However, some modules need additional libraries. Remember that you need the development versions of the libraries.

Check the [ref_man|Reference Manual] if you are not sure whether you want all these modules.

Compiling the Core

After you have all the prerequisites you can next build the core of SER. You do this by typing

$ make

If you are on BSD or Solaris you will have to say `gmake` to invoke GNU make instead of the system's own version.

The build system is trying to be smart, but there may be some things it can't guess. It honors the usual variables, such as CC for the C compiler to use. Some hard coded values can be found in the file `config.h`. They are set to sane values, but may need tweaking for some special setups.

* XXX Do we want all -D options listed here or rather update INSTALL and point there? Same for mode=debug.

Compling the Modules

Next, you need to build the modules you need. This is done by issuing

$ make modules

By default, SER doesn't build all modules. It limits itself to those modules that are in widespread use and that do not require any extra libraries. If you want more or less modules, you need to provide them as an option.

For convenience, all modules are put into groups that you can easily include. The groups are:

In order to include any of these groups, you add them to the option include_groups like so:

$ make include_groups="mysql experimental" modules

Don't forget the double quotes around the group names lest some confusion will ensue.

Alternatively or additionally, you can give individual modules to make by means of the option include_modules. If you don't want some modules from a group, you can use skip_modules for those.

If you use this a lot, you may get confused which modules will be build and which want. The target print-modules will simply print a list of the modules that would be built and that would be excluded.

Installing Compiled Sources

Initializing Database

Starting SER

Stopping/Restarting SER

Additional Packages