Supporto di ENUM, NAT e Audioconferenze per architettura 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
VOIP – Voice Over Internet Protocol 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
SIP – Session Initiation Protocol 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 : Trasporto dei dati (RTP) Segnalazione della conversazione Per la segnalazione esistono protocolli proprietari (IAX, Skype, SCCP) e standardizzati (SIP, H.323, XMPP) Breve confronto SIP-H323 SIP H.323 - 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:utente@dominio.com - 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:utente@dominio.com Vengono preferiti protocolli standardizzati. In Sapientel si è scelto di affidarsi al protocollo SIP Tesi di Laurea in Ingegneria Elettronica 2/22
SAPIENTEL – Cosa è Server VoIP in ambito accademico 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
SAPIENTEL – Componenti 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 Ieri Oggi - SIP server usando OpenSER - SIP server usando SER - Database MySql - Interfaccia web: SERweb adattato a Openser - Interfaccia web: SERweb personalizzato e localizzato - Nessun media server - Audioconferenze tramite SEMS - Videoconferenze tramite OpenMCU - Nessun supporto ENUM - Supporto ENUM - Nessun supporto NAT - Supporto NAT tramite Mediaproxy - Restrizione degli accessi tramite email - Restrizione degli accessi tramite gettone di autorizzazione Tesi di Laurea in Ingegneria Elettronica 5/22
SER (Sip Express Router) – Cosa è 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“ 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(); Implementazione agendo sul file ser.cfg Tesi di Laurea in Ingegneria Elettronica 7/22
SER – ENUM Necessità di convergenza tra linee PSTN e VoIP 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
SER – ENUM Algoritmo per la traduzione di URI 9/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 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) URI Nome DNS NAPTR …. URI 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:alef@sapientel.it!” 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
SER – Attraversamento NAT (Network Address Translation) 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
SER – NAT Traversal : Mediaproxy 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
SER – NAT Traversal : Mediaproxy 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 in azione : Parte software a sè stante Modulo da caricare in SER Socket di comunicazione con SER Comunicazione RTP transita per il mediaproxy Implementazione modificando il file di configurazione di SER Tesi di Laurea in Ingegneria Elettronica 13/22
SEMS (Sip Express Media Server) – Cosa è 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
SEMS – Video conferenze? 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
SERWEB – Cosa è Interfaccia grafica per la registrazione degli account 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
SERWEB – Condizionamento per la fruizione dei servizi 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
SERWEB – Personalizzazione & Localizzazione 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
SERWEB – Personalizzazione & Localizzazione 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
Il Wiki Pubblicazione di Sapientel Interazione tra utenti 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 Basato su www.pmwiki.org Sezioni dedicate agli utenti e team di sviluppo Tesi di Laurea in Ingegneria Elettronica 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