Comments
Description
Transcript
Diapositiva 1 - labtel.ing.uniroma1.it
Facoltà di Ingegneria Supporto di ENUM, NAT e Audioconferenze per architettura SIP-Sapientel, e creazione del Wiki per utenti e sviluppatori 27 Marzo 2007 Relatore Prof. Alessandro Falaschi Laureando Gaetano Sorrentino Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino VOIP – Voice Over Internet Protocol Instradamento delle chiamate vocali su Internet Commutazione a pacchetto, mentre nel PSTN (Public Switched Telephone Network) commutazione di circuito Vantaggi : • Possibilità di integrazione e convergenza con altri servizi come Instant Messaging, posta elettronica e posta vocale, trasmissione dati. • Flessibilità: i dati (vocali, testuali, video) possono essere rielaborati a livello locale • Dati in formato digitale: possibilità di compressione, criptazione, maggiore robustezza • Costi competitivi rispetto a PSTN Svantaggi : • Problemi di QoS (Quality Of Service) • Impossibilità di effettuare chiamate d’emergenza Tesi di Laurea in Ingegneria Elettronica 1/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino SIP – Session Initiation Protocol Il VoIP richiede due protocolli di comunicazione paralleli : 1. Trasporto dei dati (RTP) 2. Segnalazione della conversazione Per la segnalazione esistono protocolli proprietari (IAX, Skype, SCCP) e standardizzati (SIP, H.323, XMPP) Breve confronto SIP-H323 SIP Vengono preferiti protocolli standardizzati. In Sapientel si è scelto di affidarsi al protocollo SIP - Sviluppato da IETF - Relativamente semplice (~250 pagine di specifica) - Architettura modulare, flessibile - E’ facilmente estensibile in modo da supportare nuovi servizi - URI della forma sip:[email protected] H.323 - Sviluppato da ITU-T - Standard ad ombrello - Monolitico,rigido (pila di protocolli e codec predefinita) - Complesso (~1500 pagine di specifica) - Supporto audio,video,dati (T.120) - Supporto conferenze - Ottima integrazione con PSTN - URI della forma h323:[email protected] Tesi di Laurea in Ingegneria Elettronica 2/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino SAPIENTEL – Cosa è • Server VoIP in ambito accademico • Progetto iniziato 2 anni fa Architettura Scopi : - Comunicazione tra studenti, Docenti, ricercatori ecc. - Mobilità - Raggiungibilità Tesi di Laurea in Ingegneria Elettronica 3/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino SAPIENTEL – Componenti • SIP Server usando SER (SIP Express Router) • Media Server per audioconferenze usando SEMS (SIP Express Media Server) • Registrazione account su database usando MySql • Interfaccia grafica tramite SERWEB • Problema del NAT, risolto con Mediaproxy • Raggiungibilità al proprio numero di telefono fisso tramite ENUM • Videoconferenze (sperimentale) con OpenMCU Tesi di Laurea in Ingegneria Elettronica 4/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino SAPIENTEL – Novità Differenze tra la precedente versione di Sapientel e l’attuale Sapientel Sapientel Ieri Oggi - SIP server usando OpenSER - SIP server usando SER - Database MySql - Database MySql - Interfaccia web: SERweb adattato a Openser - Interfaccia web: SERweb - Nessun media server - Audioconferenze personalizzato e localizzato tramite SEMS - Videoconferenze tramite OpenMCU - Nessun supporto ENUM - Supporto - Nessun supporto NAT - Supporto - Restrizione degli accessi tramite email - Restrizione degli accessi tramite ENUM NAT tramite Mediaproxy gettone di autorizzazione Tesi di Laurea in Ingegneria Elettronica 5/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino SER (Sip Express Router) – Cosa è Server SIP con funzioni di : - SIP registrar, proxy, redirect server - Instant Messaging - Voicemail - Gestione domini multipli - Gestione presenze • Costituito da un core principale per la segnalazione e il processamento dei messaggi SIP e una serie di moduli per le funzioni aggiuntive • Cuore di SER, è il file di configurazione ser.cfg Tesi di Laurea in Ingegneria Elettronica 6/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino SER – Accessibilità Limitazione di accesso alle risorse ai soli utenti registrati su database (possibilità di riavviare il server senza perdere le informazioni degli utenti) • Soluzione scelta : database MySql • SER offre il supporto a MySql fornendo i tools: - Creazione del database (ser_mysql.sh) - Popolazione del database (serctl) fifo_db_url="mysql://utente:password@localhost/ser“ • Implementazione agendo sul file ser.cfg loadmodule "/usr/local/lib/ser/modules/mysql.so" loadmodule "/usr/local/lib/ser/modules/auth.so" #----------------------------------# Sezione REGISTER Message Handler #----------------------------------if (!www_authorize("","subscriber")){ www_challenge("","0"); break; }; if (!check_to()){ sl_send_reply("401","Unauthorized"); break; }; consume_credentials(); Tesi di Laurea in Ingegneria Elettronica 7/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino SER – ENUM Necessità di convergenza tra linee PSTN e VoIP • A partire da un numero telefonico, ENUM consente : - Traduzione PSTN -> URI - Raggiungibilità dal proprio numero fisso - Mobilità - Chiamate SIP e H.323 - Inviare fax - Inviare email Semplice scenario VOIP Tesi di Laurea in Ingegneria Elettronica 8/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino SER – ENUM Algoritmo per la traduzione di URI Numero da chiamare : +39 06 44585482 Vengono eliminati i caratteri non numerici e si ottiene: 390644585482 Si inverte il numero: 284585446093 Viente inserito un punto tra ogni cifra: 2.8.4.5.8.5.4.4.6.0.9.3 Si aggiunge il suffisso “.e164.arpa”, ossia il dominio ENUM: 2.8.4.5.8.5.4.4.6.0.9.3.e164.org Il risultato è compatibile con la tecnologia DNS e viene trattato come: ZONA DNS Il server DNS che gestisce questa zona conterrà un record NAPTR per risolvere la query: $ORIGIN 2.8.4.5.8.5.4.4.6.0.9.3.e164.org IN NAPTR 10 100 “u” “E2U+sip” “!^.*$!sip:[email protected]!” URI SIP finale da chiamare: sip:[email protected] Tesi di Laurea in Ingegneria Elettronica 9/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino SER – ENUM (RFC 3761) Le URI vengono associate ai nomi DNS (corrispondenti ai numeri E.164) mediante i record NAPTR (Naming Authority Pointer) ENUM Numero Telefonico (E.164) Nome DNS UR I NAPTR …. UR I Esempio di record NAPTR : $ORIGIN 2.8.4.5.8.5.4.4.6.0.9.3.e164.org IN NAPTR 10 100 “u” “E2U+sip” “!^.*$!sip:[email protected]!” • Abilitazione in Sapientel all’ inbound ENUM, agendo sul file di configurazione di SER, aderendo al servizio offerto da e164.org loadmodule "/usr/local/lib/ser/modules/enum.so“ #--------------------------# Sezione di Instradamento #--------------------------if(uri=~"sip:\+[0-9]+@"){ if(!enum_query("e164.org.")) {enum_query("e164.arpa."); }; }; Tesi di Laurea in Ingegneria Elettronica 10/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino SER – Attraversamento NAT (Network Address Translation) • Problema per chi si trova dietro router • Causa : il pc in rete lan accede ad internet con l’IP pubblico del NAT/Router • Difficoltà nelle applicazioni end-to-end point Possibili soluzioni : • STUN Server (Simple Traversal of UDP through NATs) RFC 3489 • IP forwarding configurando il router • Triangolazione Mediaproxy Tesi di Laurea in Ingegneria Elettronica 11/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino SER – NAT Traversal : Mediaproxy Strumenti offerti da SER per risolvere il problema NAT: • RTPProxy : - scritto in C - non permette di distribuire il carico - non fornisce strumenti di monitoraggio SOLUZIONE SCELTA • Mediaproxy : - scritto in Python - permette l’uso di DNS srv records, per distribuire il carico - dotato di interfaccia grafica per monitorare il traffico Tesi di Laurea in Ingegneria Elettronica 12/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino SER – NAT Traversal : Mediaproxy Mediaproxy Mediaproxy in azione : socket • Parte software a sè stante RT P P RT SIP • Socket di comunicazione con SER • Comunicazione RTP transita per il mediaproxy NAT P SI • Modulo da caricare in SER Proxy SIP (87.10.123.456) NAT (82.18.123.456) Client SIP (192.168.1.3) Client SIP (192.168.2.6) Implementazione modificando il file di configurazione di SER Tesi di Laurea in Ingegneria Elettronica 13/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino SEMS (Sip Express Media Server) – Cosa è • Media (Application) Server • Struttura modulare, scalabile grazie ai plug-ins • Poggia sullo stack SIP di SER - comunicazione tramite socket • Strutturato con 2 strati : - media layer : gestione dell’ RTP - control layer : per la segnalazione Tesi di Laurea in Ingegneria Elettronica 14/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino SEMS – Applicazioni • Applicazioni fornite di default con SEMS (non attivate in Sapientel) : - Voicemail - Mailbox - Ann_b2b - Conf_auth Benvenuto in Sapientel, questo è un semplice annuncio che indica il corretto funzionamento… • Applicazioni attivate in Sapientel : - Echo : digitando echo (o il numero 110) dal proprio UA - Test : digitando test (o il numero 111) dal proprio UA - Conference : digitando conf (o il numero 112) dal proprio UA Tesi di Laurea in Ingegneria Elettronica 15/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino SEMS – Video conferenze? • Prevista l’implementazione nelle prossime versioni di SEMS Alternativa OpenMCU (basato su H.323) • Necessita di un gateway SIP – H.323 • Soluzione trovata : Yate (Yet Another Telephony Engine) - Offre un proprio stack SIP - Fornisce un gateway SIP – H.323 (flusso video abilitato da un lavoro di tesi appena concluso) • Integrazione del gateway nelle prossime versioni di Sapientel Tesi di Laurea in Ingegneria Elettronica 16/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino SERWEB – Cosa è Interfaccia grafica per la registrazione degli account Distribuito dagli stessi sviluppatori di SER-SEMS (Iptel.org) • Limitazione degli accessi tramite un token • Personalizzazione • Localizzazione Tesi di Laurea in Ingegneria Elettronica 17/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino SERWEB – Condizionamento per la fruizione dei servizi • Perché? Per non essere troppo permissivi e consentire l’accesso a chiunque • Soluzione precedente : controllo tramite email - Registrazione per i solo possessori di email @uniroma1.it - Troppo restrittiva, non si accettano soggetti esterni • Soluzione attuale : registrazione previa conoscenza di un gettone di autorizzazione (token) - Diffondibile tramite email, telefono, chat ecc. - Implentazione modificando il codice HTML/php di SERWEB Tesi di Laurea in Ingegneria Elettronica 18/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino SERWEB – Personalizzazione & Localizzazione • Distribuito originariamente in Inglese, Tedesco, Ceco • Localizzazione italiana dell’interfaccia e delle email inviate : - modifiche ai file mail_register.txt, mail_forgot_pass_conf.txt, mail_forgot_pass_pass.txt - creazione del file italiano-utf-8.php • Personalizzazione con un footer comune a tutte le pagine : -Modifica del codice html nel file /tamplate/_tail.tpl Tesi di Laurea in Ingegneria Elettronica 19/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino SERWEB – Personalizzazione & Localizzazione Risultato finale Tesi di Laurea in Ingegneria Elettronica 20/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino Il Wiki • Pubblicazione di Sapientel • Interazione tra utenti • Aggiornabile da chiunque • Istruzioni d’uso e documentazione • Sezioni dedicate agli utenti e team di sviluppo Tesi di Laurea in Ingegneria Elettronica Basato su www.pmwiki.org 21/22 Supporto di Enum, NAT e audioconferenze per architettura SIP-Sapientel e creazione del wiki per utenti e sviluppatori Gaetano Sorrentino CONCLUSIONI • Proseguimento del progetto Sapientel iniziato dai colleghi A.Calvo e continuato da A.Fiaschi. • Approfondimento degli aspetti teorici di alcuni componenti, inserimento di nuovi e al contempo renderli funzionanti per garantire al meglio a Sapientel, il funzionamento per cui è stato ideato. • Avere un server VoIP funzionante per la Facoltà di Ingegneria. • Diffusione del progetto per ulteriori sviluppi tramite il wiki. Tesi di Laurea in Ingegneria Elettronica 22/22