// Stai leggendo ...

Asterisk

Installiamo celliax su un server Ubuntu (Debian)

Con questa piccola guida installeremo un server linux Ubuntu (e quindi basato su Debian) e successivamente compileremo Celliax per aggiungergli le funzionalità di gateway GSM.Il tutto “farcito” con qualche semplice configurazione dei file celliax.conf, sip.conf e extensions.conf

Di Celliax ormai sappiamo tutto, quello che cercheremo di fare oggi è di installare questo promettente progetto open source su di un server Ubuntu Feisty Fawn 7.04, al fine di aggiungere al nostro “amato” centralino IP anche la funzionalità di gateway GSM.
La scelta è caduta su questa distribuzione perchè è certamente una delle più attive, con rilasci di nuovi pacchetti e bugfix “quasi quotidiani”, inoltre Ubuntu si è ormai distinta per la sua facilità di utilizzo e gestione, nonchè per l’enorme quantità di software “precompilato” (o meglio “debianizzato”) pronto ad essere installato con pochi comandi.

Cominciamo.

A) Per prima cosa è necessario scaricarsi dal sito della distribuzione la versione ALTERNATE di Ubuntu (disponibile per moltissime architetture), e masterizzarne il cd
B) Avviamo il pc con il cd di Ubuntu Feisty, ed una volta giunti al menu grafico scegliamo INSTALL A TEXT ONLY BASED SYSTEM. Partirà il processo di installazione durante il quale sarebbe bene connettere il nostro pc al router per mezzo di un cavo di rete.

C) Una volta terminata l’installazione e riavviato il pc avremo di fronte a noi un consolle testuale.Passiamo ad installare tutto il necessario per compilare celliax ed installare asterisk grazie al comando:

sudo apt-get install asterisk asterisk-prompt-it asterisk-dev xorg-dev libasound2-dev build-essential subversion cvs libssl-dev zlib1g-dev bison ncurses-dev libnewt-dev initrd-tools procps

D) Non ci resta che aggiornare il sistema prima di passare alla vera e propria installazione di Celliax

sudo apt-get update && sudo apt-get upgrade

E) A questo punto spostiamoci nella cartella /usr/src e passiamo in installare Celliax da sorgenti:

cd /usr/src
sudo svn checkout http://www.celliax.org:8081/svn/celliax/branches/test1 test1
cd test1/asterisk-1.2.17/
sudo make

F) Al termine della compilazione (potrebbe impiegare diverso tempo) spostiamo il channel_celliax appena creato ed i suoi file di configurazione:

sudo cp channels/chan_celliax.so /usr/lib/asterisk/modules/
sudo cp ../celliax_stuff/newconfigs/celliax.conf /etc/asterisk/

G) Bene non ci resta che impostare una password di root e passare alla personalizzazione della nostra configurazione.

sudo passwd

H) Impostata la password di root cominciamo con il creare un’ interno SIP

su
nano /etc/asterisk/sip.conf

Eccovi il mio:

[general]
nat=yes ;se asterisk è dietro nat
externip=111.111.111 ;mio ip adsl o dyndns
localnet=192.168.1.54/255.255.255.0 ; indirizzo locale server asterisk
bindport = 5060 ; Port to bind to (SIP is 5060)
bindaddr = 0.0.0.0 ; Address to bind to (all addresses on machine)
disallow=all
allow=ulaw
allow=alaw

[100]
type=friend
secret=password
record_out=Never
record_in=Never
qualify=yes
port=5060
nat=yes
mailbox=100@device
host=dynamic
dtmfmode=rfc2833
dial=SIP/100
context=interni
canreinvite=yes
callerid=device <100>

I) Ora passiamo ad extensions.conf

nano /etc/asterisk/extensions.conf

L’estensione [interni] semplicemente fa squillare l’interno 100 in caso di chiamata incoming, mentre l’estensione [mobile] realizza un test dell’eco (chi chiama potrà fare un test dell’eco).

[interni]
exten => _X.,1,Dial(Celliax/${EXTEN},30)

[mobile]
exten => s,1,Answer
exten => s,n,wait(1)
exten => s,n,Playback(demo-echotest) ; Let them know what’s going on
exten => s,n,Echo ; Do the echo test
exten => s,n,Playback(demo-echodone) ; Let them know it’s over
exten => s,n,Hangup
;exten => s,1,Dial(SIP/100,30,tTr) ;Transfer to another extension
;exten => s,n,Hangup ; Hang them up

L) Non ci resta che personalizzare il file di configurazione di celliax

nano /etc/asterisk/celliax.conf

Eccovi il mio commentato:

language=it  ; imposta la lingua da utilizzare (nel nostro caso IT avendo installato il pacchetto di voci italiane di asterisk)

context=mobile ; context creato in extensions da eseguire.Nel mio caso [mobile], e quindi il test dell'echo; ;

extension=100 ;(Default extension (in extensions.conf) dove far arrivare le chiamate incoming;

control_device_protocol=AT ; protocollo utilizzato da celliax per gestire le chiamate incoming ed outgoing, se usate un cell AT compatibile (motorola) impostate AT

;name of the serial port device
control_device_name=/dev/ttyACM0 ; this is a Motorola phone, recognized as a modem ;control_device_name=/dev/ttyS9 ; this is the COM10 on windows
;control_device_name=/dev/ttyUSB0 ; this is the first USB serial port in Linux

playback_boost=-10 ; for usb audio cm-108 on motorola c650
capture_boost=-18 ; for usb audio cm-108 on motorola c650
alsa_period_size=30
alsa_periods_in_buffer=4

Molto importanti sono le voci name of the serial port device e la parte relativa al tuning audio di ALSA.

Per quanto riguarda il name of the serial port, questo altro non è che la porta creata dal server linux una volta connesso il cellulare alla presa usb.I cellulari motorola sono riconosciuti automaticamente da Linux come modem, è quindi viene creata una porta ttyACMx. E’ dunque fondamentale avere un cellulare “compatibile” con linux (di fatto è sufficiente che una volta connesso la macchina lo riconosca come hub usb creando un device ttyUSBx).

Per verificare questo è sufficente una volta connesso il cellulare alla porta usb lanciare il comando:

dmesg

e controllare l’output a video.

Per il tuning della scheda ALSA invece dovremo modificare le voci:

playback_boost
capture_boost
alsa_period_size
alsa_periods_in_buffer

Valori bassi (o negativi) riducono l’eco ma fanno divenire la voce metallica, valori alti fanno divenire la voce “più calda” ma introducono diverso eco.Quando troverò valori pienamente soddisfacenti, sto ancora conducendo diverse prove non mancherò di aggiornare il post.

M) Fatto questo non ci resta che attivare i canali audio di Alsamixer

sudo alsamixer -V all

Attivate (premendo il tasto M): MASTER, MASTER MONO, PCM, CAPTURE e disattivate tutti gli altri (sempre premendo il tasto M una volta posizionati sulla colonna di nostro interesse).

Quanto al valore cui impostare le voci attivate vale quanto detto in precedenza per il tuning di ALSA.

Ok, riavviate la macchina e cominciate “a giocare” con asterisk e le impostazioni di ALSA.Eccovi alcuni comandi utili:

su ; per diventare root ed avviare/riavviare/fermare asterisk
/etc/init.d/asterisk start
/etc/init.d/asterisk restart
/etc/init.d/asterisk stop

Commenti

commenti


I commenti all'articolo

Non ci sono ancora commenti for “Installiamo celliax su un server Ubuntu (Debian)”

Lascia un commento

Devi essere autenticato per lasciare un commento.