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