1
Progettazione di un centralino software su IP basato su Asterisk
Relatore: Alessio Rugo
2
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Introduzione al VOIP
Dimensionamento Sistema
Asterisk PBX Amministrazione in remoto
Client
FOIP
OverviewOverview
3
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Introduzione al VOIP (1/2)“Tecnologia che rende possibile effettuare una conversazione telefonica su una rete a commutazione di pacchetto che sfrutta il protocollo IP”
Pacchetti di dati vocali codificati digitalmente (codec)
Semplicità e compatibilità con la rete Internet/LAN
Eliminazione distinzione chiamate locali/lunga distanza
Vantaggi:➔ Costo della chiamata minore, specie per chiamate a lunga distanza (internazionali)
➔ Maggiore flessibilità nell'architettura di rete e nella gestione (software!)
➔ Rete già esistente e consolidata
➔ Maggiore sicurezza (segretezza), in prospettiva
➔ Disponibilità di funzionalità avanzate
4
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Introduzione al VOIP (2/2)Caratteristiche di internet poco adeguate alle applicazioni audio/video interattive
Ritardo e2e Perdita pacchetti Jitter di rete
QoS?
(1) IntServ - Prenotazione delle risorse
(2) DiffServ – Marcatura di priorità
(3) Laissez-faire!
5
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
I protocolli del VOIP – SIP (1/2)A livello “application” (session) ci sono diversi protocolli per il VOIP
SIP caratteristiche:
Session Initiation Protocol (1996) – segue il paradigma KISS
* protocollo di “segnalazione”: call setup e gestione della chiamata* indipendente dal protocollo di trasporto, ma usa UDP
Porta default: 5060
* protocollo orientato alla mobilità (proxy, user agent, ...)
Il suo successo è dovuto alla semplicità di implementazione e gestione della chiamata, oltre alla flessibilità delle impostazioni real-time. Possibile anche utilizzare i potenti strumenti messi a disposizione per effettuare
dell'Ingegneria del traffico, sfruttando anche i messaggi di segnalazione diagnostica.
* Molte funzioni di gestione chiamate
6
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
I protocolli del VOIP – SIP (2/2)Vediamo le fasi di un possibile “call setup”, ad alto livello
Porta default: 5060
SIP signaling (invite) - Wikipedia
* User location: determinazione degli end system usati nella comunicazione
* User availability: identificazione della disponibilitàdelle parti ad impegnarsi in una comunicazione
* User capabilities: identificazione di media eparametri utilizzati
* Session setup: avviso, instaurazione dei parametri di una sessione su chiamate
* Session management: trasferimento e terminazione di una sessione, modifica dei parametri della sessione, e invocazione dei servizi
7
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
I protocolli del VOIP – RTP/RTCPtransport/application layer protocol – aggiunge un header al pacchettoapplicativo, per predisporlo ad applicazioni (quasi) real-time come quelle multimediali
RTPcaratteristiche:Real-Time (transport) Protocol
identificazione del tipo di paylod (spesso di codifica)
aggiunge il numero di sequenza
aggiunge il timestamp
Il pacchetto applicativo viene fornito di header addizionale (RTP) ed a sua volta viene incapsulato dentro il pacchetto UDP, a strato di trasporto. La natura del pacchetto applicativo e dell'header RTP è trasparente per tutti gli altri strati della pila ISO/OSI e verrà
usato SOLO a livello applicativo
identifica la sorgente mittente
RTCP aggiunge il supporto per il controllo, sempre a livello applicazioneNB: problemi di scalabilità
8
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Introduzione al VOIP
Dimensionamento Sistema
Asterisk PBX Amministrazione in remoto
Client
FOIP
OverviewOverview
9
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Dimensionamento del serverL'analisi delle caratteristiche e necessità aziendali rappresenta la prima (e fondamentale) fase per l'implementazione del server Asterisk
● numero di utenti● “traffico offerto” A
o [Erlang] nell'ora di punta
● esigenze di qualità (codec) e funzioni (es: applicazioni, toni DMTF, ...)● tipo di dispositivi telefonici (endpoint) supportati● tipo di connettività aziendale
Esigenze (e quindi costi) piuttosto contenuti quindi per il server. Occorre però considerare:
- banda (upload/download) internet a disposizione. Caso LAN più semplice- robustezza del sistema (backup, RAID, ...)- uso della voicemail e del recording (hard-disk)
10
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Introduzione al VOIP
Dimensionamento Sistema
Asterisk PBX Amministrazione in remoto
Client
FOIP
OverviewOverview
11
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Asterisk PBX (1/3)E' un PBX (Private Branch Exchanger) software per telefonia VOIP (open source!) creato e mantenuto per conto della Digium
✔ Completo e maturo (come PBX)✔ Molte funzioni extra✔ Molta documentazione disponibile✔ Open source e gratuito✔ Stabile ed affidabile
Disponibile per il download da sorgente dal sito ufficiale http://www.asterisk.org e spesso anche come pacchetto precompilato per le più diffuse distribuzioni
Distribuzioni con Asterisk integratoAsteriskNow / Asterisk@Home / TrixboxUbunterisk, CentPBX, ...
12
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Asterisk PBX (2/3)Asterisk viene configurato come un normale servizio su un server
Una volta installato correttamente, è già funzionante e pronto per essere avviato
Passi di configurazione
1.Configurazione utenti SIP (così come per altri protocolli)2.Configurazione dialplan3.Configurazione applicazioni (voicemail, conference, ...)4.Configurazione firewall, shell remota, avvio, log, ...
1. sip.conf 2. extension.conf 3. voicemail.conf, ...
4. Ssh, iptables, ...
13
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Asterisk PBX (3/3)Vediamo come configurare due dispositivi SIP e far sì che possano chiamarsi
sip.conf
extension.conf
Si definiscono tutti gli utenti come sezioni,e le opzioni per ciascuno. La sezione “general”racchiude le opzioni valide per ogni utente
(la configurazione del canale SIP)
Si definiscono le azioni ed I comportamenti del centralinoa seguito di un evento (ad esempio la digitazione di cifreoppure il timeout). Diviso in sezioni, permette di limitare
il tipo di chiamate per ogni utente SIP
14
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Account SIPApprofondiamo la conoscenza del file sip.conf
sip.conf
È possibile eseguire la stessa configurazione usando unainterfaccia grafica con Asterisk GUI
Il file è diviso dal punto di vista logico in due parti: quella “generale”, per le opzioni condivise da tutti gli account, e quella dei singoli account utente
15
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Dialplan (extension.conf) 1/2Approfondiamo la conoscenza del file extension.conf
extension.conf
Anche il dialplan è diviso in due parti: “general” o “globals”, per le opzioni condivise da tutti gli
account, ed altre definite dall'amministratore
16
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Dialplan (extension.conf) 2/2Approfondiamo la conoscenza del file extension.conf
extension.conf
Impiegati
Chiamate interneChiamate PSTN
ItaliaTest e
registrazioniChiamate
internazionali
Ospiti Direzione
Employee Command
17
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Applicazioni (1/4)Alcune principali funzioni, disponibili senza configurazioni di eccessiva difficoltà
IVR
Voicemail
MeetMe
Video
Logger
Call parking
Interactive voice response – esempio alla prossima pagina
Segreteria telefonica per ogni utente – esempio a pagina tre
Stanza per conferenze (custom) supervisionata
Supporto per codec video HQ e videosessione
Stanza per conferenze (custom) supervisionata
Log delle chiamate e degli eventi custom
Più telefonate su linee diverse, con attesa e TRASFERIMENTO
18
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Applicazioni (2/4)Esempio di attivazione di un centralino IVR
IVR
“Interactive voice response” (IVR) – è possibile trovare IVR già realizzati sulla rete (anche integrati già in altre applicazioni, come ad esempioper “Voicemail”)
19
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Applicazioni (3/4)Esempio di attivazione segreteria telefonica (o Voicemail)
Voicemail
L'applicazione permette di lasciare un messaggio (file wave), che viene allegato ad una email e spedito verso una casella specificata
extension.conf
voicemail.conf
password Indirizzo email dove inviare i messaggi
utente voicemail
gruppo
20
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Applicazioni (4/4)Esempio di attivazione Conference Room
MeetMe
Una Conference Room è una applicazione che permette a più persone di parlare contemporaneamente ed ascoltare.
extension.conf
Applicazione ConferenceInterno per accedere alla conferenzaFlags * M: Moderator (presently same as speaker) * S: Speaker (listens too - do not specify both) * L: Listener * T: "Telephone caller" (just for stats?). * V: Do VAD on this caller * D: Use Denoise filter on this caller.
Semplice alternativa a MeetMe, che non richiede una sorgente per il timing
Nota: Non prevede controllo degli accessi, ma può essere implementato nel dialpaln
21
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Introduzione al VOIP
Dimensionamento Sistema
Asterisk PBX Amministrazione in remoto
Client
FOIP
OverviewOverview
22
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Gestione remota del serverSaper configurare Asterisk utilizzando i suoi file di configurazione permette di gestire il server in remoto in modalità console
SSH port
Protocollo (SSH)Porta SSH
SSH (Secure SHell, shell sicura) è un protocollo che permette di stabilire una sessione remota cifrata ad interfaccia a linea di
comando con un altro host.
vim /etc/ssh/ssh_config
Indirizzo del serverssh -p 2345 [email protected]
23
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Introduzione al VOIP
Dimensionamento Sistema
Asterisk PBX Amministrazione in remoto
Client
FOIP
OverviewOverview
24
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Client (1/3)
Il client permette di utilizzare le funzionalità del centralino, come un normale telefono collegato alla PSTN
Un “Client” è un qualunque software o dispositivo hardware per la telefonia VOIP che supporti il protocollo SIP
Nota: spesso anche i normali telefoni cellulari hanno il supporto per la connettività ed il SIP
Tipi di Client
25
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Client (2/3) Vediamo alcuni softphone disponibili in rete
EkigaGià presente nelle più diffuse distribuzioni linux, è il softphone opensource più diffuso.Utilizza I protocolli SIP e H.323 e permette sia chiamate che videoconferenze. Ottimo supporto di codec e comprovata compatibilità con Asterisk (compresa la “presenza”)
GizmoRecente progetto opensource volto ad unire il VOIP su SIP all'instant messaging multiprotocollo. Fornisce Voicemail integrata ed una tariffazione interna per le chiamate. Chiamate gratuite verso I fissi (PSTN) iscritti al progetto Gizmo.
X - LiteSoftware proprietario freeware per il VOIP su protocollo SIP. Supporta la videoconferenza (se attivata), due linee contemporaneamente, gestisce più account e codec. Molto intuitivo e stabile, disponibile sia per Windows che per Linux.
26
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Client (3/3) Configurazione per la registrazione dell'utente presso il server Asterisk
Utilizziamo Ekiga per fornire un esempio, valido con poche modifiche specifiche anche per altri softphone (e hardphone)
Counterpath X-lite Ekiga
27
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Introduzione al VOIP
Dimensionamento Sistema
Asterisk PBX Amministrazione in remoto
Client
FOIP
OverviewOverview
28
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
FOIP (Fax Over IP)Mandare FAX sulla rete IP è un operazione non completamente affidabile
“FAXing over VoIP networks doesn't work. You can sometimes arrange things so a fairly high percentage of FAXes get through OK. You can occassionally create setups that work 100% of the time. These are rare and unrepeatable setups. You need to use a proper FAX over IP protocol, such as T.38, to achieve consistent reliable FAXing across IP networks”(Soft-Switch.org report)
1) Il fax non ama la “relatività” (delay variabili e ritardi)2) la rete è progettata per trasportare segnali vocali
3) Il fax non ama la “silence suppression”4) Il fax non è fault tolerant (nessuna perdita)
5) Algoritmi di codifica per segnali lenti (codec distorsion)
Mail2Fax?
29
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
DomandeDomande&&
RisposteRisposte