# VoIP e Asterisk/Integrazione con sistemi esistenti

VoIP e Asterisk
Copertina Tutti i moduli · Sviluppo
* VoIP
** La telefonia tradizionaleVoIP e Asterisk/Telefonia tradizionale
** Transizione verso il VoIPVoIP e Asterisk/Transizione verso il VoIP
** I TelefoniVoIP e Asterisk/I Telefoni
** PBXVoIP e Asterisk/PBX
** Protocolli VoIPVoIP e Asterisk/Protocolli VoIP
** SIPVoIP e Asterisk/SIP
** Interfacciamento tra VoIP e sistemi tradizionaliVoIP e Asterisk/Interfacciamento tra VoIP e sistemi tradizionali
* Asterisk
** Preparazione del sistemaVoIP e Asterisk/Preparazione del sistema
** Setup inizialeVoIP e Asterisk/Setup iniziale
** Canali di comunicazioneVoIP e Asterisk/Canali di comunicazione
** Configurazione utentiVoIP e Asterisk/Configurazione utenti
** AgentiVoIP e Asterisk/Agenti
** Il dialplanVoIP e Asterisk/Il dialplan
** Code di chiamataVoIP e Asterisk/Code di chiamata
** VoicemailVoIP e Asterisk/Voicemail
** TeleconferenzaVoIP e Asterisk/Teleconferenza
** Interconnessione tra server VoIPVoIP e Asterisk/Interconnessione tra server VoIP
** Musica d'attesaVoIP e Asterisk/Musica d'attesa
** IbreveVoIP e Asterisk/Integrazione con sistemi esistenti
** Interactive Voice ResponseVoIP e Asterisk/Interactive Voice Response
** AbreveVoIP e Asterisk/Architettura Real-Time
** Estensioni disponibiliVoIP e Asterisk/Estensioni disponibili
Modifica il sommario
Asterisk offre differenti modalità per integrare il sistema di telefonia con i sistemi aziendali o con un qualunque tipo di sistema informatico.

### Asterisk Management Interface

L'integrazione può essere intesa come il poter controllare il sistema telefonico da altri sistemi, e in Asterisk avviene prevalentemente tramite la AMI, Asterisk Manager Interface.
La Asterisk Manager Interface fornisce una API che permette ai programmi esterni di monitorare e gestire Asterisk. Una volta abilitato nella configurazione Asterisk si metterà in ascolto sulla porta TCP 5038 per eventuali connessioni in ingresso. I comandi vengono spediti tramite questa connessione, il protocollo usato per dialogare è relativamente semplice:
È un sistema abbastanza semplice da usare ed è molto potente, i comandi disponibili sono molti, e per un ulteriore trattazione si rimanda alla documentazione di Asterisk.

### Asterisk Gateway Interface

Altro tipo di integrazione è tramite la AGI, Asterisk Gateway Interface. Integrazione fatta a un altro livello: Le AGI vengono utilizzate quando nel dialplan si necessita una interazione con l'esterno non prefissata, principio simile ai CGI.
Solitamente gli script AGI servono per effettuare operazioni complesse, comunicare con i database aziendali, accedere a risorse di rete. Molte azioni delle AGI risulterebbero difficoltose o impossibili da fare tramite applications.
Il principio di funzionamento delle AGI è molto simile al funzionamento dei CGI nei server http: la comunicazione tra AGI e Asterisk avviene attraverso i tre descrittori stdin, stdout e stderr. Asterisk fornirà attraverso lo stdin (standard input) le informazioni riguardo alla comunicazione corrente, il formato è abbastanza semplice, questo è un esempio:
Queste sono alcune delle variabili che vengono passate allo script AGI, sulla base delle quali il programma potrà prendere delle decisioni.
Una volta lanciato, il programma scriverà sullo stdout (standard output) i comandi che impartirà ad Asterisk, esempio:
Per riprodurre il file beep.gsm, come se si usasse l'application Background(beep.gsm)
Asterisk farà lo spelling del numero specificato (application SayNumber)
Asterisk aspetterà un tono DMTF per 1000 millisecondi
I comandi possibili di un AGI sono molti, per un elenco completo si rimanda alla documentazione di Asterisk.
L'ultimo canale, stderr (standard error), viene utilizzato per le informazioni di debug, inviate e visualizzate nella console principale di Asterisk.
Per scrivere script AGI sono disponibili librerie che si occupano di facilitarne la scrittura in molti linguaggi, fornendo librerie già pronte per l'uso per filtrare stdin e stdout.