Scarica Fedora
Identità
 Non sei loggato!
Fedora 13
Scarica Fedora 13
Login
Nome utente:

Password:

Ricordami



Password persa?

Registrati ora!
Menu principale
Utenti
Utenti registrati:
Oggi: 2
Ieri: 2
Totali: 5820
Ultimo: lorenzo68

Utenti Online:
Ospiti : 15
Iscritti : 2
Totali: 17
Online ora [Popup]
silvioForum
robyduckForum
Ultima Immagine
F13 netbook (18/8/2010)
F13 netbook
Sondaggi
Stanno nascendo delle distro dedicate ai singoli istituti scolastici. Cosa ne pensi?
Politica sbagliata, sarebbe meglio usare una distribuzione classica
Ottimo, queste distro sono semplici come i sistemi M$ e soddisfano le esigenze specifiche degli studenti
Ogni passo verso l'open source è benvenuto
Lo studente in questo modo non avrà nessuna nozione informatica in più di prima
Enti pubblici, scuole, università, Linux sta prendendo piede
Sarebbe bello poter creare dei posti di lavoro in più per supportare al meglio queste strutture
Altro (lascia il tuo commento)
Il sondaggio termina il 20/9/2010 22:00
I migliori Downloads
Ricerca avanzata
SmartSection is developed by The SmartFactory (http://www.smartfactory.ca), a division of INBOX Solutions (http://inboxinternational.com)
Guide > Le guide di Fedoraserver > Fedora 8 > Un centralino con Asterisk e Fedora
Un centralino con Asterisk e Fedora
Pubblicato da Pippo il 11/5/2008 (3613 Letture)
Lo scopo di questa guida è l'installazione di un semplice centralino telefonico PBX composto da 1 server Asterisk, 2 client SIP, 1 client IAX2 e una rete telefonica ISDN TelecomItalia.

Un centralino con Asterisk e Fedora


1. Introduzione
2. Hardware e software utilizzato
3. Predisposizione
4. Installazione driver scheda ISDN
5. Installiamo Asterisk
6. Configuriamo Asterisk
7. Avviamo Asterisk
8. Asterisk ed i Firewall
9. Risorse
10. Copyright



1. Introduzione


Questa guida è stata scritta da Nico Timeo, sistemista presso la Società Techpoint di Catania. Vedetela come "un'esperienza condivisa". Ovviamente, si può partire da questa configurazione base, testata e funzionante, per implementare una centrale telefonica più complessa e con funzionalità estese. Non è una guida che spiega cos'è Asterisk e come è strutturato: per questo ci sono altre risorse (v. più avanti).

2. Hardware e software utilizzato


Ecco il sistema che ha costituisce il nostro server, che funzionerà come un vero e proprio "centralino" PBX (un altro modo per interfacciarsi al nostro PBX virtuale potrebbe essere un PC che soddisfi i requisiti minimi per Fedora):

SERVER:
Motherboard:    Asus P4PE-X
Processore
:    Pentium 42.60 MHz
RAM
:        512 MB
Video
:        ATI Radeon 7000/VE
Audio
:        Intel 82801 AC97 
LAN
:        Broadcom BCM4401 100Base-T
ISDN
:        Eicon Diva Server V-4BRI

ovviamente munito di tastiera, mouse, lettore CD/DVD, e di tutti gli altri accessori utili ad un normale pc. Le postazioni Client (SIP), invece, saranno dei normali telefoni Sirio della Telecom Italia collegati tramite il connettore RJ11 ad un adapter Grandstream HandyTone-286.
Il software che utilizzeremo per il VoIP è il client IAX2 idefisk, liberamente scaricabile (per Linux, Windows e Mac OSX) dal sito di Asteriskguru

3. Predisposizione


Il primo passo è ovviamente l'installazione del sistema operativo sul server. Scelgo la distro Fedora Core 4 (la 5 mi ha dato qualche problema...): l'installazione avviene da DVD con configurazione tipica per "Server". Aggiungo solo X Window e Gnome per l'interfaccia grafica.
Al termine dell'installazione provvedo ad effettuare tutti gli aggiornamenti ufficiali rilasciati finora con (N.B.: Tutti i comandi che lancerò da questo momento vengono effettuati da root!):

yum update yum

e poi

yum update
reboot

Dopo il riavvio mi ritrovo con il kernel 2.6.15-1.1831_FC4 (il più recente, al momento in cui scrivo). Verifico che tra i servizi configurati all'avvio ci sia il minimo indispensabile per ciò che devo fare:

acpid
apmd
auditd
autofs
cpuspeed
crond
haldaemon
iptables
messagebus
netfs
network
nifd
portmap
rpcgssd
rpcidmapd
sendmail
syslog

4. Installazione driver scheda ISDN


Sul sito ufficiale della Eicon ci sono le versioni rpm dei driver già pacchettizzati per Fedora, ma solo per la Core 1 con un determinato kernel, quindi, dopo aver riempito un apposito modulo , scarico gli rpm a livello di sorgente versione 7.7 per la mia scheda da questo link. Stando alle informazioni che leggo, riportate anche sul sito Voip-info, la scheda è supportata da Asterisk... bene! E visto che ci sono, scarico anche la Quick Installation Guide, la Reference Guide e le Source Package installation notes... mi saranno utili per l'installazione.
Per la corretta installazione dei driver è necessario scaricare il pacchetto kernel-devel:

yum install kernel-devel

=============================================================================
 
Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 
kernel-devel            i686       2.6.15-1.1831_FC4  updates-released  4.3 M
Installing 
for dependencies:
 
hardlink                i386       1:1.0-1.13       base              8.7 k

che installa i sorgenti del kernel nella directory /usr/src/kernels/2.6.15-1.1831_FC4-i686/. Seguendo le istruzioni presenti nel file readme creo un link a questa directory con il nome /usr/src/linux con il comando:

ln -/usr/src/kernels/2.6.15-1.1831_FC4-i686/ /usr/src/linux

Per completare installo anche i pacchetti ncurses-devel, gcc e gcc-c++:

=============================================================================
 
Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 
gcc                     i386       4.0.2-8.fc4      updates-released  2.8 M
 gcc
-c++                 i386       4.0.2-8.fc4      updates-released  2.8 M
 ncurses
-devel           i386       5.4-17           base              1.6 M
Installing 
for dependencies:
 
glibc-devel             i386       2.3.5-10.3       updates-released  1.9 M
 glibc
-headers           i386       2.3.5-10.3       updates-released  596 k
 glibc
-kernheaders       i386       2.4-9.1.94       base              706 k
 libstdc
++-devel         i386       4.0.2-8.fc4      updates-released  9.0 M

A questo punto tutto è pronto per installare i sorgenti dei driver. Mi posiziono nella cartella dove ho scaricato il file e lancio il comando:

rpm -ivh divas4linux_EICON-105.541-1.i386.rpm

che installa i sorgenti nella cartella /usr/lib/eicon/divas/src, dalla quale invoco:

./Build

Questo è l'output... pare sia andato tutto bene!

PROCESSINGPlease press CTRL-C to abort (waiting 15 sec) ... OK
PROCESSING
Cleanup ... OK
PROCESSING
Check system environment ... OK
PROCESSING
Read kernel version ... OK
PROCESSING
Update kernel source tree ... OK
PROCESSING
Update kernel configuration ... OK
PROCESSING
Call 'make menuconfig'

 
...   HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts
/kconfig/kxgettext.o
  HOSTCC  scripts
/kconfig/mconf.o
  HOSTCC  scripts
/kconfig/zconf.tab.o
  HOSTLD  scripts
/kconfig/mconf
  HOSTCC  scripts
/lxdialog/checklist.o
  HOSTCC  scripts
/lxdialog/inputbox.o
  HOSTCC  scripts
/lxdialog/lxdialog.o
  HOSTCC  scripts
/lxdialog/menubox.o
  HOSTCC  scripts
/lxdialog/msgbox.o
  HOSTCC  scripts
/lxdialog/textbox.o
  HOSTCC  scripts
/lxdialog/util.o
  HOSTCC  scripts
/lxdialog/yesno.o
  HOSTLD  scripts
/lxdialog/lxdialog
scripts
/kconfig/mconf arch/i386/Kconfig
#
# using defaults found in .config
#

*** End of Linux kernel configuration.
*** 
Execute 'make' to build the kernel or try 'make help'.

OK
PROCESSING
Call 'make dep'please be patient ... OK
PROCESSING
Call 'make modules'please be patient ... OK
PROCESSING
Build MTPX adapter driver ... OK
PROCESSING
Install Diva modules ... divadidd.kodivas.kodiva_mnt.ko,
diva_idi.kodivacapi.kokernelcapi.kocapi.ko diva_mtpx.ko OK
PROCESSING
Cleanup ... OK
PROCESSING
Build Divatty ...  OK
PROCESSING
Cleanup ... OK

SUCCESS
You can configure and start your Diva adapter now.

Ora vado a configurare i parametri della scheda:

cd /usr/lib/eicon/divas

e poi

./Config

Imposto i parametri mantenendo i valori di default (che ci stanno bene) e proseguo fino alla fine. Terminata la configurazione avvio i driver con il comando:

./Start

Anche qui sembra andare tutto bene!

Update CFGLib information ... succeeded
Start adapter Nr
:'Diva Server V-4BRI-8'SN16737 ... OK
Save Diva Server V
-4BRI-8 SN:16737 PORT 1 initial XLOG to /var/log/diva1.log ... OK
Save Diva Server V
-4BRI-8 SN:16737 PORT 2 initial XLOG to /var/log/diva2.log ... OK
Save Diva Server V
-4BRI-8 SN:16737 PORT 3 initial XLOG to /var/log/diva3.log ... OK
Save Diva Server V
-4BRI-8 SN:16737 PORT 4 initial XLOG to /var/log/diva4.log ... OK
Load Diva IDI  driver 
... OK
Load Diva MTPX driver 
... OK
Load optimized Diva CAPI driver 
... not available
Load KERNELCAPI driver 
... OK
Load Diva CAPI driver 
... OK
Load CAPI driver 
... OK

  Successfully updated configuration of Diva Server V
-4BRI-8 PORT1 SN:16737
  Successfully updated configuration of Diva Server V
-4BRI-8 PORT2 SN:16737
  Successfully updated configuration of Diva Server V
-4BRI-8 PORT3 SN:16737
  Successfully updated configuration of Diva Server V
-4BRI-8 PORT4 SN:16737
  Successfully updated configuration of Diva TTY driver
  Successfully updated configuration of Diva MTPX driver
  Successfully updated configuration of Diva CAPI driver

5. Installiamo Asterisk


Per rispondere ai requisiti di compilazione installo openssl-devel e cvs:

=============================================================================
 
Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 
cvs                     i386       1.11.19-9        updates-released  1.2 M
 openssl
-devel           i386       0.9.7f-7.10      updates-released  1.7 M
Installing 
for dependencies:
 
e2fsprogs-devel         i386       1.38-0.FC4.1     updates-released  512 k
 krb5
-devel              i386       1.4.1-5          updates-released  923 k
 zlib
-devel              i386       1.2.2.2-5.fc4    updates-released   98 k

Ora, sempre da root:

cd /usr/local/src
mkdir asterisk
export CVSROOT
=:pserver:anoncvs@cvs.digium.com:/usr/cvsroot
cvs login

(la password è anoncvs)

cvs checkout asterisk
cd asterisk
make
make install
make samples

Per utilizzare la mia scheda Eicon Diva Server V-4Bri devo installare anche il driver chan_capi (Asterisk/OpenPBX ISDN CAPI chan driver) scaricabile da Sourceforge. Il file che prelevo è chan_capi-cm-0.6.4.tar.gz, e lo copio in /usr/src/:
Per risolvere le dipendenze installo anche isdn4k-utils-devel:

yum install isdn4k-utils-devel

Per installare chan_capi:

cd /usr/src
tar 
-xzf chan_capi-cm-0.6.4.tar.gz
rm chan_capi
-cm-0.6.4.tar.gz
cd chan_capi
-cm-0.6.4/
make
make install

Per fare in modo che Asterisk venga avviato automaticamente al boot del server:

cd /usr/local/src/asterisk/contrib/init.d/
cp rc.redhat.asterisk /etc/rc.d/init.d/asterisk
chkconfig 
--add asterisk

Per far funzionare musiconhold è necessario scaricare mpg123 sempre da Sourceforge. Per installarlo, basta copiare il file scaricato nella directory /usr/src e poi:

cd /usr/src/
tar -zxvf mpg123-0.59r.tar.gz
rm mpg123
-0.59r.tar.gz
cd mpg123
-0.59r/
make linux
make install

Ora possiamo editare i parametri dei più importanti file di configurazione (presenti nella directory /etc/asterisk/).

6. Configuriamo Asterisk


a) capi.conf
Questo file configura i parametri della scheda ISDN. Sono da notare il contesto nel quale confluiranno le chiamate in arrivo (capi-in) e il parametro echocancel=yes, che serve ad eliminare l'eco per le schede Eicon Diva Server.

[general]
nationalprefix=0
internationalprefix
=00
rxgain
=0.8
txgain
=0.8
language
=it

[DIVA]
isdnmode=msn
incomingmsn
=**il mio numero telefonicosenza lo 0 del prefisso**
defaultcid=**il mio numero telefonicosenza lo 0 del prefisso**
controller=1
group
=1
softdtmf
=on
relaxdtmf
=on
accountcode
=
context=capi-in
echocancel
=yes
devices
=2

b) modules.conf
Questo file configura l'avvio o meno di alcuni moduli. E' da notare: l'avvio di chan_capi.so, fondamentale per il funzionamento della scheda ISDN.

[modules]
autoload=yes
noload 
=&gtpbx_gtkconsole.so
noload 
=&gtpbx_kdeconsole.so
noload 
=&gtapp_intercom.so
noload 
=&gtchan_modem.so
noload 
=&gtchan_modem_aopen.so
noload 
=&gtchan_modem_bestdata.so

noload 
=&gtchan_modem_i4l.so
load 
=&gtres_musiconhold.so
noload 
=&gtchan_alsa.so
load 
=&gtres_features.so
load 
=&gtchan_capi.so

[global]
chan_capi.so=yes

c) sip.conf
Questo file configura i client che utilizzano il protocollo SIP. In questo esempio ne ho 2, l'interno 101 e l'interno 201. Sono i telefoni Sirio collegati all'ATA GrandStream. Da notare: la scelta dei codec influisce sulla qualità della conversazione, ma a codec migliore corrisponde un maggiore consumo di banda.

[general]
allowguest=no
bindport
=5060
bindaddr
=**indirizzo ip del server**
nat=route
disallow
=all
allow
=G723.1
allow
=ulaw
allow
=alaw
allow
=gsm
context
=stuffcalls
language
=it

[101]
type=friend
username
=101
secret
=**password scelta**
host=dynamic
context
=test
mailbox
=101

[201]
type=friend
username
=201
secret
=**password scelta**
host=dynamic
context
=test
mailbox
=201

d) iax.conf
Questo file configura i client che utilizzano il protocollo IAX2, tipico di Asterisk. Molto simile al file sip.conf precedente, cambia solo il protocollo usato. In questo esempio ho un solo interno, il 102.

[general]
bindport=4569
bindaddr
=0.0.0.0
language
=it
bandwidth
=medium
disallow
=all
allow
=G723.1
allow
=ulaw
allow
=alaw
allow
=gsm
jitterbuffer
=no
forcejitterbuffer
=no
tos
=lowdelay
autokill
=yes

[102]
type=friend
username
=102
secret
=**password scelta**
host=dynamic
context
=test
mailbox
=102

e) extensions.conf
Questo è il file più complesso, gestisce il flusso delle chiamate.
Nell'esempio abbiamo tre contesti: capi-in per le chiamate in arrivo dalla rete telefonica esterna; test per le chiamate tra gli interni; stuffcalls per le chiamate non gestite. Da notare: alle chiamate provenienti dall'esterno viene applicato un filtro. Le chiamate ricevute dal lunedì al venerdì, dalle 9 alle 13 e dalle 15 alle 18 vengono accolte da una voce guida (il file instradamento) che invita a premere il tasto 1, 2 o 3 a seconda dell'interno con cui si vuole comunicare. La pressione dei suddetti tasti corrisponde agli interni 101, 201 e 102 definiti in precedenza.
Se la chiamata esterna viene ricevuta in un orario diverso, si verrà accolti da una voce che invita a richiamare durante gli orari di apertura dell'ufficio.
Le chiamate al numero 9888 interpellano la segreteria telefonica (voicemail).

[general]
static=
yes
writeprotect
=yes
autofallthrough
=yes
language
=it

[stuffcalls]
exten =&gt_.,1,Congestion

[test]
exten =&gt101,1,Dial(SIP/101,30)
exten =&gt101,2,Voicemail(u101)
exten =&gt101,3,Wait(2)
exten =&gt101,4,Hangup()
exten =&gt101,102,Voicemail(b101)
exten =&gt101,103,Wait(2)
exten =&gt101,104,Hangup()

exten =&gt102,1,Dial(IAX2/102,30)

exten =&gt201,1,Dial(SIP/201,30)
exten =&gt201,2,Voicemail(u201)
exten =&gt201,3,Wait(2)
exten =&gt201,4.Hangup()
exten =&gt201,102,Voicemail(b201)
exten =&gt201,103,Wait(2)
exten =&gt201,104,Hangup()

exten =&gt_XXXXXXXXXX,1,Answer()
exten =&gt_XXXXXXXXXX,2,Playtones(ring)
exten =&gt_XXXXXXXXXX,3,Set(CALLERID(number)=**il mio numero di telefono**)
exten =&gt_XXXXXXXXXX,4,Dial(CAPI/DIVA/${EXTEN})
exten =&gt_XXXXXXXXXX,5,Hangup()

exten =&gt9888,1,VoicemailMain(${CALLERIDNUM})
exten =&gt9888,2,Hangup()

[
capi-in]
exten =&gt_XXXXXXXXX,1,Ringing()
exten =&gt_XXXXXXXXX,2,Wait(2)
exten =&gt_XXXXXXXXX,3,GoToIfTime(09:00-13:00|mon-fri|*|*?lavoro,1)
exten =&gt_XXXXXXXXX,4,GoToIfTime(15:00-18:00|mon-fri|*|*?lavoro,1)
exten =&gt_XXXXXXXXX,5,Playback(FuoriOrario)
exten =&gt_XXXXXXXXX,6,Playback(FuoriOrario)
exten =&gt_XXXXXXXXX,7,Hangup()

exten =&gtlavoro,1,Background(instradamento)
exten =&gtlavoro,2,Background(instradamento)
exten =&gtlavoro,3,Background(instradamento)
exten =&gtlavoro,4,Hangup()

exten =&gt1,1,Dial(SIP/101,30)
exten =&gt1,2,Voicemail(u101)
exten =&gt1,3,Wait(2)
exten =&gt1,4,Hangup()
exten =&gt1,102,Voicemail(b101)
exten =&gt1,103,Wait(2)
exten =&gt1,104,Hangup()

exten =&gt2,1,Dial(SIP/201,30)
exten =&gt2,2,Voicemail(u201)
exten =&gt2,3,Wait(2)
exten =&gt2,4,Hangup()

exten =&gt2,102,Voicemail(b201)
exten =&gt2,103,Wait(2)
exten =&gt2,104,Hangup()

exten =&gt3,1,Dial(SIP/102,30)
exten =&gt3,2,Voicemail(u102)
exten =&gt3,3,Wait(2)
exten =&gt3,4,Hangup()
exten =&gt3,102,Voicemail(b102)
exten =&gt3,103,Wait(2)
exten =&gt3,104,Hangup()

7. Avviamo Asterisk


Il primo avvio di Asterisk:

asterisk -vvvgc

Avviene correttamente! Ora possono iniziare le danze...

8. Asterisk ed i Firewall


Noto che i tentativi di registrazione dei client SIP avvengono correttamente, ma per autenticarsi occorre che sul firewall del server sia aperta in uscita e in ricezione la porta 5060, e solo in uscita la porta 5004. Sui client invece occorre aprire solo in uscita le porte 5060 e 5004.
Una volta configurato il firewall correttamente i client si registrano e comunicano tra loro senza problemi! Eureka!

9. Risorse


a) Il sito ufficiale di Asterisk;
b) L'User's Group Italia di Asterisk;
c) Il wiki;
d) Il sito di Asteriskguru.

10. Copyright


Questo articolo viene rilasciato sotto Licenza Creative Commons.

Naviga negli articoli
Precedente articolo Fedora 8 Tips and Tricks (v0.4), di Gregory Gulik Personal Fedora 8 Installation Guide di Mauriat Miranda prossimo articolo
I commenti sono di proprietà degli autori. Si declina ogni responsibilità sul loro contenuto.
Autore Contenuto
Powered by © 2005 IMAGO:THEMES Theme Design by IMAGO DESIGN CORP. Icons Everaldo.com fentlinux
è un marchio registrato Redhat. Tutti i marchi e loghi sono di proprietà dei rispettivi proprietari.
Questo sito non è affiliato o appoggiato da Fedora Project.