Asterisk 1.6 with Office Communications Server 2007

I’ve personally been waiting for this release of Asterisk for some time now! After researching a little, I found out that Asterisk 1.6 now supports TCP & TLS. Currently it is still considered experimental – but hey, it’s always fun to play!

For those of you who are only familiar with Trixbox or FreePBX, there is no support for any graphical interface on 1.6 as of yet. But,I will keep this simple and to the point. Installing Asterisk on a Linux box with Kernel 2.6 is fairly straightforward. In this Lab, I deployed CentOS 5 - Kernel 2.6.18 with Asterisk 1.6. When installing the OS you will also need the Kernel Sources and Kernel Headers packages.

First step of course is to build a Linux Box – I built mine in a VM, but installing on hardware will work just the same.

You can download Asterisk from www.asterisk.org. On your Linux box make a directory under /usr/src – called pbx. From that directory you can use the following command:

wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.6.0.tar.gz

Next step is to unpack the package:

tar zxvf asterisk-1.6.0.tar.gz

With that done – we use the common method to build the source:

Change into that directory – cd asterisk-1.6.0

./configure

make

make install

make config

make samples

Start Asterisk by running /etc/init.d/asterisk start

Then run asterisk –vr. This will bring you into the Asterisk CLI:

Now you know Asterisk is up and running and we can get into modifying some configuration files. For this Lab there are only 2 files we need to be concerned with; SIP.CONF & EXTENSIONS.CONF which can be found under /etc/asterisk.

Starting with the Sample Config files that were created we can just select and delete everything and then paste these example configs in:

SIP.CONF

[general]

context = default

bindport = 5060

bindaddr = 0.0.0.0

tcpbindaddr = 0.0.0.0

tcpenable = yes

[SIP_TRUNK]

type = peer

host = 10.100.16.78

qualify = yes

transport = tcp,udp

[5001]

type = friend

callerid = Linux User <5001>

secret = 5001

host = dynamic

canreinvite = no

dtmfmode = rfc2833

mailbox = 5001

disallow = all

allow = ulaw

transport = udp

EXTENSIONS.CONF

[general]

static=yes

writeprotect=no

[globals]

[default]

exten => _+XXXX,1,Answer()

exten => _+XXXX,n,Set(CALLERID(name)=You Did It)

exten => _+XXXX,n,Set(CALLERID(num)=${CALLERID(num):1})

exten => _+XXXX,n,Goto(${EXTEN:1},1)

exten => 5001,1,Answer()

exten => 5001,n,Dial(SIP/5001,20,tr)

exten => 5001,n,Hangup

include => outbound

[outbound]

exten => _NXXNXXXXXX,1,Set(EXT=+${EXTEN})

exten => _NXXNXXXXXX,n,Dial(SIP/SIP_TRUNK/${EXT})

exten => _NXXNXXXXXX,n,Busy

SoftPhone

Next we will use X-Lite SoftPhone to register extension 5001 to Asterisk.

Configure the SIP Account on the SoftPhone:

When you hit the Apply button you will be registering the SoftPhone with Asterisk:

You can also see the registered extension from the Asterisk CLI/Console:

Now onto the OCS Configuration (In my lab I have a single SE server, and I installed a Mediation Server). Let’s start with the Mediation Server.

As you see below, there are 2 IP Addresses on the Mediation Server. Both of them are on the same network. Of course you can place them on different networks if needed. Note, if they are in the same Network make sure that the External or PSTN facing interface set to not register with your internal DNS:

On the Next Hop Connections Screen, you can see that we are pointing this back to the Asterisk PBX and the Inbound Routing is pointing back to the OCS Pool.

The Mediation Server configuration is not any different than other configuration when setting up Enterprise Voice pointing to any other SIP Gateway.

Now, onto the Global Forest Property and Pool configurations.

I have added this Location Profile Normalization Rule for this test:

Now that you have a Normalization Rule built you will need to make a Policy and Route. Here is an example of the Route I built for Testing:

One final step before making a call from the OCS MOC Client to the Softphone is to configure your OCS User for Enterprise Voice.

Under your OCS Pool, select Users then right click to get to the Properties of the user. Click Configure on the User Properties Screen.

When you log in from you MOC 2007 Client, you will be able to dial 5001. This will get normalized to +5001 and Dial out via the Mediation Server then through Asterisk to the SoftPhone.

On the PC with the SoftPhone you will a pop-up for the call will appear and you can answer or ignore it:

 

Now let’s make a call in the other direction. On the “MOC Side” you will get the toast indicating a call is coming in:

 

Well that’s about it! I am sure I could have gone into more detail regarding setting up OCS and the Mediation server. But I wanted to concentrate on showing how to configure Asterisk, since the configuration for OCS is the same as when configuring it for any other SIP Proxy/SIP Trunk (Mediation Server/Media Gateway).

Also there is so much you can do with Asterisk. No physical TDM cards were used, but in a production environment one could easily add Analog and/or T1 TDM and make phone calls across the PSTN.