Progettazione Di Un Centralino Software Su IP Basato Su Asterisk

Transcription

Progettazione di un centralinosoftware su IP basato su AsteriskRelatore: Alessio Rugo1

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskOverviewIntroduzione al VOIPDimensionamentoSistemaAsterisk PBXAmministrazione in remotoClientFOIP2

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskIntroduzione al VOIP (1/2)“Tecnologia che rende possibile effettuare una conversazione telefonicasu una rete a commutazione di pacchetto che sfrutta il protocollo IP”Semplicità e compatibilità con la reteInternet/LANPacchetti di dati vocali codificatidigitalmente (codec)Eliminazione distinzione chiamatelocali/lunga distanzaVantaggi: 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à avanzate3

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskIntroduzione al VOIP (2/2)Caratteristiche di internet poco adeguate alle applicazioni audio/videointerattiveRitardo e2ePerdita pacchettiJitter di reteQoS?(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 AsteriskI protocolli del VOIP – SIP (1/2)A livello “application” (session) ci sono diversi protocolli per il VOIPSession Initiation Protocol (1996) – segue il paradigma KISSSIPcaratteristiche:* protocollo di “segnalazione”: call setup e gestione dellachiamata* indipendente dal protocollo di trasporto, ma usa UDP* protocollo orientato alla mobilità (proxy, user agent, .)* Molte funzioni di gestione chiamateIl suo successo è dovuto alla semplicità di implementazione e gestione della chiamata, oltre alla flessibilità delleimpostazioni real-time. Possibile anche utilizzare i potenti strumenti messi a disposizione per effettuaredell'Ingegneria del traffico, sfruttando anche i messaggi di segnalazione diagnostica.Porta default: 5060sip:alessio@gnulugperugia.it5

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskI protocolli del VOIP – SIP (2/2)Vediamo le fasi di un possibile “call setup”, ad alto livello* User location: determinazione degli end systemusati 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 parametridi una sessione su chiamate* Session management: trasferimento e terminazionedi una sessione, modifica dei parametri dellasessione, e invocazione dei serviziSIP signaling (invite) - WikipediaPorta default: 50606

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskI protocolli del VOIP – RTP/RTCPtransport/application layer protocol – aggiunge un header al pacchettoapplicativo, per predisporlo ad applicazioni (quasi) real-time come quelle multimedialiReal-Time (transport) Protocolcaratteristiche:RTPidentificazione del tipo di paylod (spesso di codifica)aggiunge il numero di sequenzaaggiunge il timestampidentifica la sorgente mittenteIl pacchetto applicativo viene fornito di header addizionale (RTP) ed a sua volta viene incapsulato dentro il pacchetto UDP, a stratodi 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 applicativoRTCP aggiunge il supporto per il controllo, sempre a livello applicazioneNB: problemi di scalabilità7

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskOverviewIntroduzione al VOIPDimensionamentoSistemaAsterisk PBXAmministrazione in remotoClientFOIP8

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskDimensionamento del serverL'analisi delle caratteristiche e necessità aziendali rappresenta la prima(e fondamentale) fase per l'implementazione del server Asterisknumero di utenti “traffico offerto” A [Erlang] nell'ora di puntao esigenze di qualità (codec) e funzioni (es: applicazioni, toni DMTF, .) tipo di dispositivi telefonici (endpoint) supportati tipo di connettività aziendaleEsigenze (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 AsteriskOverviewIntroduzione al VOIPDimensionamentoSistemaAsterisk PBXAmministrazione in remotoClientFOIP10

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskAsterisk PBX (1/3)E' un PBX (Private Branch Exchanger) software per telefoniaVOIP (open source!) creato e mantenuto per conto della DigiumCompleto e maturo (come PBX) Molte funzioni extra Molta documentazione disponibile Open source e gratuito Stabile ed affidabile Disponibile per il download da sorgente dalsito ufficiale http://www.asterisk.org espesso anche come pacchetto precompilatoper le più diffuse distribuzioniDistribuzioni con Asterisk integratoAsteriskNow / Asterisk@Home / TrixboxUbunterisk, CentPBX, .11

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskAsterisk PBX (2/3)Asterisk viene configurato come un normale servizio su unserverUna volta installato correttamente, è già funzionante e prontoper essere avviatoPassi di configurazione1.Configurazione utenti SIP (così come per altri protocolli)2.Configurazione dialplan3.Configurazione applicazioni (voicemail, conference, .)4.Configurazione firewall, shell remota, avvio, log, .4. Ssh, iptables, .1. sip.conf2. extension.conf3. voicemail.conf, .12

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskAsterisk PBX (3/3)Vediamo come configurare due dispositivi SIP e far sì chepossano chiamarsisip.confSi 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 limitareil tipo di chiamate per ogni utente SIPSi definiscono tutti gli utenti come sezioni,ele opzioni per ciascuno. La sezione “general”racchiude le opzioni valide per ogni utente(la configurazione del canale SIP)extension.conf13

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskAccount SIPApprofondiamo la conoscenza del file sip.confsip.confIl file è diviso dal punto di vista logico in due parti: quella “generale”, perle opzioni condivise da tutti gli account, e quella dei singoli account utenteÈ possibile eseguire la stessa configurazione usando unainterfaccia grafica con Asterisk GUI14

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskDialplan (extension.conf) 1/2Approfondiamo la conoscenza del file extension.confAnche il dialplan è diviso in due parti: “general”o “globals”, per le opzioni condivise da tutti gliaccount, ed altre definite dall'amministratoreextension.conf15

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskDialplan (extension.conf) 2/2Approfondiamo la conoscenza del file extension.confImpiegatiOspitiDirezioneEmployeeTest eregistrazioniextension.confCommandChiamate PSTNItaliaChiamate interneChiamateinternazionali16

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskApplicazioni (1/4)Alcune principali funzioni, disponibili senza configurazioni dieccessiva difficoltàIVRInteractive voice response – esempio alla prossima paginaVoicemailSegreteria telefonica per ogni utente – esempio a pagina treMeetMeStanza per conferenze (custom) supervisionataVideoSupporto per codec video HQ e videosessioneLoggerLog delle chiamate e degli eventi customCall parkingPiù telefonate su linee diverse, con attesa e TRASFERIMENTO17

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskApplicazioni (2/4)Esempio di attivazione di un centralino IVRIVR“Interactive voice response” (IVR) – è possibiletrovare IVR già realizzati sulla rete (ancheintegrati già in altre applicazioni, come adesempioper “Voicemail”)18

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskApplicazioni (3/4)Esempio di attivazione segreteria telefonica (o Voicemail)L'applicazione permette di lasciare un messaggio (file wave), cheviene allegato ad una email e spedito verso una casella sswordIndirizzo email dove inviare i messaggigruppoutente voicemail19

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskApplicazioni (4/4)Esempio di attivazione Conference RoomUna Conference Room è una applicazione che permette a piùpersone di parlare contemporaneamente ed ascoltare.MeetMeextension.confInterno per accedere alla conferenzaApplicazione ConferenceSemplice alternativa a MeetMe, che non richiedeuna sorgente per il timingFlags* 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 dialpaln20

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskOverviewIntroduzione al VOIPDimensionamentoSistemaAsterisk PBXAmministrazione in remotoClientFOIP21

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskGestione remota del serverSaper configurare Asterisk utilizzando i suoi file di configurazionepermette di gestire il server in remoto in modalità consoleSSH (Secure SHell, shell sicura) è un protocollo che permette distabilire una sessione remota cifrata ad interfaccia a linea dicomando con un altro host.vim /etc/ssh/ssh configProtocollo (SSH)ssh -p 2345 utente@asterisk.rugo.comSSH portIndirizzo del serverPorta SSH22

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskOverviewIntroduzione al VOIPDimensionamentoSistemaAsterisk PBXAmministrazione in remotoClientFOIP23

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskClient (1/3)Un “Client” è un qualunque software o dispositivo hardware perla telefonia VOIP che supporti il protocollo SIPIl client permette di utilizzare le funzionalità del centralino, come un normale telefonocollegato alla PSTNTipi di ClientNota: spesso anche i normali telefoni cellulari hanno il supporto per la connettività ed il SIP24

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskClient (2/3)Vediamo alcuni softphone disponibili in reteEkigaGià presente nelle più diffusedistribuzioni linux, è il softphoneopensource più diffuso.Utilizza I protocolli SIP e H.323 epermettesiachiamatechevideoconferenze. Ottimo supporto dicodec e comprovata compatibilità conAsterisk (compresa la “presenza”)GizmoRecente progetto opensource volto adunire il VOIP su SIP all'instantmessaging multiprotocollo. FornisceVoicemailintegrataedunatariffazione interna per le chiamate.Chiamate gratuite verso I fissi(PSTN) iscritti al progetto Gizmo.X - LiteSoftware proprietario freeware per ilVOIP su protocollo SIP. Supporta lavideoconferenza (se attivata), duelinee contemporaneamente, gestiscepiù account e codec. Molto intuitivo estabile, disponibile sia per Windowsche per Linux.25

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskClient (3/3)Configurazione per la registrazione dell'utente presso il server AsteriskUtilizziamo Ekiga per fornire un esempio, valido con poche modifichespecifiche anche per altri softphone (e hardphone)Counterpath X-liteEkiga26

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskOverviewIntroduzione al VOIPDimensionamentoSistemaAsterisk PBXAmministrazione in remotoClientFOIP27

Alessio Rugo - Progettazione di un centralino software su IP basato su AsteriskFOIP (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 getthrough 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 vocali3) 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 AsteriskDomande&Risposte29

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 Overview. 28 Alessio Rugo - Progettazione di un centralino software su IP basato su Asterisk