Tuesday, May 29, 2007

Asterisk The VoIP

Asterisk Basics

Asterisk is the open source/free software implementation of PBX, created by Mark Spencer of Digium. Asterisk allows a number of attached telephones to make calls to one another.And this runs on Linux, BSD, Windows and OS X. Asterisk software is written inC. As it is released under dual licensing scheme users can create new functionality by modifying the source code.This can run on both soft phones and hard phones. As of March 6, 2007, the current release version of Asterisk is 1.4.1.

License Scheme

It is released under dual licensing scheme of which the free software license is GNU general public license and the other is properitory license.

Many built-in features are included in this. Like voicemail, Interactive voice response, Conference calling, Automatic call distribution, etc. Also the users can have their own new features by editing the code.

Protocol IAX2

Asterisk also supports a wide range of Voice over IP protocols, like SIP, H.323, Inter-Asterisk eXchange (IAX).But Asterisk uses IAX2 more than the other two protocols as it is more friendlier when NAT issues come. Also IAX2 uses single UDP stream for transmission whereas SIP uses two line and H.323 uses three lines. In IAX2 data from multiple calls can be merged into a single set of packets which in turn reduces the effective IP overhead without creating additional delay. This helps in conference calling also effect bandwidth efficiency in a good way.

Installation on Debian

There are two ways to install the asterisk. One is downloading the source code and compiling it and run.For further information read http://www.asteriskguru.com/tutorials. You can also get it by using

# sudo aptitude install asterisk

which will install all the related packages. After installation you have to configure it.

Configuration

The configuration files appear in the /etc/asterisk file. Mainly three configuration files are there.

iax.conf

extensions.conf

voicemail.conf

In the iax.conf you can set up the incoming and outbound calls.

eg: [marko]

type = friend
host = dynamic
context=friends
secret=
callerid=
permit=192.168.0.0/255.255.255.0
mail=007@voicemail

In this type can be friend, user or peer.

Friend => incoming and outgoing calls

peer => outgoing calls

user => incoming calls

Host can be dynamic or a particular IP address. You can set static IP which will be associated with this account or to use dynamic one. Usually in laptops host is set as dynamic. Then you have to mention under which context this user is coming.then set a password which has to be given to the user. Also by giving the permission like this the users can make calls each other only within this network.

Now in the extensions.conf you will configure the dial plans.

eg: [voicemail]
exten => 333,1,VoicemailMain
[friends]
static=yes
exten => 333,1,Dial(IAX2/marko,10)
exten =>333,2,VoiceMail(333@voicemail)

exten => 8502,1,VoicemailMain(333@voicemail)
exten => 8502,n,Goto(s,6)

Here when some one tries to call to the number 333 then the first priority is set to dial marko for 10 seconds and if the call is not attended by him then the caller will enter the voicemail box. Then for getting the voicemail messages marko should dial 8502 and it will reach the IVR and according to the instruction you have to follow. Now suppose that there is one more context and then if you want to call to other extend users then you have to include one context inside this context.

In the voicemail.conf the voicemail optoins has been set up.

eg: [voicemail]
333 => 3333,marko,

In this, the first field is the password which should be the numerical password.

Thus the configuration is set up.

Asterisk Server


The asterisk server can be managed by using the console. To enter the console from root :



#asterisk -r

And,


#help

will display all the commands. Also after any modification you have to restart the asterisk every time. Then only the changes will get into effect. For restarting the asterisk the command is

#restart now


Soft Phones


Lots of softphones can be installed.One of them is kiax which uses the IAX2 protocol. This can be installed using

#sudo aptitude install kiax


This will install the soft phone kiax.Now for making the phone work you have to install it the asterisk server. Then you can make calls between phones through the server.

Hard Phone

You can connect hard phones to the asterisk. For that you need an external hardware like PCI card to connect to the system.

The main advantage of asterisk is that you can be free from the toll charges. If you are having internet that is only sufficient to make calls. Also it is very easy to set up.

So try this new technology in enterprise and make your colleagues call each other free.

References


Book : VoIP Telephony with Asterisk, By Paul Mahler.

http://www.asteriskguru.com/

http://en.wikipedia.org/wiki/Asterisk_%28PBX%29

http://www.voip-info.org/wiki-asterisk

http://www.kiax.org/about/

Also you can listen to the video of presentation given by Mark Spencer from here,

http://graphics.cs.uni-sb.de/VCORE/recordings.html

And join the forums to clear your doubts in installation and configuration

http://www.asteriskguru.com/board/index.php ---- forum