SipX ConfigServer Installation
From SIPfoundry sipXecs IP PBX, The Open Source SIP PBX for Linux - Calivia
If you've installed the entire sipX PBX on Fedora or Redhat Enterprise LINUX then there's nothing left to do. Otherwise keep reading.
Contents |
For Redhat Users
These instructions apply to Redhat Enterprise LINUX and Fedora systems unless explicitly noted.
System Installation
- Install Redhat from CDs. You can select any set of packages including the minimum set of packages labeled "router configuration" in the Redhat installer process.
- When prompted for firewall support, select "no firewall support" or open up the following ports in your iptables: 80, 8080, 8443, 8090, 8091, 5060 and 5090.
Installing Java
Download j2sdk 1.4 and follow the installation instructions on that web page. j2sdk 1.5 is also supported. You will have a choice between "RPM in self-extracting file" and "self-extracting file". Choose the latter (non-RPM) because Sun's RPMs are ill-behaved.
Installing dependencies with yum
Common to all Fedora systems, you need to add the following packages:
yum install tftp-server httpd postgresql-server
| Code: For Redhat Enterprise: |
yum install tftp-server httpd rh-postgresql-server |
Fedora Core 3 and 4 and Redhat Enterprise 4: Java build tools using JPackage
You can add JPackage to your yum repository as follows (see [1] for more information):
wget -P /tmp http://jpackage.org/jpackage.asc rpm --import /tmp/jpackage.asc wget -P /etc/yum.repos.d http://jpackage.org/jpackage.repo
Remove any previous ant install:
rpm -e apache-ant
Now you can update your system to the required packages:
yum install ant ant-nodeps junit ant-junit \ ant-trax jakarta-commons-beanutils jakarta-commons-collections
Fedora Core 2 and Redhat Enterprise 3: Java build tools using custom rpm
Although you can get RPMs from JPackage, SIPfoundry has an RPM with all the tools you'll need. NOTE: This will also work on FC3 (but not FC4) if you run into trouble with using JPackage.
wget http://www.sipfoundry.org/pub/sipX/depends/FC/2/apache-ant-1.6.2-2.noarch.rpm rpm -ivh apache-ant-1.6.2-2.noarch.rpm
Installing sipX RPMs from SIPfoundry
Download and install the following RPMs from SIPfoundry:
- sipxportlib
- sipxtacklib
- sipxcommserverlib
- sipxconfig
- sipxproxy
- sipxregistry
- sipxpublisher
- sipxvxml
- sipxpbx
Installing From Source and Non-Redhat Users
At the moment, this includes Debian, not sure about Gentoo.
Install the following software packages. Follow the installation instructions for your OS. Any special installation instructions are noted below.
Dependencies
- sipXportLib (same version as sipXconfig)
- sipXtackLib (same version as sipXconfig)
- sipXcommserverLib (same version as sipXconfig)
- sipXpbx (same version as sipXconfig)
- JDK 1.5 or better
- postgres 7.3 or better
- Ant 1.6 or better
Environment Variables
Set the following environment variables:
- ANT_HOME
- where you unzipped (e.g. installed) ant. Example:
export ANT_HOME=/opt/apache-ant-1.6.2
- JAVA_HOME
- to where you installed java. This setting is just used to compile. After installation
sipx-config --jdk
is used to find java dynamically. That means you can upgrade your java and not break your installation. Example:
export JAVA_HOME=/usr/java/j2sdk1.4.2_09
- LOCALCLASSPATH
- Gentoo only! unit tests fail (e.g. make check), because of checkstyle issue. If you're a developer on Gentoo, you can run all ant targets exception "ant style", however I did discover this hack to get "ant style" to work, but then I have to unset it each time to get any other tasks to work. This is a parent-child classpath issue that will hopefully go away if/when maven is used.
cd sipXconfig ant clean default test-all LOCALCLASSPATH="$PWD/lib/antlr-2.7.5H3.jar:$PWD/lib/checkstyle-3.5.jar:\ $PWD/lib/checkstyle-optional-3.5.jar":\ `java-config --classpath commons-beanutils-1.6,ant-core` ant style
Compiling and Installation
If you've obtained your source from subversion, and not from a tar file, then run these commands:
| Code: Build and install sipXconfig |
autoreconf -if ./configure make all check install |
After you've run the "make install" from the sipXconfig project, you will need to run this one command, once ever as root:
| Code: Initialize Database |
su - root sipxconfig.sh --setup |
Additional Setup
FTP
See FTP Setup
TFTP
TFTP on Redhat
Run the following commands:
${EDITOR} /etc/xinetd.d/tftp
Make the following edits to the tftp file. If you've installed via RPM, then {where you installed sipXconfig} is empty:
disable = no
server_args = -s {where you installed sipX}/var/sipxdata/configserver/phone/profile/tftproot
Run the following commands for your edits to take effect:
# ensure tftp server is not already running
ps aux | grep tftp
# if so, stop it
kill -15 {tftp pid}
# restart xinit.d, that in turn will start tftp on demand
service xinetd restart
TFTP on Gentoo
Run the following commands:
emerge net-misc/tftp-hpa
${EDITOR} /etc/conf.d/in.tftpd
Make the following edits:
INTFTPD_PATH="{where you installed sipXconfig}/var/sipxdata/configserver/phone/profile/tftproot"
Then run the following command:
/etc/init.d/in.tftp start
Security
Set up an SSL key using the instructions insipXcommserverLib/doc/INSTALL.sslor
/usr/share/doc/sipxcommserverlib-version/INSTALL.ssl
Running
Running with other sipX servers
This is the normal configuration. It's where all the sipx servers like the proxy, status server, mediaserver, etc. are running on the same machine. In this case you will want to follow the instructions in the sipXpbx project for starting the sipxpbx service. This will control the starting and stopping of the necessary components of the configuration system. The sipXproxy will direct SIP messages to the Profile Publisher automatically. If you are using another SIP proxy other than the sipXproxy, or running the sipXproxy on another machine, follow next section "Running Standalone".
Running Standalone
This configuration has just the sipXconfig server running on one machine. You can follow the instructions for running with all the other sipX servers after making the following configuration changes:
Only start sipXconfig-related services
Edit config fileetc/sipxpbx/ProcessDefinitions.xmland remove these sections:
<group name="CommServer" > ... </group> <group name="MediaServer" > ... </group>
Developer Tools
Ruby 
Ruby is used for unit testing and sample soap client scripts.
Step 1: Installing Ruby
Installation on Redhat/Fedora
yum install ruby ruby-docs ruby-devel ruby-libs ri irb rdoc
Installation on Windows
Download and unzip latest stable release from http://ftp.ruby-lang.org/pub/ruby/binaries/mswin32/. I suggest the following
- unzip ruby-*-i386-mswin32.zip into C:\ruby.
- Verify ruby runs ok
C:\ruby\bun\ruby.exe --version
Step 2: Installing Additional Ruby Modules
Additional ruby modules are required only if you intend to compile Ruby bindings for SOAP web services.
NOTE: These 2 libraries are not now part of ruby 1.8.4 (at least on FC), however we do require SOAP4R 1.5.6. and the installed version is 1.5.5. You do need to install this module manually on top of your RPM-based ruby installation
- SOAP4R ruby module - http://dev.ctor.org/download/archive/soap4r-20051204.tar.gz (later versions appear to have compatability issues
- http-access ruby module - http://dev.ctor.org/download (2.0.6 or better. with ruby 1.8.5 you'll want http-access-20060717.tar.gz or better)
Additional ruby modules are required for script unit tests:
- gems package manager - http://rubyforge.org/frs/?group_id=126 (0.8.11 or better)
- flexmock mocking library - http://onestepback.org/software/flexmock/ (0.1.7 or better)

Installing Additional Ruby Modules
Windows users, tar command is available from Cygwin package, but any tar utility is sufficient
tar -xzf soap4r-20051117.tar.gz cd soap4r-20051117 sudo ruby install.rb tar -xzf http-access-2_0_6.tar.gz cd http-access-2_0_6 sudo ruby install.rb tar -xzf rubygems-0.8.11.tgz cd rubygems-0.8.11 sudo ruby setup.rb sudo gem install flexmock
Eventually these packages may come with ruby making this step unnecessary, see SOAP4R project for details
Step 3: Building SOAP Ruby Bindings
SOAP bindings on linux
./configure --enable-ruby-bindings
ruby bindings will be in build/web/dist/ruby-bindings.
SOAP bindings for ruby on Windows
edit build/build.properties.in and replace
@RUBY_BINDINGS_ENABLED@
with
enable-ruby-bindings=
If you get a windows system error about a missing DLL iconv.dll described here, it appears benign but annoying. To fix this download libiconv-1.9.1.bin.woe32.zip or newer version from here and copy lib\charset.dll and lib\iconv.dll into ruby\lib\ruby\1.8 directory.
Same issues with zlib.dll. I downloaded 1.1.4 from here.
