Asterisk Installation

Asterisk is one of the best telephony solutions which is free to use. There are others such as yate that provide same type of solutions and even more custom ones. Due to the easy of implementation Asterisk has become more popular than anything else. Asterisk is very easy to use and lots of open source and closed source panels provide a GUI for it.

Pre-requisites for Asterisk installation:

Asterisk requires a system running with kernel 2.6 and the header files must be present to compile asterisk on your system. Complete Asterisk is written in C so we require gcc compiler with the supporting libraries such as termcap, and openssl. Asterisk add-ons require the mysql header files so please install mysql lib, mysql client and the headers to compile asterisk-addons.

Download files:

Download below mentioned files as pre-requisites steps for the asterisk installation.

a. Zaptel (http://downloads.asterisk.org/pub/telephony/zaptel/zaptel-1.4.12.1.tar.gz)

b. libpri (http://downloads.digium.com/pub/libpri/libpri-1.4-current.tar.gz)

c. asterisk (http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-1.8.30.0.tar.gz)

d. asterisk-sounds ( http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-sounds-1.2.1.tar.gz)

e.asterisk-addones(http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-addons-1.4.7.tar.gz)

 

Creating First SIP Extension:

Please add the following lines to sip.conf (/etc/asterisk/sip.conf)

Installation of Asterisk:

Copy all the files into you server (assuming you have copied all files into /us/src/)

30 Steps for installing asterisk on system:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
tar -xzf zaptel-1.4.12.1.tar.gz
tar -xzf libpri-1.4.9.tar.gz
tar -xzf asterisk-1.4.20.tar.gz
tar -xzf asterisk-sounds-1.2.1.tar.gz
tar -xzf asterisk-addons-1.4.7.tar.gz
cd zaptel-1.4.12.1
./configure
make
make install
make config
service zaptel start
cd ..
cd libpri-1.4.9
make
make install
cd ..
cd asterisk-1.4.20
./configure
make
make install
make samples
make config
cd ..
cd asterisk-sounds
make install
cd ..
cd asterisk-addons-1.4.7
./configure
make
make install
service asterisk start

If all above comands run well then we have be installed new asterisk server at current system.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[common](!) ; this is template.
type=friend
context=internal
host=dynamic
disallow=all
allow=ulaw
allow=alaw
allow=g723
allow=g729
dtmfmode=rfc2833
 
[1000](common)
username=1000
secret=1000
 
[1001](common)
username=1001
secret=1001
 
[1002](common)
username=1002
secret=1002
 
[1003](common)
username=1003
secret=1003
 
[1004](common)
username=1004
secret=1004

Above we have created 5 extensions that can be used any sip client (xlite,cisco sip phone, ATA). All users will get registered. If it does not work then check out the firwall settings. Please disable those settings until setup is completed.

Creating First Dialplan:

No extension can talk to each other unless we configure its dial plan. We have to open extension.conf (/etc/asterisk/extension.conf). Add the following lines: [internal] exten=> _XXXX,1,Dial(SIP/${EXTEN})

Now all configured phones can talk. This makes asterisk a simple platform in PBX; not many skills are required to develop an office PBX.

Creating First SIP Trunk:

Asterisk can make outbound and inbound calls, for outbound we require a provider to terminate our calls and to get calls routed to our system so for that we need a public IP.

Add following code to sip.conf:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
[trunk]
type=friend
context=internal
host=
disallow=all
allow=ulaw
allow=alaw
allow=g723
allow=g729
dtmfmode=rfc2833
 
After the update our sip.conf looks as follows:
 
[common](!) ; this is template.
type=friend
context=internal
host=dynamic
disallow=all
allow=ulaw
allow=alaw
allow=g723
allow=g729
dtmfmode=rfc2833
 
[1000](common)
username=1000
secret=1000
 
[1001](common)
username=1001
secret=1001
 
[1002](common)
username=1002
secret=1002
 
[1003](common)
username=1003
secret=1003
 
[1004](common)
username=1004
secret=1004
 
[trunk]
type=friend
context=internal
host=
disallow=all
allow=ulaw
allow=alaw
allow=g723
allow=g729
dtmfmode=rfc2833
 
Now you have to add one line to extension.conf:
 
exten => _XXXXXXX.,1,Dial(SIP/trunk1/${EXTEN})
 
So our extension.conf looks like:
 
[internal]
exten=> _XXXX,1,Dial(SIP/${EXTEN})
exten => _XXXXXXX.,1,Dial(SIP/trunk1/${EXTEN})

With the above settings it is simple to create an IP-PBX with outbound trunk.