Home > Asterisk, Fonera, Voip > Fonera 2.0n e Asterisk – PARTE 4

Fonera 2.0n e Asterisk – PARTE 4

6 marzo 2011

Finalmente in questa quarta puntata arriviamo al nocciolo della questione:

installiamo asterisk sulla Fonera 2.0n

Dopo aver infatti predisposto tutto quanto necessario, ora possiamo passare all’installazione di asterisk 1.4.

La scelta di installare asterisk 1.4 e non 1.6 deriva dal fatto che i pacchetti presenti nel repository per asterisk 1.6 sono molto pochi e carenti di diversi moduli che personalmente ritengo indispensabili.

Installare Asterisk 1.4

Per installare Asterisk 1.4 sulla Fonera , dovremo connetterci in ssh con l’utilizzo di un terminale come Putty, loggandoci come utente root e procedere in questo modo:

opkg update
opkg -dest usb install asterisk14

Installare moduli aggiuntivi

Installiamo ora i moduli aggiuntivi relativi alla voicemail ed i suoni:

opkg -dest usb install asterisk14-voicemail asterisk14-sounds

Suoni in italiano

Se vogliamo possiamo ora anche installare i suoni in italiano.

Sarà necessario scaricare i suoni in italiano da QUI e poi metterli nella cartella /var/mounts/Disc-A2/usr/lib/asterisk/sounds . Per fare ciò dovremo eseguire da terminale i seguenti comandi:

cd /tmp/mounts/Disc-A2
wget http://www.voip.ammdomus.it/pub/asterisk-core-sounds-it-gsm-1.4.15-mm20090405.tar.gz
tar xzvf ./asterisk-core-sounds-it-gsm-1.4.15-mm20090405.tar.gz -C ./usr/lib/asterisk/sounds/
rm asterisk-core-sounds-it-gsm-1.4.15-mm20090405.tar.gz

Per far si che asterisk usi di default i suoni in italiano è necessario che nel file sip.conf (che si trova in /var/mounts/Disc-A2/etc/asterisk )si modifichi la seguente riga:

;language=en

togliendo il ; e mettendo it al posto di en, come di seguito:

language=it

Modifica file di configurazione

Avendo installato asterisk su chiavetta USB dobbiamo ora correggere i percorsi di default di asterisk al fine di permetterne la corretta esecuzione.

asterisk.conf

Il primo file da modificare sarà asterisk.conf che si trova nella cartella:
/var/mounts/Disc-A2/etc/asterisk/asterisk.conf

Questi sono i percorsi inseriti di default e che troverete nel file asterisk.conf

[directories]
astetcdir => /etc/asterisk
astmoddir => /usr/lib/asterisk/modules
astvarlibdir => /usr/lib/asterisk

astdatadir => /usr/lib/asterisk
astagidir => /usr/lib/asterisk/agi-bin
astspooldir => /var/spool/asterisk
astrundir => /var/run
astlogdir => /var/log/asterisk

Dobbiamo modificare i percorsi in asterisk.conf che puntano a dei riferimenti locali, con il nuovo percorso sulla chiavetta USB, come di seguito:

[directories]
astetcdir => /var/mounts/Disc-A2/etc/asterisk
astmoddir => /var/mounts/Disc-A2/usr/lib/asterisk/modules
astvarlibdir => /var/mounts/Disc-A2/usr/lib/asterisk
astdatadir => /var/mounts/Disc-A2/usr/lib/asterisk
astagidir => /var/mounts/Disc-A2/usr/lib/asterisk/agi-bin
astspooldir => /var/mounts/Disc-A2/var/spool/asterisk
astrundir => /var/mounts/Disc-A2/var/run
astlogdir => /var/mounts/Disc-A2/var/log/asterisk

Per i più pigri QUI potete scaricare direttamente il file asterisk.conf modificato come sopra.

/etc/init.d/asterisk

Anche per questo file (che si trova nella cartella: /var/mounts/Disc-A2/etc/init.d/asterisk ) sarà necessario inserire i riferimenti alla chiavetta USB come di seguito indicato.

Inoltre volendo poi avviare asterisk al boot della fonera, ed essendo asterisk installato su USB è stato inserito un controllo che prima di eseguire asterisk verifica se la chiavetta USB è stata correttamente montata (operazione che di solito avvviene in 5-6 secondi).

FILE ORIGINALE

#!/bin/sh /etc/rc.common
# Copyright (C) 2008 OpenWrt.org
START=50
DEST=
DEFAULT=$DEST/etc/default/asterisk
OPTIONS=""
start() {
    [ -f $DEFAULT ] && . $DEFAULT
    [ -d $DEST/var/run ] || mkdir -p $DEST/var/run
    [ -d $DEST/var/log/asterisk ] || mkdir -p $DEST/var/log/asterisk
    [ -d $DEST/var/spool/asterisk ] || mkdir -p $DEST/var/spool/asterisk
        [ -d /var/spool/asterisk ] || mkdir -p /var/spool/asterisk
        [ -h $DEST/usr/lib/asterisk/astdb ] || ln -sf /var/spool/asterisk/astdb $DEST/usr/lib/asterisk/astdb
    $DEST/usr/sbin/asterisk $OPTIONS
}

stop() {
    [ -f $DEST/var/run/asterisk.pid ] && kill $(cat $DEST/var/run/asterisk.pid) >/dev/null 2>&1
}

FILE MODIFICATO

#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=97
DEST=/var/mounts/Disc-A2
DEFAULT=$DEST/etc/default/asterisk
OPTS=-vvvg

start() {
    rdate -s time.inrim.it
    echo "Tentativo di avvio "$(date) >> /var/asterisk.boot
    CONTA=0
    while [ ! -x $DEST/usr/sbin/asterisk ] &&  [ $CONTA -le 30 ]
    do 
      let CONTA++
           sleep 1 
    done 
        if [ $CONTA -gt 30 ]; then
           echo "Time Out raggiunto: $CONTA sec " >> /var/asterisk.boot
           echo "Asterisk non avviato! "$(date) >> /var/asterisk.boot
           exit 1
        fi
        echo "Montata USB in $CONTA tentativi" >> /var/asterisk.boot
    [ -f $DEFAULT ] && . $DEFAULT
    [ -d $DEST/var/run ] || mkdir -p $DEST/var/run
    [ -d $DEST/var/log/asterisk ] || mkdir -p $DEST/var/log/asterisk
    [ -d $DEST/var/spool/asterisk ] || mkdir -p $DEST/var/spool/asterisk
        [ -d /var/spool/asterisk ] || mkdir -p /var/spool/asterisk
    export LD_LIBRARY_PATH=/lib:/usr/lib:$DEST/usr/lib:$DEST/lib
        [ -h $DEST/usr/lib/asterisk/astdb ] || ln -sf /var/spool/asterisk/astdb $DEST/usr/lib/asterisk/astdb
    $DEST/usr/sbin/asterisk $OPTS &
    echo "Asterisk avviato "$(date) >> /var/asterisk.boot
}
stop() {
    [ -f $DEST/var/run/asterisk.pid ] && kill $(cat $DEST/var/run/asterisk.pid) >/dev/null 2>&1
    echo "Fermato "$(date) >> /var/asterisk.boot
}

Sempre per i pigri QUI il file modificato.

Avvio automatico di Asterisk

Per far sì che asterisk si avvii correttamente ed in automatico quando riavviamo la Fonera, dovremo copiare sulla Fonera alcuni file presenti sulla chiavetta USB.

mkdir /etc/default
mkdir /etc/asterisk
cp /var/mounts/Disc-A2/etc/default/asterisk /etc/default
cp /var/mounts/Disc-A2/etc/init.d/asterisk /etc/init.d
cp /var/mounts/Disc-A2/etc/asterisk/asterisk.conf /etc/asterisk
ln -s /etc/init.d/asterisk /etc/rc.d/S97asterisk

A questo punto se abbiamo fatto tutto correttamente potremo riavviare la Fonera digitando da terminale il comando:

reboot

Se tutto è stato eseguito correttamente al riavvio della Fonera, asterisk dovrebbe essere partito in automatico.

Per verificare ciò basterà verificare i processi in esecuzione digitando il comando

ps

Verrà visualizzata tutta la lista dei processi attualmente in esecuzione sulla Fonera. Se fra questi compare anche asterisk, significa che è stato regolarmente avviato con l’avvio della Fonera.

Accedere alla linea di comando di Asterisk

Se tutto è stato eseguito correttamente e Asterisk si avvia in automatico al boot, possiamo riconnetterci alla console di asterisk digitando:

asterisk –r

e possiamo anche specificare il livello di verbosità con l’opzione v

asterisk -rvvvv

con più “v” otterremo più informazioni dalla console sulle attività, sullo stato e sugli eventuali errori.

Una volta entrati nella console di asterisk, potremo avere una lista dei comandi disponibili digitando:

help

ed eventualmente digitando

help nome_comando

per avere un aiuto di dettaglio sul comando digitato.

Directory usate da Asterisk

Di seguito elenchiamo le principali directory utilizzate da Asterisk sulla Fonera 2.0n:

/var/mounts/Disc-A2/etc/asterisk: contiene tutti i file di configurazione che riguardano Asterisk.

NOTA: Ricordiamo che alcuni file conf sono stati copiati in locale sulla Fonera come visto in precedenza ai fini dell’avvio automatico di asterisk al boot

/var/mounts/Disc-A2/usr/lib/asterisk/modules: contiene tutti i moduli di Asterisk. In questa cartella vi sono le varie applicazioni, codec, tipi di canale supportati da Asterisk.

/var/mounts/Disc-A2/usr/lib/asterisk/moh: cartella che contiene gli mp3 da usare come musica d’attesa.

/var/mounts/Disc-A2/usr/lib/asterisk/sounds: contiene tutti i file sonori usati da asterisk per comporre le frasi e fornire i menu vocali all’utente. Contiene anche i file registrati da asterisk.

/var/mounts/Disc-A2/var/log/asterisk: contiene i log di asterisk

Nella prossima puntata vedremo come realizzare una configurazione di base con alcuni interni e provider voip per iniziare ad utilizzare il nostro Fonera IP PBX

Ti potrebbero interessare:

Categorie:Asterisk, Fonera, Voip
  1. Enrico
    18 giugno 2011 a 11:05 | #1

    Ciao! Ti ringrazio tantissimo per la guida!

    Ho seguito tutti i passi, ma quando eseguo:
    asterisk –r
    mi compare l’errore:
    -ash: -ash:: not found

    quest la lista dei processi attivi:
    PID USER VSZ STAT COMMAND
    1 root 1992 S init
    2 root 0 SWN [ksoftirqd/0]
    3 root 0 SW [watchdog/0]
    4 root 0 SW< [events/0]
    5 root 0 SW< [khelper]
    6 root 0 SW< [kthread]
    21 root 0 SW< [kblockd/0]
    25 root 0 SW< [khubd]
    38 root 0 SW< [kswapd0]
    39 root 0 SW [pdflush]
    40 root 0 SW [pdflush]
    41 root 0 SW< [aio/0]
    53 root 0 SW [mtdblockd]
    205 root 0 SWN [jffs2_gcd_mtd6]
    217 root 1992 S logger -s -p 6 -t
    218 root 1992 S init
    221 root 1992 S init
    337 root 2004 S syslogd -C16
    339 root 1984 S klogd
    350 root 1144 S /sbin/hotplug2 –override –persistent –max-children
    656 root 0 SW< [dwc_otg]
    678 root 0 SW< [scsi_eh_0]
    679 root 0 SW< [usb-storage]
    1511 root 1184 S /usr/bin/miniupnpd -i eth0.2 -a 192.168.10.1 -p 5000
    1746 nobody 3228 S avahi-daemon: running [Fonera.local]
    1892 root 1968 S /sbin/fonstated -D
    1925 root 1984 S < /sbin/watchdog -t 5 -F /dev/watchdog
    1961 root 1724 S /sbin/mountd
    1975 root 4476 S /usr/bin/lua /Apps/lucid
    1992 root 1940 S /usr/sbin/dropbear -F -p 22
    2003 root 3840 S N /bin/smbd -D
    2009 root 1408 S /sbin/onlined
    2089 root 3180 S /bin/nmbd
    2101 root 0 SW /dev/null &
    2407 root 3196 S /usr/bin/lua /etc/fonstated/Offline
    2439 root 1988 S sh -c /etc/fonstated/RestartDnsmasq
    2440 root 2080 S /bin/sh /etc/fonstated/RestartDnsmasq
    2458 root 2004 R udhcpc -n -q -R -s /bin/true -t 1 -i eth0.2
    2460 root 1992 R ps

    Ti ringrazio tantissimo.
    Enrico

    • Enrico
      18 giugno 2011 a 11:06 | #2

      Aggiungo quelli mancanti:
      2101 root 0 SW< [kjournald]
      2144 root 20564 S /var/mounts/Disc-A2/usr/sbin/asterisk -vvvg
      2148 root 20564 S /var/mounts/Disc-A2/usr/sbin/asterisk -vvvg
      2149 root 20564 S /var/mounts/Disc-A2/usr/sbin/asterisk -vvvg
      2156 root 20564 S /var/mounts/Disc-A2/usr/sbin/asterisk -vvvg
      2171 root 20564 S /var/mounts/Disc-A2/usr/sbin/asterisk -vvvg
      2172 root 20564 S /var/mounts/Disc-A2/usr/sbin/asterisk -vvvg
      2173 root 20564 S /var/mounts/Disc-A2/usr/sbin/asterisk -vvvg
      2174 root 20564 S /var/mounts/Disc-A2/usr/sbin/asterisk -vvvg
      2175 root 20564 S /var/mounts/Disc-A2/usr/sbin/asterisk -vvvg
      2176 root 20564 S /var/mounts/Disc-A2/usr/sbin/asterisk -vvvg
      2177 root 20564 S /var/mounts/Disc-A2/usr/sbin/asterisk -vvvg
      2178 root 20564 S /var/mounts/Disc-A2/usr/sbin/asterisk -vvvg
      2179 root 20564 S /var/mounts/Disc-A2/usr/sbin/asterisk -vvvg
      2180 root 20564 S /var/mounts/Disc-A2/usr/sbin/asterisk -vvvg
      2181 root 20564 S /var/mounts/Disc-A2/usr/sbin/asterisk -vvvg
      2182 root 20564 S /var/mounts/Disc-A2/usr/sbin/asterisk -vvvg
      2183 root 20564 S /var/mounts/Disc-A2/usr/sbin/asterisk -vvvg
      2184 root 20564 S /var/mounts/Disc-A2/usr/sbin/asterisk -vvvg

I commenti sono chiusi.

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi