$Id$ Installation Notes Supported arhitectures: Linux/i386, Linux/armv4l, FreeBSD/i386, Solaris/sparc64 (for other arhitectures the Makefile must be edited) There are various configuration options defined in the Makefile. Requirements: - 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) - bison or yacc (Berkley yacc) - flex - 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 - libmysqlclient & libz (zlib) if you want mysql support (the mysql module) - libxpat if you want the jabber gateway support (the jabber module) OS Notes: - FreeBSD: make sure gmake, bison & flex are installed - Solaris: as above; you can use Solaris's yacc instead of bison. You might need also gtar and ginstall. - Windows: it works in windows (only the core) but you must install a recent cygwin version (http://www.cygwin.com/) and also install a newer regex library version (>=0.12). Howto: (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 -compile with the "tm" module statically linked and with profiling make static_modules=tm PROFILE=-pg all -compile with gcc-3.2 instead of gcc make CC=gcc-3.2 all or CC=gcc-3.2 make all Make targets: Clean: make clean (clean the modules too) make proper (clean also the dependencies) make distclean (the same as proper) make mantainer-clean (clean everything, including auto generated files, tags, *.dbg a.s.o) Compile: make proper make (or gmake on non-Linux systems) make modules or make modules exclude_modules="CVS print" etc. Make tags: make TAGS Create a tar.gz with the sources (in ../): make tar Create a tar.gz with the binary distribution (in ../): make bin Create a gzipped solaris package (in ../): make sunpkg Create debian packages (in ../): make deb or dpkg-buildpackage Install: make prefix=/usr/local install Quick-Start Installation Guide ---------------------------------------------- This guide give you instructions on how to set up the SIP Express Router (ser) on your box quickly. In case the default configuration does not fly, check documentation at ser site http://www.iptel.org/ser If the documentation does not resolve your problem you may try contacting us by E-mail at serhelp@iptel.org Note well the default configuration is very simple in order to be easily installable and provides minimum features. Particularly, authentication is 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.) A) Quick Start ---------------------------------------------- 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 B) after you are finished with A). 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. 2) install the package 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> 3) start the server 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. 4) optionally, watch server's health using the serctl utility - to do so, first set the environment variable SIP_DOMAIN to your domain name, e.g., in Bourne shell, call export SIP_DOMAIN="foo.bar" - 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 - run the serctl utility /usr/sbin/serctl moni or /usr/local/sbin/serctl moni (if you installed from a tar.gz or solaris package) 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 B) ser with Persistent Data Storage ---------------------------------------------- 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 the ser mysql module from: http://www.iptel.org/ser/ (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). 2) install the package rpm -i <package_name> or dpkg -i <package_name> 3) create MySQL tables /usr/sbin/ser_mysql.sh create 4) configure ser to use SQL uncomment all lines which are related to 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; }; /* be sure to replace realm, the first parameter in www_* actions, with name of your server; some broken UAC implementations don't authenticate otherwise */ 5) restart the server /etc/init.d/ser restart 6) 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="foo.bar" The realm name should be the value you set in step #4. a) watch the server status using 'serctl moni' b) try to login as user 'admin' with password 'heslo' c) try adding new users using 'serctl add <name> <password> <email>' C) Troubleshooting ---------------------------------------------- /etc/ser/ser.cfg /etc/init.d/ser restart listen aliases