050505 -=-=-=-=-=-=-=-=-=-=-=-=-=- SIPatH - iptel.org's SER for OpenWRT -=-=-=-=-=-=-=-=-=-=-=-=-=- 1. Introduction SIPatH (SIP at Home) is based on the SIP Express Router (SER) which is a high-performance, configurable, free RFC3261-compliant SIP-server. This project aims on porting this compact software to low-budget hardware running OpenWRT - mainly Linksys WRT54GS. Additionally a configuration is provided for using this setup as a PBX, which supports internal calls as well as multiple SIP phones using the same broadband internet connection (e.g. DSL). The whole stuff is separated in three packages. A SER package which includes the SER router with the default configuration, an RTP proxy and a SIPatH package which includes the PBX configuration. (For more details about the content of the SIPatH package and how to configure your SIP phones check http://sipath.sourceforge.net/wiki/). This Readme assumes that you know how to flash the WRT54 and that you already have some experience with the OpenWrt linux distribution. Otherwise have a look at http://www.openwrt.org and http://sipath.sourceforge.net/wiki/. The binaries provided here are for Linksys WRT54GS. Binaries for the WRT54G are untested, although they might be provided. The SER package comes with the serctl shell script for management tasks. It uses the printf command which is by default not included in the OpenWrt busybox. Therefore we also provide here a binary to flash with included printf (sipath-gs-code.bin). If your OpenWRT is already running and you do not want to reflash the bin file, busybox must be rebuilt with printf (see also section 2.2) and then copied to the /bin directory on the WRT54. Additionally the link /usr/bin/printf to /bin/busybox must be created. This costs some memory as the used busybox is no more in the rom partition. As we use the shorewall firewall (http://www.openwrt.org/ConfigurableFirewall) in our binaries also the commands 'iptables-save' and 'iptables-restore' are included. 2. Installation You can either install the IPKG packages we have made (ser_0.8.14-3_mipsel.ipk, rtpproxy_cvs_1.2_mipsel.ipk and sipath_5.5.5-1_mipsel.ipk) or build your own. Note that our SER version only includes the ser modules which are needed to run ser with the default configuration (and the dbtext.so module as well as a modified version of the nathelper.so module). This is because a ser version with all the available modules would nearly consume all the available flash space. If you need other modules you must build your own ser ipkg package as described in section 2.2 or download the respective module binaries (see our download section and http://sipath.sf.net/ipkg/modules/ ). 2.1 Installing the already existing IPKG Packages Simply add the following line to (the top of) /etc/ipkg.conf on your router: src sipath http://sipath.sourceforge.net/ipkg then run: ipkg update ipkg install sipath This will install ser, rtpproxy and sipath. The ser binary is in /usr/sbin, the config file in /etc/ser and the modules in /usr/lib/ser/modules. For information concerning configuration of the ser proxy and the usage of serctl consider their documentation (http://www.iptel.org/ser/). The sipath package provides a modified config file, the files for the dbtext database, a modified version of the ip-up script, and the files for our web interface. 2.2 Building the IPKG Packages For building the packages we provide here a modified version of the OpenWrt buildroot environment (sipath_buildroot.tar.gz). The following things were changed or added with respect to the OpenWrt buildroot: - A ser.mk Makefile which is in buildroot/make. In this Makefile you can define with SER_MODULES which modules to build. By default only the basic modules are copied in the package file as you can easily consume all the available flash space by ser and all the modules. - A sipath.mk Makefile in buildroot/make for building the sipath package. - A rtpproxy.mk Makefile in buildroot/make for building the rtpproxy package (Thanks to Eltorio). - The directory buildroot/sources/openwrt/ipkg/ser with the CONTROL directory for the ipkg information. - The directory buildroot/sources/openwrt/ipkg/sipath with our configuration files (init script, files for the dbtext database, ip-up, profile and our ser.cfg) and files for the webinterface. - The directory buildroot/sources/openwrt/patches/ser with some patches. - Added ser, rtpproxy and sipath to the list of packages to build in the global buildroot Makefile. - Enabled printf by setting CONFIG_PRINTF=y in the busybox config file (buildroot/sources/openwrt/busybox/busybox.config). - Enabled 'iptables-save' and 'iptables-restore' in buildroot/make/openwrt.mk After a successful 'make' you can proceed with 'make packages' and the ser and sipath ipkgs should be generated in the packages directory. Copy them to your WRT54 and install them with 'ipkg install ser_0.8.14-3_mipsel.ipk' , 'ipkg install rtpproxy_cvs_1.2_mipsel.ipk' and 'ipkg install sipath_5.5.5-1_mipsel.ipk' respectively.