In my previous post I installed Asterisk on Ubuntu Server 10.10. The newer Ubuntu Server 11.04 (Natty Narwhal) has just arrived, so I need to test the Asterisk on it.
It is easy to install and use an Asterisk free soft PBX on Ubuntu box – if you do it frequently. I created a step by step guide to prevent you from the usually error messages during the installation:
I use Asterisk 18.104.22.168 on my 64 bit Ubuntu Server 11.04.
After the upgrade on a fresh install, we need three packages to build up our Asterisk. Let’s install the build-essential, libxml2-dev, and ncurses-dev packages.
apt-get install build-essential libxml2-dev ncurses-dev
You can find all versions of the Asterisk at the download section. Download the latest version, and extract it!
wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-22.214.171.124.tar.gz tar zxvf asterisk-126.96.36.199.tar.gz
Then install the Asterisk, config, and the shamples.
cd asterisk-188.8.131.52/ ./configure make make install make config make samples
Without the above-mentioned additional packages, you will face with these error messages during the ./configure command run.
Lack of build-essential package:
configure: error: in `/root/asterisk-184.108.40.206': configure: error: no acceptable C compiler found in $PATH
Lack of libxml2-dev package:
checking for xml2-config... no configure: *** XML documentation will not be available because the 'libxml2' development package is missing. configure: *** Please run the 'configure' script with the '--disable-xmldoc' parameter option configure: *** or install the 'libxml2' development package.
Lack of ncurses-dev package:
configure: error: *** termcap support not found (on modern systems, this typically means the ncurses development package is missing)
When the installation finishes, we have a preconfigured Asterisk. To test the Asterisk with two softphones, let’s configure the sip.conf and the extensions.conf.
Here is the sip.conf file:
[general] context = default bindport = 5060 bindaddr = 0.0.0.0 tcpbindaddr = 0.0.0.0 tcpenable = yes  type = friend callerid = User One <1001> secret = 1001 host = dynamic canreinvite = no dtmfmode = rfc2833 mailbox = 1001 disallow = all allow = ulaw transport = udp  type = friend callerid = User Two <1002> secret = 1002 host = dynamic canreinvite = no dtmfmode = rfc2833 mailbox = 1002 disallow = all allow = ulaw transport = udp
This config means that the Asterisk listen all IP, port 5060, and the TCP is enabled. It has two extensions defined for User One and User Two.
Here is the extensions.conf file:
[general] static=yes writeprotect=no [default] exten => 1001,1,Answer() exten => 1001,n,Dial(SIP/1001,20,tr) exten => 1001,n,Hangup exten => 1002,1,Answer() exten => 1002,n,Dial(SIP/1002,20,tr) exten => 1002,n,Hangup.
This config means that there are two accessible extensions existing.
After configuring the Asterisk, we need to start it.
I use X-Lite to connect to the soft PBX. Let’s configure the X-Lite!
All data come from the sip.conf. The Account name, and the Display name are the callerid. The User ID and the Authorization name are the extension number – inside the square brackets. The Password is the sicret. The Domain is the IP address of the Asterisk server.
If all configurations are good, the X-Lite will inform you.
Let’s call from User One to User Two.
Here is the User One side:
Here is the User Two side:
Troubleshooting? We always need when we try a new thing. The firs tool is the tcpdump of course, but the asterisk have a good command line interface (Asterisk CLI) to debug the problem. To access the Asterisk CLI type
This screen shows a successful call from 1001 to 1002.
The Asterisk works now! Are you wondering why I configured my Asterisk to answer on TCP? Because I would like to test the Direct SIP feature of the Microsoft Communications Server and the Lync. CU next time! ;-)
You can find the OCS 2007 R2 co-existing scenario with Asterisk 1.8 PBX article here.