Italiano English
Edit History Actions


Install Asterisk 1.4.36 with Asterisk GUI

This guide will show how to compile and install Asterisk 1.4.36 getting the sources from the Digium SVN repository.

As far as I know, no Linux distro comes with a packaged Asterisk 1.4.x, but this new version brings a lot of new features, such as the web configuration tool called AsteriskGUI.

Instead you could use AsteriskNow, but it does not come with the latest AsteriskGUI, and is not flexible as your own Linux Box.

In this guide I used my Gentoo Linux Box

Log in as root and... :


Remove any older Asterisk installation and backup your existing /etc/asterisk folder, we are going to make a big mess :)

Download the sources

cd /usr/src
svn co asterisk-1.4.36
svn co asterisk-addons-1.4.12
svn co asterisk-gui


in each folder (follow the same order as source download):

make install
make samples

Note (for Debian or Ubuntu):

If ./configure or make return the following error: configure: error: *** termcap support not found, install: libncurses5-dev

Optionally you can run make menuselect before make to customize your build

In the asterisk-gui run

make checkconfig

and follow the output of the command to tune the configuration files. You will need to run make checkconfig several times fixing one thing per time.

Run Asterisk

Now just run:


and once started you might attach to the console this way:

asterisk -rvvvv

The web interface is here:

warning: replace with your server IP address

To configure your account add a block in your /etc/asterisk/manager.conf

secret = mysecret
read = system,call,log,verbose,command,agent,user,config,dtmf,reporting
write = system,call,log,verbose,command,agent,user,config,dtmf,reporting

Understanding Asterisk 1.4 GUI

In asterisk 1.2 we had in the sip.conf stuff like this:

register =>

If you are configuring with the web GUI, go to the advanced options and fill the field "contact" with EXTENSION you had in the register line of Asterisk 1.2

Now go to "Incoming Calls" and create a Rule that matches your "contact".

Also, there is a bug in the scripts of the GUI. If you have many accounts from the same provider, the the "Incoming Calls" form you always have to specify the last one on the list.

Asterisk will always match the first [Trunk] that shows up typing in the console sip show peers


For this section it is supposed that you have a basic MySQL knowledge

Create a asterisk.sql file like this:


  ON asterisk.*
    TO asterisk@localhost
      IDENTIFIED BY 'yourpassword';

      USE asterisk;

      CREATE TABLE `cdr` (
      `calldate` datetime NOT NULL default '0000-00-00 00:00:00',
      `clid` varchar(80) NOT NULL default '',
      `src` varchar(80) NOT NULL default '',
      `dst` varchar(80) NOT NULL default '',
      `dcontext` varchar(80) NOT NULL default '',
      `channel` varchar(80) NOT NULL default '',
      `dstchannel` varchar(80) NOT NULL default '',
      `lastapp` varchar(80) NOT NULL default '',
      `lastdata` varchar(80) NOT NULL default '',
      `duration` int(11) NOT NULL default '0',
      `billsec` int(11) NOT NULL default '0',
      `disposition` varchar(45) NOT NULL default '',
      `amaflags` int(11) NOT NULL default '0',
      `accountcode` varchar(20) NOT NULL default '',
      `userfield` varchar(255) NOT NULL default ''

      ALTER TABLE `cdr` ADD INDEX ( `calldate` );
      ALTER TABLE `cdr` ADD INDEX ( `dst` );
      ALTER TABLE `cdr` ADD INDEX ( `accountcode` );

Change the password in the file and then simply

mysql -u root -p < asterisk.sql

Now edit /etc/asterisk/cdr_mysql.conf :


You have to kill asterisk and restart it, a reload from the console is not enough in this case.


Phones diplay "New user" instead of numbers on incoming call

From users.conf you may comment out

fullname = New User

or incoming calls from peers will be displayed on the phones as "New user" instead of showing the phone numbers.

Avaya phones freeze after a while

Comment out the


line form the phone block in users.conf It is a problem with asterisk telling the phone that there are messages waiting


qualify = yes

No Ring Tone

In extensions.conf modify the macro trunkdial as follows:

be aware sometimes you have to change also the [macro-trunkdial-failover-0.3] 

the key idea is that you add a answer and a ringing command before starting the call

; Standard trunk dial macro (hangs up on a dialstatus that should 
; terminate call)
;   ${ARG1} - What to dial
;exten => s,1,Dial(${ARG1})

exten => s,1,Answer
exten => s,2,Ringing
exten => s,3,Dial(${ARG1})
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Hangup
exten => s-BUSY,1,Hangup
exten => _s-.,1,NoOp

If you still experience problems also you can do this:

in users.conf :

transfer = no

Why this works?: if you allow transfer, ringing sounds might get lost especially if mixing technologies such as SIP and IAX2 ??

Old workaround:

If you can't hear ringing tone on your voip phone try to add the following line in the extension.conf file

exten = your_pattern,1,Answer
exten = your_pattern,2,Ringing
exten = your_pattern,3,Macro(trunkdial,${trunk_n}/${EXTEN:0})

IAX Tunnel with a peer behind NAT

Configuration on the Peer behind NAT

  • trunk_10 is the username that asterisk will use to register to the other peer with the public IP
  • trunk_1 is the username that the other user will present to log in here
  • type friend is VERY IMPORTANT for this configuration

allow = ulaw,alaw,gsm,ilbc,speex,g726,adpcm,lpc10
context = DID_trunk_10
dialformat = ${EXTEN:1}
hasexten = yes
hasiax = yes
hassip = no
username = trunk_1
secret = mySecret
host = 
port = 4569
registeriax = yes
registersip = no
trunkname = Manual Tor Vergata
trunkstyle = customvoip
disallow = g729
insecure = very
type = friend
qualify = yes

Configuration on the Peer with public IP

[trunk_1] ;saverio
allow = all
context = DID_trunk_1
dialformat = ${EXTEN:1}
hasexten = yes
hasiax = yes
hassip = no
host = dynamic
secret = mySecret
username = trunk_10
port = 4569
type = friend
registeriax = yes
registersip = no
trunkname = Custom - tuscolomesh
trunkstyle = customvoip
qualify = yes