1936
Commento:
|
← Versione 29 del 2014-05-19 19:08:03 ⇥
7390
corretta parola che punta a pagina inesistente
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
= Install Asterisk 1.4 Branch with Asterisk GUI = This guide will show how to compile and install Asterisk 1.4 from the SVN 1.4 branch. As far as I know, no Linux distro comes with a packaged Asterisk 1.4, 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. |
= 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. |
Linea 21: | Linea 21: |
svn co http://svn.digium.com/svn/asterisk/branches/1.4/ asterisk-1.4 svn co http://svn.digium.com/svn/asterisk-addons/branches/1.4/ asterisk.addons-1.4 svn co http://svn.digium.com/svn/asterisk-gui/branches/1.4/ asterisk-gui-1.4 asterisk-gui-1.4 }}} |
svn co http://svn.digium.com/svn/asterisk/tags/1.4.36/ asterisk-1.4.36 svn co http://svn.digium.com/svn/asterisk-addons/tags/1.4.12/ asterisk-addons-1.4.12 svn co http://svn.digium.com/svn/asterisk-gui/tags/2.0.4/ asterisk-gui }}} |
Linea 37: | Linea 38: |
Note (for Debian or Ubuntu): If ./configure or make return the following error: {{{configure: error: *** termcap support not found}}}, install: {{{libncurses5-dev}}} |
|
Linea 39: | Linea 44: |
In the {{{asterisk-gui-1.4}}} run | In the {{{asterisk-gui}}} run |
Linea 64: | Linea 69: |
'''warning: replace 127.0.0.1 with your server IP address''' |
|
Linea 73: | Linea 80: |
== Understanding Asterisk 1.4 GUI == In asterisk 1.2 we had in the {{{sip.conf}}} stuff like this: {{{ register => username:password@sip.messagenet.it:5061/EXTENSION }}} 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}}} == MYSQL CDR Logs == For this section it is supposed that you have a basic MySQL knowledge Create a {{{asterisk.sql}}} file like this: {{{ CREATE DATABASE asterisk; GRANT INSERT 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}}} : {{{ [global] hostname=localhost dbname=asterisk table=cdr password=password port=3306 sock=/tmp/mysql.sock userfield=1 }}} You have to kill asterisk and restart it, a reload from the console is not enough in this case. == Notes == === 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 {{{ mailbox= }}} line form the phone block in users.conf It is a problem with asterisk telling the phone that there are messages waiting === Monitoring a link performance === Add {{{ 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 {{{ [macro-trunkdial] ; ; 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 {{{ [trunk_10] 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 = asterisk.ninux.org 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 ;insecure=very qualify = yes }}} |
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... :
Backup
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 http://svn.digium.com/svn/asterisk/tags/1.4.36/ asterisk-1.4.36 svn co http://svn.digium.com/svn/asterisk-addons/tags/1.4.12/ asterisk-addons-1.4.12 svn co http://svn.digium.com/svn/asterisk-gui/tags/2.0.4/ asterisk-gui
Compile
in each folder (follow the same order as source download):
./configure make 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:
asterisk
and once started you might attach to the console this way:
asterisk -rvvvv
The web interface is here:
http://127.0.0.1:8088/asterisk/static/config/cfgbasic.html
warning: replace 127.0.0.1 with your server IP address
To configure your account add a block in your /etc/asterisk/manager.conf
[admin] 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 => username:password@sip.messagenet.it:5061/EXTENSION
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
MYSQL CDR Logs
For this section it is supposed that you have a basic MySQL knowledge
Create a asterisk.sql file like this:
CREATE DATABASE asterisk; GRANT INSERT 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 :
[global] hostname=localhost dbname=asterisk table=cdr password=password port=3306 sock=/tmp/mysql.sock userfield=1
You have to kill asterisk and restart it, a reload from the console is not enough in this case.
Notes
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
mailbox=
line form the phone block in users.conf It is a problem with asterisk telling the phone that there are messages waiting
Monitoring a link performance
Add
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
[macro-trunkdial] ; ; 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
[trunk_10] 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 = asterisk.ninux.org 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 ;insecure=very qualify = yes