TL;DR

Asterisk è un framework open source per le comunicazioni che trasforma un computer in un server per sistemi PBX, gateway VoIP e altro ancora. Con oltre un milione di sistemi in uso in più di 170 paesi, è ampiamente adottato da aziende di ogni dimensione. Grazie alle sue varie funzionalità, come segreteria telefonica e conferenze, e alle sue interfacce personalizzabili come AGI e AMI, Asterisk offre flessibilità e versatilità agli sviluppatori.

Che cos’è Asterisk?

Asterisk è un framework open source per la costruzione di applicazioni di comunicazione, trasformando un computer in un server che supporta sistemi IP PBX, gateway VoIP, server di conferenza e altre soluzioni personalizzate. Utilizzato da piccole e grandi imprese, call center, operatori e agenzie governative in tutto il mondo, è sponsorizzato da Sangoma.

Oggi, ci sono più di un milione di sistemi basati su Asterisk in uso, in oltre 170 paesi, adottato quasi interamente dalla lista Fortune 1000 di clienti. Spesso implementato da integratori di sistemi e sviluppatori, Asterisk può diventare la base per un completo sistema telefonico aziendale o essere utilizzato per migliorare o estendere un sistema esistente, colmando le lacune tra i sistemi.

Creato nel 1999 da Mark Spencer di Digium, che dal 2018 è stata una divisione di Sangoma Technologies Corporation, Asterisk è stato originariamente progettato per Linux ma può essere eseguito su una varietà di sistemi operativi, tra cui NetBSD, OpenBSD, FreeBSD, macOS e Solaris, e può essere installato anche su sistemi embedded basati su OpenWrt.

La CLI (Command Line Interface) di Asterisk

Quali sono le funzionalità di un centralino VoIP Asterisk?

Il software Asterisk offre molte funzioni presenti nei sistemi PBX commerciali: segreteria telefonica, conferenze, menu vocali e distribuzione automatica delle chiamate. Gli utenti possono estendere le funzionalità con script di pianificazione delle chiamate, moduli personalizzati o programmi Asterisk Gateway Interface (AGI).

Asterisk supporta vari protocolli VoIP come SIP, MGCP e H.323, e può fungere da gateway tra telefoni IP e la rete PSTN. È utilizzato per sostituire PBX proprietari, aggiungere funzionalità o ridurre i costi telefonici.

Il software supporta anche protocolli tradizionali come ISDN e SS7, e nella versione 14 è incluso il codec audio Opus.

Centralini telefonici VoIP basati su Asterisk

Ecco una revisione del testo con migliorie:

Asterisk rappresenta un elemento chiave in numerosi prodotti commerciali e progetti open source. Tra i prodotti commerciali, vi sono pacchetti hardware e software, i cui produttori supportano e rilasciano il software seguendo un modello di distribuzione open source.

Alcuni esempi includono:

  • AskoziaPBX, un fork del progetto m0n0wall, che sfrutta il software Asterisk PBX per gestire tutte le funzioni telefoniche.
  • AstLinux, una distribuzione software open source per “Appliance di Rete per le Comunicazioni”.
  • FreePBX, un’interfaccia grafica open source, che incorpora Asterisk come nucleo del suo FreePBX Distro.
  • LinuxMCE, che integra Asterisk per fornire servizi di telefonia; esiste anche una versione integrata di Asterisk per i router OpenWrt.
  • PBX in a Flash/Incredible PBX e trixbox, entrambi centralini telefonici software basati su Asterisk.
  • Elastix, precedentemente basato su Asterisk, HylaFAX, Openfire e Postfix per offrire funzionalità di centralino telefonico, fax, messaggistica istantanea e posta elettronica, rispettivamente, prima di passare a 3CX.
  • Issabel, un software di Comunicazioni Unificate open source che utilizza Asterisk per le funzioni telefoniche. Derivato dalle versioni open source di Elastix quando è stato acquisito da 3CX.
  • astTECS, che impiega Asterisk nei suoi gateway VoIP e mobili.

Oltre a questi, sono disponibili vari prodotti aggiuntivi, spesso a pagamento, che estendono le funzionalità e le capacità di Asterisk.

Ad esempio, le promozioni vocali standard incluse nel sistema sono gratuite. Un’azienda può acquistare annunci vocali personalizzati per integrarli nel sistema. Altri componenti aggiuntivi offrono supporto fax, text-to-speech, codec aggiuntivi e nuove funzionalità. Alcuni di questi componenti aggiuntivi, sviluppati da terze parti, sono gratuiti e supportano anche piattaforme embedded come il Raspberry Pi.

Asterisk AGI

L’Interfaccia Asterisk Gateway, abbreviata come AGI, è un’interfaccia per aggiungere funzionalità ad Asterisk con molti linguaggi di programmazione diversi. Perl, PHP, C, Pascal, Bourne Shell – la scelta è davvero tua. Crea l’opportunità di collegare il dialplan di Asterisk a un software esterno che desidera manipolare un canale specifico. Ciò fornisce una sincronizzazione tra le interfacce e le azioni su un canale da un blocco AGI. Questa opzione rende possibile eseguire compiti al di fuori dello scope di Asterisk senza alcuna difficoltà.

  • AGI può controllare il dialplan, chiamato in extensions.conf.
  • AGI asincrono, introdotto in Asterisk 1.6, consente la scripting asincrona AGI.
  • EAGI offre all’applicazione la possibilità di accedere e controllare il canale audio oltre all’interazione con il dialplan.
  • FastAGI può essere utilizzato per elaborare su una macchina remota tramite una connessione di rete.
  • DeadAGI offre l’accesso a un canale morto, dopo il termine della chiamata. È deprecato dall’Asterisk 1.6.

I canali di comunicazione come STDIN, STDOUT e STDERR vengono utilizzati nella comunicazione tra gli script AGI e Asterisk.

  • STDIN – input standard, utilizzato per comunicare dati all’interfaccia esterna.
  • STDOUT – output standard, utilizzato per comunicare dati a Asterisk.
  • STDERR – errore standard, canale di comunicazione per i messaggi di errore.

Asterisk AMI

L’Interfaccia Manager di Asterisk (AMI) permette a un programma client di connettersi a Asterisk e di emettere comandi o leggere eventi tramite TCP/IP. È utile per monitorare lo stato dei client di telefonia e dirigere azioni basate su regole personalizzate.

Il protocollo AMI utilizza un formato “chiave: valore” per la comunicazione. È caratterizzato da pacchetti di tipo Action, Response ed Event, trasmessi tra il client e Asterisk tramite linee terminate da CR/LF.

Prima di inviare comandi, è necessario stabilire una sessione manager e autenticarsi. I comandi possono essere inviati da entrambe le parti e includono operazioni come chiamate, monitoraggio e manipolazione dello stato delle code.

Conclusioni

In conclusione, Asterisk rappresenta un pilastro fondamentale sia nei prodotti commerciali che nei progetti open source nel campo delle comunicazioni. Con oltre un milione di sistemi in uso in oltre 170 paesi, Asterisk è ampiamente adottato da aziende di ogni dimensione.

Inoltre, con l’Interfaccia Gateway di Asterisk (AGI) e l’Interfaccia Manager di Asterisk (AMI), gli sviluppatori hanno la flessibilità di integrare nuove funzionalità e monitorare lo stato dei sistemi in modo personalizzato.