Howto: Asterisk 1.4.21 connection to VoIP Provider under Debian

Lots of caffeine
Long finger nails (they will be short by the end)
Needing a hair cut (might be bald by the end)

Note: I am just joking about the prerequisites, I found it hard to get stuff right cause a lot of howtos out there are bit vague and cryptic. So here is my attempt to make it a bit easier for others to setup Asterisk and connect to a VoIP provider.

What is Asterisk:

Asterisk is software that turns an ordinary computer into a voice communications server. Asterisk is the world’s most powerful and popular telephony development tool-kit. It is used by small businesses, large businesses, call centers, carriers and governments worldwide. Asterisk is open source and is available free to all under the terms of the GPL.

For this howto we will be logged in as root, I take no responsibility to what may or may not damage or happen to your system.

Installing Asterisk:

# apt-get install asterisk

Under Debian Lenny this is the packages it will download and install. A lot of the packages it installs you may not need especially if you don’t need ‘vpb-driver-source’ for Voicetronix telephony hardware, but I will go into that later in the howto.

asterisk asterisk-config asterisk-sounds-main build-essential bzip2 ca-certificates cpp cpp-4.3 debhelper dpkg-dev g++ g++-4.3 gcc gcc-4.3 gettext html2text intltool-debian libasound2 libc-client2007b libc6-dev libcompress-raw-zlib-perl libcompress-zlib-perl libcurl3 libdigest-hmac-perl libdigest-sha1-perl libfile-remove-perl libgmp3c2 libgomp1 libgsm1 libiksemel3 libio-compress-base-perl libio-compress-zlib-perl libio-stringy-perl libltdl3 libmail-box-perl libmail-sendmail-perl libmailtools-perl libmime-types-perl libmpfr1ldbl libobject-realize-later-perl libogg0 libpq5 libpri1.0 libradiusclient-ng2 libsensors3 libsnmp-base libsnmp15 libspeex1 libspeexdsp1 libsqlite0 libssh2-1 libstdc++6-4.3-dev libsys-hostname-long-perl libsysfs2 libtimedate-perl libtonezone1 liburi-perl libuser-identity-perl libvorbis0a libvorbisenc2 libvpb0 linux-libc-dev make mlock module-assistant odbcinst1debian1 openssl patch po-debconf unixodbc vpb-driver-source

First we need to make a backup of the sip.conf and extensions.conf files that we’ll be working with in this howto.

# mv /etc/asterisk/sip.conf /etc/asterisk/sip.conf.bak ; mv /etc/asterisk/extensions.conf /etc/asterisk/extensions.conf.bak

Now that we have moved the files we need to create a new sip.conf and extensions.conf files, change ownership and permission of them.

# touch /etc/asterisk/sip.conf ; chown asterisk:asterisk /etc/asterisk/sip.conf ; chmod 640 /etc/asterisk/sip.conf && touch /etc/asterisk/extensions.conf ; chown asterisk:asterisk /etc/asterisk/extensions.conf ; chmod 640 /etc/asterisk/extensions.conf

First of we are going to start with editing the sip.conf file with our favorite editor in my case nano.

# nano /etc/asterisk/sip.conf

This is basically what I have added to my sip.conf file. Stuff in bold is what you’ll have to change to what your VoIP provider has provided you and lines that start with ; are my notes and it how to comment out stuff.

; This section is how we are logging into our VoIP provider

; This section is how outbound calls are handle to our
; VoIP provider and the codecs we want to use etc.

; This section is for how we connect to our VoIP provider for
; inbound calls.

; Below here is a user that has been create to be able to log
; into the Asterisk server for inbound and outbound calls via
; our VoIP provider.
callerid=”tester” <6678>

Now onto the extensions.conf file, you’ll notice some things in this file that are referred to in the sip.conf file. Again with our favorite editor this is basically what I have added to the file. As before what is bold you have change to match details given to from your VoIP provider and what is commented out with ; are my notes

# nano /etc/asterisk/extenions.conf

; Handle calls coming in from our VoIP provider to Asterisk
; are directed to the extension 6678 on Asterisk
exten => account,1,Dial(SIP/6678,30)
exten => account,2,Congestion
exten => account,102,Busy

; Sending all outbound calls with prefix 9 via our VoIP provider.
; Stripping the prefix 9 before sending call to VoIP provider.
; Dial 90881234567 will become 0881234567 for example.
exten => _9.,1,Dial(SIP/${EXTEN:1}@MyNetFone,30)
exten => _9.,2,Congestion
exten => _9.,102,Busy

Ok this basically does it for the 2 configuration file we had to play with to getting a connection to our VoIP provider.

Restarting Asterisk:
Now comes the fun part restarting Asterisk. This can be done a couple of ways.
First we can attach to the currently running Asterisk CLI by:

# asterisk -r

And you’ll get an output like this.

# asterisk -r
Asterisk, Copyright (C) 1999 – 2008 Digium, Inc. and others.
Created by Mark Spencer
Asterisk comes with ABSOLUTELY NO WARRANTY; type ‘core show warranty’ for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type ‘core show license’ for details.
This package has been modified for the Debian GNU/Linux distribution
Please report all bugs to
Connected to Asterisk currently running on localhost (pid = 32096)

From here to restart Asterisk we type:

restart now


localhost*CLI> restart now

Also Asterisk CLI is TAB auto complete friendly 🙂

The second way is depended on which ever way you prefer to restart services, in terminal to just type:

# invoke-rc.d asterisk restart


# /etc/init.d/asterisk restart

Is it working:
Now that we have restarted Asterisk, lets connect back into Asterisk’s CLI:

# asterisk -r

We need to now check that we have connected and logged into our VoIP provider and we do this by typing:

localhost*CLI> sip show registry

Example output:

localhost*CLI> sip show registry

Host                            Username       Refresh State                Reg.Time             account           105 Registered           Wed, 16 Dec 2009 14:56:29

If we done everything correctly we should be able to make and receive calls through our VoIP provider from another computer or laptop with a softphone installed like Ekiga that is logged into the Asterisk server.

Clean Up:
As I mentioned earlier in this howto that there may packages installed that you not need for example ‘vpb-driver-source’ for Voicetronix telephony hardware. As I not needed it, to uninstall it and all the development and compiler packages all you need to do is:

# apt-get remove –purge build-essential bzip2 cpp cpp-4.3 debhelper dpkg-dev g++ g++-4.3 gcc gcc-4.3 gettext html2text intltool-debian libc6-dev libcompress-raw-zlib-perl libcompress-zlib-perl libdigest-hmac-perl libdigest-sha1-perl libfile-remove-perl libgmp3c2 libgomp1 libio-compress-base-perl libio-compress-zlib-perl libio-stringy-perl libmail-box-perl libmail-sendmail-perl libmailtools-perl libmime-types-perl libmpfr1ldbl libobject-realize-later-perl libstdc++6-4.3-dev libsys-hostname-long-perl libtimedate-perl liburi-perl libuser-identity-perl linux-libc-dev make module-assistant patch po-debconf vpb-driver-source

Now that all the hard work is over and done with, can sit back with a beer and call up a mate and have a yarn(chat) and enjoy to spoils of having our own PBX. 🙂

Comments (0)

› No comments yet.

Leave a Reply

Pingbacks (0)

› No pingbacks yet.

%d bloggers like this: