Ricerca nel sito web

Installa Asterisk 18 LTS su Ubuntu 22.04|20.04|18.04


Asterisk è un framework gratuito e open source creato da Sangoma per creare applicazioni di comunicazione sia per piccole aziende che per casi d'uso su larga scala. Asterisk è una soluzione basata su software che trasforma il tuo vecchio computer in un server di comunicazione che alimenta sistemi IP PBX, gateway VoIP, server per conferenze e altre soluzioni personalizzate. Le soluzioni realizzate da Asterisk alimentano call center, operatori e agenzie governative in tutto il mondo.

In questo post del blog esamineremo l'installazione di Asterisk 18 LTS sul server Ubuntu 22.04|20.04|18.04. Al momento della stesura di questo articolo l'ultima versione di Asterisk è la 18. Si noti inoltre che questa non è una versione a lungo termine e non dovrebbe essere utilizzata per distribuzioni di produzione che necessitano del supporto Digium per lunghi anni.

Alcuni punti chiave su Asterisk sono:

  • È scritto nel linguaggio di programmazione C
  • È scritto per funzionare su Linux e altri tipi di Unix
  • Alimenta i sistemi telefonici aziendali
  • Collega molti protocolli di telefonia diversi
  • È un kit di strumenti per creare un centralino IP con molte funzionalità e applicazioni potenti, gateway VoIP e sistemi di conferenza
  • Supporta telefoni VoIP, PSTN e POTS
  • Utilizza, tra gli altri, SIP, il protocollo VoIP più comune

Installa Asterisk 18 LTS su Ubuntu 22.04|20.04|18.04

Seguirai i passaggi nelle sezioni successive per installare Asterisk 18 sul sistema Ubuntu Linux. Poiché Asterisk è stato creato per essere modulare, aggiungere funzionalità extra dopo l'installazione non è un processo difficile. Può essere fatto facilmente.

Passaggio 1: aggiorna il sistema Ubuntu

Inizieremo la nostra installazione aggiornando il nostro indice dei pacchetti APT e aggiornando tutti i pacchetti installati sul sistema. Ti consiglio di eseguire questa installazione in un nuovo sistema per evitare problemi con l'esecuzione dei servizi.

sudo apt update
sudo apt -y upgrade

Se il processo di aggiornamento ha avuto esito positivo, riavvia se questo è un requisito:

[ -f /var/run/reboot-required ] && sudo reboot -f

Passaggio 2: installare le dipendenze di build

Dopo aver riavviato il sistema, accedi e installa tutte le dipendenze necessarie per creare Asterisk sulla macchina Ubuntu Linux.

sudo apt update
sudo add-apt-repository universe
sudo apt -y install git curl wget libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev  uuid-dev

L'installazione dovrebbe richiedere solo pochi minuti se si dispone di una connessione Internet decente.

Passo 3: Scarica il tarball di Asterisk 18

Non troverai l'ultima versione di Asterisk nei repository di sistema ufficiali. Dovremo scaricare manualmente il tarball e creare l'applicazione dal sorgente.

Ad esempio, su Ubuntu 20.04, la versione disponibile nei repository APT è la 16.

$ sudo apt policy asterisk
asterisk:
  Installed: (none)
  Candidate: 1:16.2.1~dfsg-2ubuntu1
  Version table:
     1:16.2.1~dfsg-2ubuntu1 500
        500 http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages
        500 http://mirror.hetzner.de/ubuntu/packages focal/universe amd64 Packages

Utilizzare il comando wget per scaricare il file di archivio.

cd ~
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz

Estrai il file con tar.

tar xvf asterisk-18-current.tar.gz

Esegui il comando seguente per scaricare la libreria del decodificatore mp3 nell'albero dei sorgenti.

cd asterisk-18*/
contrib/scripts/get_mp3_source.sh

Risultato previsto dell'esecuzione del comando:

A    addons/mp3
A    addons/mp3/MPGLIB_README
A    addons/mp3/common.c
A    addons/mp3/huffman.h
A    addons/mp3/tabinit.c
A    addons/mp3/Makefile
A    addons/mp3/README
A    addons/mp3/decode_i386.c
A    addons/mp3/dct64_i386.c
A    addons/mp3/MPGLIB_TODO
A    addons/mp3/mpg123.h
A    addons/mp3/layer3.c
A    addons/mp3/mpglib.h
A    addons/mp3/decode_ntom.c
A    addons/mp3/interface.c
Exported revision 202.

Assicurati che tutte le dipendenze siano risolte:

sudo contrib/scripts/install_prereq install

Alla fine dovresti ricevere un messaggio di successo:

#############################################
## install completed successfully
#############################################

Passaggio 4: crea e installa Asterisk 18 su Ubuntu 22.04|20.04|18.04

Dopo l'installazione delle dipendenze dovresti essere pronto per creare Asterisk 18 dalla fonte che abbiamo scaricato.

Esegui lo script configure per soddisfare le dipendenze di compilazione.

./configure

Un successo dovrebbe avere un output come di seguito:

.....
configure: creating ./config.status
config.status: creating makeopts
config.status: creating autoconfig.h
configure: Menuselect build configuration successfully completed

               .$$$$$$$$$$$$$$$=..
            .$7$7..          .7$$7:.
          .$$:.                 ,$7.7
        .$7.     7$$$$           .$$77
     ..$$.       $$$$$            .$$$7
    ..7$   .?.   $$$$$   .?.       7$$$.
   $.$.   .$$$7. $$$$7 .7$$$.      .$$$.
 .777.   .$$$$$$77$$$77$$$$$7.      $$$,
 $$$~      .7$$$$$$$$$$$$$7.       .$$$.
.$$7          .7$$$$$$$7:          ?$$$.
$$$          ?7$$$$$$$$$$I        .$$$7
$$$       .7$$$$$$$$$$$$$$$$      :$$$.
$$$       $$$$$$7$$$$$$$$$$$$    .$$$.
$$$        $$$   7$$$7  .$$$    .$$$.
$$$$             $$$$7         .$$$.
7$$$7            7$$$$        7$$$
 $$$$$                        $$$
  $$$$7.                       $$  (TM)
   $$$$$$$.           .7$$$$$$  $$
     $$$$$$$$$$$$7$$$$$$$$$.$$$$$$
       $$$$$$$$$$$$$$$$.

configure: Package configured for:
configure: OS type  : linux-gnu
configure: Host CPU : x86_64
configure: build-cpu:vendor:os: x86_64 : pc : linux-gnu :
configure: host-cpu:vendor:os: x86_64 : pc : linux-gnu :

Opzioni del menu di configurazione eseguendo il comando seguente:

make menuselect

Utilizza i tasti freccia per navigare e il tasto Invio per selezionare.

Seleziona Componenti aggiuntivi per abilitare.

Abilita i moduli audio Core che desideri utilizzare.

Puoi anche aggiungere ulteriori pacchetti MOH che desideri utilizzare.

Fai lo stesso per i pacchetti audio extra.

Puoi anche consultare gli altri menu e selezionare le opzioni che ritieni adatte al tuo caso d'uso.

Al termine, esegui il comando seguente per creare Asterisk 18 su Ubuntu 22.04|20.04|18.04.

make

Ecco il mio output di compilazione riuscita:

.....
TROLEnc.o ooh323cDriver.o -> chan_ooh323.so
   [CC] format_mp3.c -> format_mp3.o
   [CC] mp3/common.c -> mp3/common.o
   [CC] mp3/dct64_i386.c -> mp3/dct64_i386.o
   [CC] mp3/decode_ntom.c -> mp3/decode_ntom.o
   [CC] mp3/layer3.c -> mp3/layer3.o
   [CC] mp3/tabinit.c -> mp3/tabinit.o
   [CC] mp3/interface.c -> mp3/interface.o
   [LD] format_mp3.o mp3/common.o mp3/dct64_i386.o mp3/decode_ntom.o mp3/layer3.o mp3/tabinit.o mp3/interface.o -> format_mp3.so
   [CC] res_config_mysql.c -> res_config_mysql.o
   [LD] res_config_mysql.o -> res_config_mysql.so
Building Documentation For: third-party channels pbx apps codecs formats cdr cel bridges funcs tests main res addons
 +--------- Asterisk Build Complete ---------+
 + Asterisk has successfully been built, and +
 + can be installed by running:              +
 +                                           +
 +                make install               +
 +-------------------------------------------+

Questo è il comando che eseguirai per installare Asterisk 18 su Ubuntu:

sudo make install

Output di esempio:

....
make[1]: Entering directory '/home/jkmutai/asterisk-18.1.1/sounds'
make[1]: Leaving directory '/home/jkmutai/asterisk-18.1.1/sounds'
find rest-api -name "*.json" | while read x; do \
	/usr/bin/install -c -m 644 $x "/var/lib/asterisk/rest-api" ; \
done
 +---- Asterisk Installation Complete -------+
 +                                           +
 +    YOU MUST READ THE SECURITY DOCUMENT    +
 +                                           +
 + Asterisk has successfully been installed. +
 + If you would like to install the sample   +
 + configuration files (overwriting any      +
 + existing config files), run:              +
 +                                           +
 + For generic reference documentation:      +
 +    make samples                           +
 +                                           +
 + For a sample basic PBX:                   +
 +    make basic-pbx                         +
 +                                           +
 +                                           +
 +-----------------  or ---------------------+
 +                                           +
 + You can go ahead and install the asterisk +
 + program documentation now or later run:   +
 +                                           +
 +               make progdocs               +
 +                                           +
 + **Note** This requires that you have      +
 + doxygen installed on your local system    +
 +-------------------------------------------+

Facoltativamente è possibile installare la documentazione:

sudo make progdocs

Installa configurazioni ed esempi.

sudo make samples
sudo make config
sudo ldconfig

Per un esempio di PBX di base:

sudo make basic-pbx

Passaggio 5: avviare il servizio Asterisk su Ubuntu 22.04|20.04|18.04

Crea un utente e un gruppo separati per eseguire i servizi asterisco e assegna le autorizzazioni corrette:

sudo groupadd asterisk
sudo useradd -r -d /var/lib/asterisk -g asterisk asterisk
sudo usermod -aG audio,dialout asterisk
sudo chown -R asterisk.asterisk /etc/asterisk
sudo chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk
sudo chown -R asterisk.asterisk /usr/lib/asterisk
sudo chmod -R 750 /var/{lib,log,run,spool}/asterisk /usr/lib/asterisk /etc/asterisk

Imposta l'utente predefinito Asterisco su asterisco:

$ sudo vim /etc/default/asterisk
#Uncomment AST_USER and AST_GROUP to look like below
AST_USER="asterisk"
AST_GROUP="asterisk"

$ sudo vim /etc/asterisk/asterisk.conf
runuser = asterisk ; The user to run as.
rungroup = asterisk ; The group to run as.

Riavviare il servizio asterisco dopo aver apportato le modifiche:

sudo systemctl restart asterisk

Abilita il servizio asterisco per l'avvio all'avvio del sistema:

sudo systemctl enable asterisk

Controlla lo stato del servizio per vedere se è in esecuzione.

$ systemctl status asterisk
 asterisk.service - LSB: Asterisk PBX
     Loaded: loaded (/etc/init.d/asterisk; generated)
     Active: active (running) since Fri 2020-08-14 12:04:41 CEST; 9s ago
       Docs: man:systemd-sysv-generator(8)
      Tasks: 82 (limit: 4567)
     Memory: 44.6M
     CGroup: /system.slice/asterisk.service
             └─54142 /usr/sbin/asterisk -U asterisk -G asterisk

Verifica di poterti connettere all'interfaccia della riga di comando di Asterisk.

$ sudo asterisk -rvv
 Asterisk 18.10.0, Copyright (C) 1999 - 2021, Sangoma Technologies Corporation and others.
 Created by Mark Spencer [email 
 Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
 This is free software, with components licensed under the GNU General Public
 License version 2 and other licenses; you are welcome to redistribute it under
 certain conditions. Type 'core show license' for details.
 Running as user 'asterisk'
 Running under group 'asterisk'
 Connected to Asterisk 18.1.1 currently running on asterisk (pid = 107650)
 asterisk*CLI> exit
Asterisk cleanly ending (0).
Executing last minute cleanups

Se hai un firewall ufw attivo, apri le porte http e le porte 5060,5061:

sudo ufw allow proto tcp from any to any port 5060,5061

Ora hai Asterisk 18 installato e funzionante sul server Linux Ubuntu 22.04|20.04|18.04.

Altre guide sul VoIP.

  • Proteggi Asterisk e FreePBX dalle frodi VoIP e dagli attacchi di forza bruta
  • Come installare il centralino FreeSwitch su Ubuntu

Articoli correlati: