Hack 100. Get Started with sipX
Asterisk, like Cisco CallManager and other softPBX platforms, implements SIP as a method of supporting SIP phones and trunks, but does not employ the SIP design philosophy. Yet SIP and SIP alone can replace your entire PBX system. Enter sipX.
Like Asterisk, the sipX project implements a call-management server for Linux, implements a voicemail server with message-waiting indicators, and allows you to build a voice network of SIP phones. Unlike Asterisk, sipX does it exclusively using SIP. This means that external interface gateways must be used to communicate between sipX and non-SIP networks (the PSTN, H.323, etc.). In a minute, at least if you follow this little outline, you'll be installing sipXpbx, a comprehensive SIP PBX server.
SipXpbx brings some cool functionality to the table, including a built-in web-based administration tool, two SIP softphones (sipXPhone and sipXez-Phone), and a suite of interoperability testing tools. Awesome stuff! Perhaps most important, sipX implements the following components of a SIP network according to the official IETF SIP specifications (unlike Asterisk, which only implements certain parts of a SIP network):
7.14.1. sipX's Requirements
sipX runs on Linux. There's presently some limited support for BSD, but Windows and Mac users, at least for the moment, are out of luck. An installer is available for Fedora Core 3, a distribution of Linux put forth by Red Hat. In fact, Fedora Core 3 is an ideal environment for sipX; 256 MB of RAM and 500 MB of available disk space are plenty for setting up a sipX test lab.
When setting up Linux for sipX, be sure to install the PostgreSQL database as well as the Apache Web Server, both of which sipX utilizes.
7.14.2. Install sipXpbx
Get logged on to your target machine as root. I'm going to assume that you're running Fedora Core 3. For other distributions, such as Fedora Core 2 and Gentoo Linux, see the official sipX compatibility list at http://www.sipfoundry.org/. First, download and run the sipX Fedora Core 3 install script:
# wget http://www.sipfoundry.org/pub/sipX/sipXpbx-2.8.1-fc3.sh . # sh ./sipXpbx-2.8.1-fc3.sh
When prompted by the script, answer y and be sure to enter a password for the sipxchange user that the script creates. That's all there is to installing sipXpbx.
Next, you've got to generate an SSL certificate for sipX to use:
# mkdir $HOME/sslkeys # cd $HOME/sslkeys # /usr/bin/ssl-cert/gen-ssl-keys.sh # /usr/bin/ssl-cert/install-cert.sh server-01 # /usr/bin/ssl-cert/install-ssl-keystore.sh server-01
Use the default password of changeit, and answer yes when the script asks whether you trust the certificate.
7.14.3. Launch sipXpbx
Starting and stopping sipXpbx is a snap. Use the service command like this to start sipX, and replace start with stop to stop it:
# service sipxpbx start
If sipXpbx complains about HTTPD syntax errors the first time you try to launch it, just give your Fedora machine a reboot.
7.14.4. Finish sipXpbx Setup by Web Interface
sipX uses the JBOSS application server as the foundation of its excellent web-based GUI. To access the web-based site installation wizard in your web browser, visit the following URL, replacing sipx.your.domain with the address of your sipX server:
On the web page that appears, enter installer as the username and password as the password. Then click continue, and you'll be greeted by the sipX Configuration Server, as shown in Figure 7-7.
Here, you'll want to enter your friendly organization name, your server's DNS domain name, a simple authentication realm name (of your own choosing), and an alphanumeric PIN that will later serve as your administrator password on sipX. Click Submit, and after a few moments, you should be looking at the standard login prompt.
Use the username superadmin and the password you established on the PIN prompt in the preceding page. Click Submit, and watch as sipXconfig loads the administrative GUI.
This is where extra RAM and a fast processor will really come in handy. Unlike Asterisk and the Asterisk Management Portal, which use Perl and PHP and run swiftly on a minimally configured machine, sipXconfig is a highly sophisticated set of Java applications that really call for heavy-duty server hardware. A Pentium 4 PC with at least 512 MB of RAM should be sufficient to run sipXconfig at an acceptable pace.
Figure 7-7. sipX's initial configuration screen
7.14.5. Register for the Administration Guide
To expand your sipX prowess beyond installation, you should get your eyes on the sipX Administration Guide. But to do this, you've got register with the chief commercial sponsor of the sipX project, Pingtel. The URL for registration is https://secure.pingtel.com/registration/registerUser.jsp.