Unified Communications or UC is a pretty new concept, but it's fast gaining
ground. We are seeing a lot of new UC products hitting the market. So much so
that, this is our third major story on the subject, in a span of six months. In
the first one, we talked about the concept of UC and related technologies. The
second was based on a survey that we carried out to know the state of UC
deployment in India. The survey revealed that in the given context, the biggest
challenge for the IT managers today, is to justify the costs for deploying UC.
So, we went to the market to check, if it's possible to build a UC appliance
in-house, in an easy and cost-effective way. And we found the way for you! Now,
if you think that ready-made products are either not fitting your needs or are
costly, then here's how you can build your own UC appliance.
Getting started
Before anything, let's first fix the components that we wish to have in our
UC appliance. The first thing that comes to anyone's mind is VoIP. Then, it
should also have a Chat server. One can also think of a Presence server in the
UC appliance. I think, this forms a decent wish-list. So, let's start with
making a VoIP IPPBX with Foreign eXchange Office (FXO) capabilities.
But before that let's do some jargon busting. An IPPBX is essentially a PBX
(Private Branch Exchange) but differs from a traditional one because it is IP
based and works on digital signals. An FXO (Foreign eXchange Office) is
essentially a modem card which can be connected to any machine with a PCI slot
and can be used for terminating the PSTN line to the IPPBX. You can purchase the
card from the Internet (store.Trixbox.com) or you can get it from an Indian
reseller who imports them. We got our card from Troop Software, which is based
in Noida. You can have the full contact details from their website 'http://www.troopsoftware
.com/'. But while making the purchase just make sure that the card is compliant
with Asterisk, as it is the most well-known PBX systems today. Most FXO cards
support it very well. The card which we got was a Zaptel/Diginum TDM400P, which
was easily detected by Asterisk.
Pre-requisites
There is not a huge list of pre-requisites to build a UC appliance. The
software for this will be Open Source and the hardware requirement will be based
on how many users are there on your network and how many of them are going to
use the UC appliance. For instance, if you have a setup with about 100 users and
have a 100 Mbps network, then a standard P4 machine with 512 MB RAM will solve
the purpose. But if the setup is for 100+ to a few 1000 users, then we would
recommend a dual processor Xeon 3.0 based server with atleast 1 GB RAM.
Zaptel FXO is a standard 4-port FXO card used for terminating PSTN phone lines to the IP- PBX |
Let's build it
Now, you are ready to install the IPPBX software. Burn the Trixbox 2.2 ISO
on a CD, from this month's PCQXtreme DVD. Boot the machine with this CD. A
standard Anaconda-based installation will start which will delete everything
from the hard disk of your machine and install Trixbox on it. So, please note
that if you have any important data on your hard disk, then take a backup of
that before installing Trixbox on it. The installation is pretty straightforward
and requires a couple of Enters and Reboots. Just make sure that the
installation continues even after the Anaconda is over, so you don't interrupt
the sequence unless you see the Login screen.
Once the installation is complete, login to the system with root username and
the password you have provided at the time of installation. Once you do so, it
will show you the http address from where you can access the configuration
interface of Trixbox. For that you can go to any machine on the same network and
fire up your favorite browser. Then, go to the link 'http://ip_addr_of_Trixbox_machine'.
The configuration interface will open up.
Creating phone extensions
Believe it or not, your IPPBX is ready. Now, you will need to create some
internal phone extensions. To do so first go to the main page of Trixbox and
click on the 'switch' link at the top right corner of the window. The default
username for this will be 'maint' and password is 'password'. Once you provide
the password it will present you with a dashboard from where you can monitor the
status of the system. This includes regular information on what all services are
running, how many extensions are online and how many are offline. It also tells
you the vital data of the system such as the status of RAM usage and network
devices, etc. This dashboard was not there in the older version of Trixbox.
Now click on the Asterisk menu at the top of the window. A dropdown will
open. Click on the FreePBX here and a new browser page will open. Now click on
the Setup menu and then on the 'Extensions'. You will be presented with a window
with a device dropdown list. Select the 'Generic SIP Device' and click on the
Submit button. A new window will open on which you have to fill in the extension
details. Here three fields are important and others are optional. First fill in
the important fields, like 'User Extension', “Display Name”, etc. Display name
will pop up in the CID (caller identification) when the person dials an internal
extension. The third important field is 'Secret' where you have to provide a
login-password for the user. Once all these fields are filled up properly, click
on the Submit button and your extension will be created.
Added features
Asterisk comes with a huge list of features such as Voicemail, Call
forwarding, Call waiting, IVR, Announcement, Call recording, Conference,
FollowMe, Call parking, Ring groups, Dictation, Call back, Do not Disturb, etc.
But by default all these features are not activated as they consume resources
unnecessarily. But, if you really require them, then you have to manually enable
them. To do so, click on the Tools menu at the top of the FreePBX window and
then click on the Module Admin link inside the page. Now you will be presented
with a huge set of modules. Activate the ones you want to use with your PBX
system.
To add a new extension just give the desired extension number, your name and password |
In Dial Rules, if a number with 7 or 10 digits is dialled with 9 as prefix, then it will be treated as an outbound call |
Creating trunks
Once your basic setup is ready, you can create inbound and outbound call
policies and trunks for your IPPBX. So, you first have to make your FXO card
run. As ours is a Zaptel FXO, the process is very simple. Go to the Trixbox
machine and run the following commands in the given sequence:
#rebuild_zaptel
#genzaptelconfig
Now, reboot the machine to get your Zaptel FXO card installed. With this your
default outbound trunk will also be created. This outbound trunk will work with
a prefix of '9', enabling you to dial any PSTN number from your IPPBX. You need
to dial '9' and then the desired number. Just keep one thing in mind that in
both the 'Trunks' and 'Outbound Routes' menu the default dialing rule should be
similar.
Inbound routes
Creating inbound routes is also very simple. All you have to do is to go to
the 'Inbound Routes' option and click on the 'Add Incoming Route' option. Now,
scroll down to the last section of the window and select what action should be
taken, in case of incoming calls. You can set an IVR to receive the calls, you
can do a Group calling, or you can directly forward the number to the
receptionist's extension. Just select the desired action and submit to save the
settings.
Give the UC touch
Now your IPPBX is up and running, but you still require the functionality of
Chatting and Presence server. For this you have to install WildFire Jabber
Server on the Trixbox machine. It's not very difficult. You can get the rpm from
this month's DVD and install it like this
#rpm —Uvh wildfire_3_1_1.rpm
Now, change directory to /opt/wildfire and run the following command:
#sh bin/extra/redhat-postinstall.sh
Start the WildFire server by running the following command:
#service wildfire start
Now, you can do the general configuration of the WildFire server from the
address 'http://ip_ofTrixbox_server :9090'
Integrating Asterisk with WildFire server
The integration of WildFire and Asterisk/Trixbox is very straightforward.
First open up the folder '/opt/wildfire/plugins/' in your machine and copy the
Asterisk-IM.jar file from this month's DVD to the folder. Now, shutdown the
WildFire server and restart it by running the following command:
#service wildfire restart
You will notice two new things. One, a folder called Asterisk-IM is created
in the plug-in folder and two, there is a new tab available on WildFire's
management interface. Next, go to the management interface and provide
credentials for the Asterisk server.
You are done now. Take any two machines and install any softphone on them and
login to them through the Trixbox server. Install the Spark Jabber client on
them and connect them to the server. Try calling someone. You will notice that
whenever you pick up the phone and dial someone your status on the IM changes
and shows as 'On Phone'.