Web rtc2013

498 views

Published on

Proyecto de aplicación del protocolo WebRTC para la comunicación bidireccional entre dos clientes (Navegadores Web) sin necesidad de plugins para videoconferencia.

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
498
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
16
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Web rtc2013

  1. 1. UNIVERSIDAD DE EL SALVADORFACULTAD MULTIDISCIPLINARIA DE OCCIDENTEDEPARTAMENTO DE INGENIERÍA Y ARQUITECTURATema: WebRTC (Web Real-Time Communication)EQUIPO DE TRABAJODelgado Mejía, Manuel AlejandroGarcía Cardona, David AlbertoRenderos Zaldaña, Henry ErnestoPROTOCOLOS DE COMUNICACIÓN - 2013
  2. 2. SOPORTE TÉCNICO A TRAVÉS DE WEBRTCWebRTC (Web Real-Time Communication) es una API que está siendo elaborada por la World Wide Web Consortium(W3C) para permitir a las aplicaciones del navegador realizar llamadas de voz, chat de vídeo y uso compartido dearchivos P2P sin plugins.Por practicidad se ha realizado una implementación en base a dos proyectos existentes, Linckia (Licode) y el otroextraído de github denominado Simple WebRTC Videochat.NOTA: El sistema operativo que se utilizará en la implementación es Ubuntu 12.04 LTS1. Comenzaremos haciendo la instalación de todo el software necesario.Sistema de control de versiones# apt-get install gitServidor DNS# apt-get install bind9 dns-utilsServidor Apache# apt-get install apache2-mpm-prefork libapache2-mod-php5 php5 apache2-utils php5-ldapServidor LDAP# apt-get install jxplorer# apt-get install slapd ldap-utilsNOTA: Luego de la instalación vaya al paso 2 – Configuración del Servidor LDAPServidor WebRTC (Proyecto 1)Clonaremos el repositorio# git clone https://github.com/keithnorm/simple-webrtc-video-chat.git# cd simple-webrtc-vide-chatEste comando instala un paquete y cualquier paquete que dependa de él.# npm installInicializamos los componentes# ./node_modules/coffee-script/bin/coffee app.coffee
  3. 3. Servidor WebRTC (Proyecto 2)Clonaremos el repositorio# git clone https://github.com/ging/licode.gitInstalaremos las dependencias usando# ./licode/scripts/installUbuntuDeps.shInstalaremos los componentes de Licode# ./licode/scripts/installErizo.sh# ./licode/scripts/installNuve.shInstalaremos el ejemplo básico de Licode# ./licode/scripts/installBasicExample.shInicializamos los componentes de Licode# ./licode/scripts/initLicode.shInicializamos el ejemplo básico de Licode# ./licode/scripts/initBasicExample.sh2. Configuración del software instalado.Configuración del Servidor DNS# cd /etc/bind# cp db.local db.webrtc# nano db.webrtc# cp db.127 db.revwebrtc# nano db.revwebrtc# nano named.conf.local# service bind9 restart<<Vea la configuración de estos archivos en el Anexo 1>>Configuración del Servidor Web ApacheHabilitaremos los módulos de php y ldap.# a2enmod php# a2enmod ldap# service apache2 restartEl directorio raíz del website se encontrará en /var/www/webrtc, editaremos el archivo defaultubicado en /etc/apache2/sites-available..DocumentRoot /var/www/webrtc.<Directory /var/www/webrtc>.Editaremos la línea “NameVirtualHost *:80” del archivo /etc/apache2/ports.conf de la siguientemanera
  4. 4. NameVirtualHost 192.168.100.2:80<<Puede ver la configuración completa en el Anexo 2>>Habilitaremos el sitio.# a2ensite defaultHaremos la prueba de funcionamiento del Web Server ingresando a la direcciónhttp://www.rtcsupport.comConfiguración del Servidor LDAPReconfiguraremos la instalación inicial del árbol LDAP, coloque la estructura del árbol y sucontraseña# dpkg-reconfigure slapdAgregaremos el esquema authldap.schemaCrearemos un directorio con el comando mkdir# mkdir /tmp/authldapCopiaremos el esquema authldap.schema# cp authldap.schema /etc/ldap/schema/<<puede descargar el archivo authldap.sckema aquí (http://www.mediafire.com/?2m68zltp67612n2)>>Entraremos al directorio que creamos en /tmp# cd /tmp/authldapEditaremos un archivo con la configuración necesaria para cargar el nuevo esquema# nano auth.conf<<Vea el contenido del archivo auth.conf en el Anexo 3>>Ejecutaremos un slaptest para generar el archivo de esquema que nuestro servidor LDAP entenderá# slaptest -f auth.conf -F /tmp/authldap/Copiaremos los archivos generados a la carpeta de esquemas de LDAP# cp "/tmp/authldap/cn=config/cn=schema/cn={4}authldap.ldif" "/etc/ldap/slapd.d/cn=config/cn=schema"Haremos dueño del archivo al usuario openldap# chown openldap: /etc/ldap/slapd.d/cn=config/cn=schema/cn={4}authldap.ldifReiniciaremos el servicio# service slapd restartNOTA: Estructure su árbol como mejor le parezca, en esta implementación se creó una Unidad Organizativallamada “correo” y usuarios dentro de esta:ou=correouid=user1uid=user2Las objectClass que se agregaron a los objetos uid fueron “person”,”CourierMailAccount” y ”uidObject”
  5. 5. Programación del WebsiteEl website como tal está construido de una manera bastantante sencilla, la cual permite la autenticación pormedio de LDAP y la redirección al menú de opciones para realizar las consultas como usuario. Estos recursoslos puede descargar de http://www.mediafire.com/?0h0urqfdvurlp7d.A continuación se explica cómo se realiza la búsqueda en el árbol LDAP para autenticar al cliente.1. El usuario introduce sus credenciales (correo y contraseña).2. Un script de php busca en el árbol la coincidencia Usuario – Contraseña y le permite el paso o no almenú de la aplicación.3. El usuario elige entrar en alguna sala de videoconferencia para realizar consultas al respecto.4. El usuario debe permitir a la aplicación utilizar el video y micrófono de su sistema.
  6. 6. 5. Se entabla la conversación con el encargado de soporte del área.6. Para la habilitación de webRTC en Android basta con ir a las banderas escribiendo en la barra de direccionesde Chrome Mobile “chrome://flags” y luego ingresar la dirección del proyecto.
  7. 7. ANEXOSANEXO – 1(/etc/bind/db.webrtc);;$TTL 604800@ IN SOA rtcsupport.com. admin.rtcsupport.com. (2 ; Serial604800 ; Refresh86400 ; Retry2419200 ; Expire604800 ) ; Negative Cache TTL;@ IN NS rtcsupport.com.@ IN A 192.168.100.2www IN A 192.168.100.2(/etc/bind/db.revwebrtc);;$TTL 604800@ IN SOA rtcsupport.com. admin.rtcsupport.com. (1 ; Serial604800 ; Refresh86400 ; Retry2419200 ; Expire604800 ) ; Negative Cache TTL;@ IN NS rtcsupport.com.2 IN PTR rtcsupport.com.(/etc/bind/named.conf.local)zone "rtcsupport.com" {type master;file "/etc/bind/db.webrtc";};zone "100.168.192.in-addr.arpa" {type master;file "/etc/bind/db.revwebrtc";};
  8. 8. ANEXO – 2(/etc/apache2/sites-available/default)<VirtualHost 192.168.100.2:80>ServerAdmin webmaster@localhostDocumentRoot /var/www/webrtc<Directory />Options FollowSymLinksAllowOverride None</Directory><Directory /var/www/webrtc>Options Indexes FollowSymLinks MultiViewsAllowOverride NoneOrder allow,denyallow from all</Directory>ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/<Directory "/usr/lib/cgi-bin">AllowOverride NoneOptions +ExecCGI -MultiViews +SymLinksIfOwnerMatchOrder allow,denyAllow from all</Directory>ErrorLog ${APACHE_LOG_DIR}/error.log# Possible values include: debug, info, notice, warn, error, crit,# alert, emerg.LogLevel warnCustomLog ${APACHE_LOG_DIR}/access.log combined</VirtualHost>ANEXO – 3/tmp/authldap/auth.confinclude /etc/ldap/schema/core.schemainclude /etc/ldap/schema/cosine.schemainclude /etc/ldap/schema/nis.schemainclude /etc/ldap/schema/inetorgperson.schemainclude /etc/ldap/schema/authldap.schemaANEXO – 4Para que Licode trabaje con nombre de dominio se edita el fichero /licode/extras/basic_example/nuve.js y/licode/extras/basic_example/public/erizo.js, reemplazar todo lo que mencione “localhost” por “www.rtcsupport.com”

×