INSTALL
550bb8c3
 $Id$
 
cb7dae9d
 
ea828a39
      ===========================================
 
      SIP Express Router (ser) Installation Notes
 
              http://www.iptel.org/ser/
 
      ===========================================
b8bc4cf8
 
 TOC
 
 1. Supported Architectures and Requirements
 2. Howto Build ser From Source Distribution
 3. Quick-Start Installation Guide
    A) Getting Help
    B) Disclaimers
    C) Quick Start
    D) ser with Persistent Data Storage
ea828a39
 4. Troubleshooting
b8bc4cf8
 
 
 
06415a6a
 +--------------------------------------------------------+
 | CAUTION: the 0.8.11 release include changes which      |
 | are incompatible with scripts and databases used       |
 | in previous versions. Care is advised when upgrading   |
 | from previous releases to 0.8.11.                      |
 +--------------------------------------------------------+
 
 
 
b8bc4cf8
 1. Supported Architectures and Requirements
 -------------------------------------------
550bb8c3
 
aee4712e
 Supported arhitectures: Linux/i386, Linux/armv4l, FreeBSD/i386, OpenBSD/i386
087d0976
 Solaris/sparc64 
aee4712e
 (for other arhitectures the Makefiles might need to be edited)
550bb8c3
 
628e3a5a
 There are various configuration options defined in the Makefile.
 
550bb8c3
 Requirements:
 
 
5b0cb4c6
 - gcc or icc : gcc >= 2.9x; 3.[12] recommended (it will work with older version
   but it might require some options tweaking for best performance)
550bb8c3
 - bison or yacc (Berkley yacc)
 - flex
5b0cb4c6
 - GNU make (on Linux this is the standard "make", on FreeBSD and Solaris is
  called "gmake")
 - sed and tr (used in the makefiles)
 - GNU tar ("gtar" on Solaris) and gzip if you want "make tar" to work
 - GNU install or BSD install (on Solaris "ginstall") if you want "make
   install", "make bin", "make sunpkg" to work
f3f0a4de
 - libmysqlclient & libz (zlib) if you want mysql support (the mysql module)
aee4712e
 - libexpat if you want the jabber gateway support (the jabber module)
5b0cb4c6
 
550bb8c3
 
b2dec9c6
 OS Notes:
550bb8c3
 
aee4712e
 - FreeBSD/OpenBSD: make sure gmake, bison or yacc & flex are installed
5b0cb4c6
 - Solaris: as above; you can use Solaris's yacc instead of bison. You might
   need also gtar and ginstall.
aee4712e
 - Windows: it works in windows (only the core, w/o shared mem. support) but you
   must install a recent cygwin version (http://www.cygwin.com/) and also 
   install a newer regex library version (>=0.12). 
5b0cb4c6
     
550bb8c3
 
b8bc4cf8
 2. Howto Build ser From Source Distribution
 -------------------------------------------
247c2b65
 
 (NOTE: if make doesn't work try gmake  instead)
 
 - compile with default options:
 
 make   #builds only ser core, equivalent to make ser
 make modules
 
 or make all #builds everything
 
 - compile with profiling
 
 make PROFILE=-pg all
 
 -compile debug mode version
 
 make mode=debug all
 
 -compile debug version with profiling
 
 make mode=debug PROFILE=-pg all
 
 -compile only the print module
 
 make modules=modules/print modules
 
 -compile all the modules except textops
 
 make exclude_modules="CVS textops" modules
 
b2dec9c6
 -compile with the "tm" module statically linked and with profiling
 
 make static_modules=tm PROFILE=-pg all
 
5b0cb4c6
 -compile with gcc-3.2 instead of gcc
 
 make CC=gcc-3.2 all
b2dec9c6
 
5b0cb4c6
 or
 
 CC=gcc-3.2 make all
b2dec9c6
 
247c2b65
 
 
 Make targets:
 
628e3a5a
 Clean:
247c2b65
 
628e3a5a
 make clean   (clean the modules too)
 make proper  (clean also the dependencies)
247c2b65
 make distclean (the same as proper)
 make mantainer-clean (clean everything, including auto generated files,
  tags, *.dbg a.s.o)
628e3a5a
 
550bb8c3
 Compile:
 
628e3a5a
 make proper
550bb8c3
 make
 (or gmake on non-Linux systems)
390bec9b
 make modules 
 or make modules exclude_modules="CVS print" etc.
550bb8c3
 
247c2b65
 Make tags:
 
 make TAGS
 
5b0cb4c6
 Create a tar.gz with the sources (in ../):
247c2b65
 
 make tar
 
5b0cb4c6
 Create a tar.gz with the binary distribution (in ../):
247c2b65
 
0294499f
 make bin
247c2b65
 
5b0cb4c6
 Create a gzipped solaris package (in ../):
bc5cc4ec
 
 make sunpkg
 
5b0cb4c6
 Create debian packages (in ../):
 
 make deb
 
 or
 
 dpkg-buildpackage
 
bc5cc4ec
 Install:
550bb8c3
 
 make prefix=/usr/local  install
 
cb7dae9d
 
 
b8bc4cf8
 3. Quick-Start Installation Guide
cb7dae9d
 ----------------------------------------------
 
b8bc4cf8
 A) Getting Help
 
 This guide gives you instructions on how to set up the SIP Express 
 Router (ser) on your box quickly. In case the default configuration
cb7dae9d
 does not fly, check documentation at ser site
b8bc4cf8
   http://www.iptel.org/ser/
 
 If the documentation does not resolve your problem you may try contacting 
 us by E-mail at serusers@iptel.org -- that is the mailing list of ser
 community from which you can get most rapid help. To participate in the
 mailing list, subscribe at the following web address:
   http://mail.iptel.org/mailman/listinfo/serusers
 
 If you are concerned about your privacy, you may post your questions to 
 iptel.org's helpline at serhelp@iptel.org.
 
 B) Disclaimers
cb7dae9d
  
b8bc4cf8
 Note well the default "quick-start" configuration is very simple in order 
 to be easily installable. It provides minimum features. Particularly, 
 authentication is by default disabled, which means anyone can register using
 any name with the server. (This is on purpose to avoid installation 
 dependencies on MySQL which is needed for storing user credentials.)
cb7dae9d
 
 
b8bc4cf8
 C) Quick Start
cb7dae9d
 
b8bc4cf8
 The following step-by step guide gives you instructions how to install the 
 sql-free distribution of ser. If you need persistancy and authentication, 
 then you have to install additional MySql support -- proceed to section D)
 after you are finished with C).
919e909c
 
5b0cb4c6
 1) Download an RPM or debian package from our site
     http://www.iptel.org/ser
 If you don't use an rpm or debian based distro, try our tar.gz'ed binaries
  (ser-$(version)_$(os)_$(arch).tar.gz, e.g: ser-0.8.8_linux_i386.tar.gz).
 If you use Solaris 8 you can try our solaris package.
 
cb7dae9d
 2) install the package
5b0cb4c6
 RPM:
     rpm -i <package_name>
 debian:
     dpkg -i <package_name>
 tar.gz:
     cd /; tar zxvf <package_name>_os_arch.tar.gz
     (it will install in /usr/local/, and the configuration file in
      /usr/local/etc/ser/ser.cfg)
 Solaris:
     gunzip <package_name>.gz ; pkgadd -d <package_name>
     
cb7dae9d
 3) start the server
5b0cb4c6
 RPM:
     /etc/init.d/ser start
 debian:
     ser is started automatically after the install
     (in case something fails you can start it wiht /etc/init.d/ser start)
 tar.gz:
     the tar.gz does not include an init.d script, you'll have to create one of
     your own or adapt one from the source distribution (debian/init.d,
     rpm/ser.init.*, gentoo/ser.init)
     You can start ser directly with /usr/local/sbin/ser.
 Solaris:
     see tar.gz.
     
cb7dae9d
 4) optionally, watch server's health using the
    serctl utility
b11ee5d8
     - to do so, first set the environment variable SIP_DOMAIN to your domain 
5b0cb4c6
       name, e.g., in Bourne shell, call
b8bc4cf8
         export SIP_DOMAIN="myserver.foobar.com"
b11ee5d8
 	- if you are using other than 'localhost' mysql server for maintaining
 	  subscriber database, change the variable 'SQL_HOST' to the proper
 	  host name in the serctl script
5b0cb4c6
     - run the serctl utility
         /usr/sbin/serctl moni
       or
         /usr/local/sbin/serctl moni (if you installed from a tar.gz or solaris
         package)
cb7dae9d
 5) Register with the server using your favorite
    SIP User Agent. You may want to look at configuration
    hints for use of iptel.org site at
      http://www.iptel.org/phpBB/viewforum.php?forum=1&8
    For example, users of Windows Messenger need to set
    in Tools->Options->Accounts the foolowing values:
      Sign-in Name: <username>@<your_server_address>
      Advanced->Configure Settings (on)
      Advanced->Server: <your_server_address>
      Connect Using: UDP
 
 
 
b8bc4cf8
 D) ser with Persistent Data Storage
ea828a39
 
b8bc4cf8
 The default configuration is very simple and features many simplifications. 
 In particular, it does not authenticate users and loses User Location 
 database on reboot. To provide persistency, keep user credentials and remember 
 users' locations across reboots, ser can be configured to use MySQL. Before you 
 proceed, you need to make sure MySQL is installed on your box.
 
 
 1) Download the package containing mysql support for ser from: 
5b0cb4c6
     http://www.iptel.org/ser/
74a565c7
     (rpm and deb provided, most of the binary tar.gz distributions and the 
      solaris package include it; if it is not present you'll have to rebuild
      from the source).
cb7dae9d
 2) install the package
5b0cb4c6
     rpm -i <package_name>
     or
     dpkg -i <package_name>
92307808
 3) create MySQL tables
cb7dae9d
     /usr/sbin/ser_mysql.sh create
fef3f4f8
    (you will be promted for password of MySql "root" user)
92307808
 4) configure ser to use SQL
b8bc4cf8
     uncomment all lines in configuration file ser.cfg which are related to 
cb7dae9d
     authentication:
     - loadmodule "/usr/lib/ser/modules/mysql.so"
     - loadmodule "/usr/lib/ser/modules/auth.so"
     - modparam("usrloc", "db_mode", 2)
     - modparam("auth", "calculate_ha1", yes)
     - if (!www_authorize("iptel.org", "subscriber")) {
         www_challenge("iptel.org", "0"); 
         break;
b8bc4cf8
       }; 
 5) be sure to replace realm, the first parameter in www_* actions, 
    with name of your server; some broken UAC implementations don't 
    authenticate otherwise; the authentication command in your
    configuration script should look then like this:
       if (!www_authorize("myserver.foobar.com", "subscriber")) {
         www_challenge("myserver.foobar.com", "0"); 
         break;
       }
 6) restart the server
5b0cb4c6
     /etc/init.d/ser restart
b8bc4cf8
 7) you can now start  managing the server using the serctl utility; 
    you need to first set the environment variable SIP_DOMAIN to your 
    local SIP realm, e.g.,
        export SIP_DOMAIN="myserver.foobar.com"
f770a896
 
92307808
    a) watch the server status using 'serctl moni'
b8bc4cf8
    b) try to login with your SIP client as user 'admin' with password 'heslo'
92307808
    c) try adding new users using 
        'serctl add <name> <password> <email>'
ea828a39
 
 4. Troubleshooting
 ------------------
 
 Q: Windows Messenger authentication fails. 
 
 A: The most likely reason for this problem is a bug in Windows Messenger. 
 WM only authenticates if server name in request URI equals authentication 
 realm. After a challenge is sent by SIP server, WM does not resubmit the 
 challenged request at all and pops up authentication window again. If you 
 want to authenticate WM, you need to set up your realm value to equal server 
 name. If your server has no name, IP address can be used as realm too.
 
 Q: SIP requests are replied by ser with "483 Too Many Hops" or 
    "513 Message Too Large"
 
 A: In both cases, the reason is probably an error in request routing script 
    which caused an infinite loop. You can easily verify whether this happens 
    by watching SIP traffic on loopback interface. A typical reason for misrouting 
    is a failure to match local domain correctly. If a server fails to recognize 
    a request for itself, it will try to forward it to current URI in believe it 
    would forward them to a foreign domain. Alas, it forwards the request to itself 
    again. This continues to happen until value of max_forwards header field reaches 
    zero or the request grows too big. Solutions is easy: make sure that domain matching 
    is correctly configured. A quick way to achieve that is to introduce a config
    option to ser.cfg: alias=domainname, where domainname shall be replaced with
    name of domain, which you wish to server and which appears in request-URIs.