Progettazione di un centralino software su IP basato su Asterisk

Transcription

Progettazione di un centralino software su IP basato su Asterisk
Progettazione di un centralino
software su IP basato su Asterisk
Relatore: Alessio Rugo
1
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Overview
Introduzione al VOIP
Dimensionamento
Sistema
Asterisk PBX
Amministrazione in remoto
Client
FOIP
2
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”
Semplicità e compatibilità con la rete
Internet/LAN
Pacchetti di dati vocali codificati
digitalmente (codec)
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
3
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!
4
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
Session Initiation Protocol (1996) – segue il paradigma KISS
SIP
caratteristiche:
* protocollo di “segnalazione”: call setup e gestione della
chiamata
* indipendente dal protocollo di trasporto, ma usa UDP
* protocollo orientato alla mobilità (proxy, user agent, ...)
* Molte funzioni di gestione chiamate
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.
Porta default: 5060
sip:alessio@gnulugperugia.it
5
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
* 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 e
parametri 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
SIP signaling (invite) - Wikipedia
Porta default: 5060
6
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
I protocolli del VOIP – RTP/RTCP
transport/application layer protocol – aggiunge un header al pacchetto
applicativo, per predisporlo ad applicazioni (quasi) real-time come quelle multimediali
Real-Time (transport) Protocol
caratteristiche:
RTP
identificazione del tipo di paylod (spesso di codifica)
aggiunge il numero di sequenza
aggiunge il timestamp
identifica la sorgente mittente
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
RTCP aggiunge il supporto per il controllo, sempre a livello applicazione
NB: problemi di scalabilità
7
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Overview
Introduzione al VOIP
Dimensionamento
Sistema
Asterisk PBX
Amministrazione in remoto
Client
FOIP
8
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Dimensionamento del server
L'analisi delle caratteristiche e necessità aziendali rappresenta la prima
(e fondamentale) fase per l'implementazione del server Asterisk
numero di utenti
● “traffico offerto” A [Erlang] nell'ora di punta
o
● 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)
9
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Overview
Introduzione al VOIP
Dimensionamento
Sistema
Asterisk PBX
Amministrazione in remoto
Client
FOIP
10
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 integrato
AsteriskNow / Asterisk@Home / Trixbox
Ubunterisk, CentPBX, ...
11
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 dialplan
3.Configurazione applicazioni (voicemail, conference, ...)
4.Configurazione firewall, shell remota, avvio, log, ...
4. Ssh, iptables, ...
1. sip.conf
2. extension.conf
3. voicemail.conf, ...
12
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
Si definiscono le azioni ed I comportamenti del centralino
a seguito di un evento (ad esempio la digitazione di cifre
oppure il timeout). Diviso in sezioni, permette di limitare
il tipo di chiamate per ogni utente SIP
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)
extension.conf
13
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Account SIP
Approfondiamo la conoscenza del file sip.conf
sip.conf
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
È possibile eseguire la stessa configurazione usando una
interfaccia grafica con Asterisk GUI
14
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Dialplan (extension.conf) 1/2
Approfondiamo la conoscenza del file 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
extension.conf
15
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Dialplan (extension.conf) 2/2
Approfondiamo la conoscenza del file extension.conf
Impiegati
Ospiti
Direzione
Employee
Test e
registrazioni
extension.conf
Command
Chiamate PSTN
Italia
Chiamate interne
Chiamate
internazionali
16
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
Interactive voice response – esempio alla prossima pagina
Voicemail
Segreteria telefonica per ogni utente – esempio a pagina tre
MeetMe
Stanza per conferenze (custom) supervisionata
Video
Supporto per codec video HQ e videosessione
Logger
Log delle chiamate e degli eventi custom
Call parking
Più telefonate su linee diverse, con attesa e TRASFERIMENTO
17
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
esempio
per “Voicemail”)
18
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Applicazioni (3/4)
Esempio di attivazione segreteria telefonica (o Voicemail)
L'applicazione permette di lasciare un messaggio (file wave), che
viene allegato ad una email e spedito verso una casella specificata
Voicemail
extension.conf
voicemail.conf
password
Indirizzo email dove inviare i messaggi
gruppo
utente voicemail
19
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Applicazioni (4/4)
Esempio di attivazione Conference Room
Una Conference Room è una applicazione che permette a più
persone di parlare contemporaneamente ed ascoltare.
MeetMe
extension.conf
Interno per accedere alla conferenza
Applicazione Conference
Semplice alternativa a MeetMe, che non richiede
una sorgente per il timing
Flags
* 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.
Nota: Non prevede controllo degli accessi, ma può essere implementato nel dialpaln
20
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Overview
Introduzione al VOIP
Dimensionamento
Sistema
Asterisk PBX
Amministrazione in remoto
Client
FOIP
21
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Gestione remota del server
Saper configurare Asterisk utilizzando i suoi file di configurazione
permette di gestire il server in remoto in modalità console
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
Protocollo (SSH)
ssh -p 2345 utente@asterisk.rugo.com
SSH port
Indirizzo del server
Porta SSH
22
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Overview
Introduzione al VOIP
Dimensionamento
Sistema
Asterisk PBX
Amministrazione in remoto
Client
FOIP
23
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Client (1/3)
Un “Client” è un qualunque software o dispositivo hardware per
la telefonia VOIP che supporti il protocollo SIP
Il client permette di utilizzare le funzionalità del centralino, come un normale telefono
collegato alla PSTN
Tipi di Client
Nota: spesso anche i normali telefoni cellulari hanno il supporto per la connettività ed il SIP
24
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Client (2/3)
Vediamo alcuni softphone disponibili in rete
Ekiga
Già 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”)
Gizmo
Recente 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 - Lite
Software 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.
25
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
26
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Overview
Introduzione al VOIP
Dimensionamento
Sistema
Asterisk PBX
Amministrazione in remoto
Client
FOIP
27
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?
28
Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk
Domande
&
Risposte
29