Sei sulla pagina 1di 8

UNIVERSIDAD DE EL SALVADOR

FACULTAD MULTIDISCIPLINARIA DE OCCIDENTE


DEPARTAMENTO DE INGENIERA Y ARQUITECTURA

Tema: WebRTC (Web Real-Time Communication)

EQUIPO DE TRABAJO
Delgado Meja, Manuel Alejandro
Garca Cardona, David Alberto
Renderos Zaldaa, Henry Ernesto

PROTOCOLOS DE COMUNICACIN - 2013

SOPORTE TCNICO A TRAVS DE WEBRTC


WebRTC (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 vdeo y uso compartido de
archivos P2P sin plugins.
Por practicidad se ha realizado una implementacin en base a dos proyectos existentes, Linckia (Licode) y el otro
extrado de github denominado Simple WebRTC Videochat.
NOTA: El sistema operativo que se utilizar en la implementacin es Ubuntu 12.04 LTS
1.

Comenzaremos haciendo la instalacin de todo el software necesario.


Sistema de control de versiones
# apt-get install git
Servidor DNS
# apt-get install bind9 dns-utils
Servidor Apache
# apt-get install apache2-mpm-prefork libapache2-mod-php5 php5 apache2-utils php5-ldap
Servidor LDAP
# apt-get install jxplorer
# apt-get install slapd ldap-utils
NOTA: Luego de la instalacin vaya al paso 2 Configuracin del Servidor LDAP
Servidor WebRTC (Proyecto 1)
Clonaremos el repositorio
# git clone https://github.com/keithnorm/simple-webrtc-video-chat.git
# cd simple-webrtc-vide-chat
Este comando instala un paquete y cualquier paquete que dependa de l.
# npm install
Inicializamos los componentes
# ./node_modules/coffee-script/bin/coffee app.coffee

Servidor WebRTC (Proyecto 2)


Clonaremos el repositorio
# git clone https://github.com/ging/licode.git
Instalaremos las dependencias usando
# ./licode/scripts/installUbuntuDeps.sh
Instalaremos los componentes de Licode
# ./licode/scripts/installErizo.sh
# ./licode/scripts/installNuve.sh
Instalaremos el ejemplo bsico de Licode
# ./licode/scripts/installBasicExample.sh
Inicializamos los componentes de Licode
# ./licode/scripts/initLicode.sh
Inicializamos el ejemplo bsico de Licode
# ./licode/scripts/initBasicExample.sh
2.

Configuracin del software instalado.


Configuracin 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 configuracin de estos archivos en el Anexo 1>>
Configuracin del Servidor Web Apache
Habilitaremos los mdulos de php y ldap.
# a2enmod php
# a2enmod ldap
# service apache2 restart
El directorio raz del website se encontrar en /var/www/webrtc, editaremos el archivo default
ubicado en /etc/apache2/sites-available.
.
DocumentRoot /var/www/webrtc
.
<Directory /var/www/webrtc>
.
Editaremos la lnea NameVirtualHost *:80 del archivo /etc/apache2/ports.conf de la siguiente
manera

NameVirtualHost 192.168.100.2:80
<<Puede ver la configuracin completa en el Anexo 2>>
Habilitaremos el sitio.
# a2ensite default
Haremos la prueba de funcionamiento del Web Server ingresando a la direccin
http://www.rtcsupport.com
Configuracin del Servidor LDAP
Reconfiguraremos la instalacin inicial del rbol LDAP, coloque la estructura del rbol y su
contrasea
# dpkg-reconfigure slapd
Agregaremos el esquema authldap.schema
Crearemos un directorio con el comando mkdir
# mkdir /tmp/authldap
Copiaremos 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/authldap
Editaremos un archivo con la configuracin 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 dueo del archivo al usuario openldap
# chown openldap: '/etc/ldap/slapd.d/cn=config/cn=schema/cn={4}authldap.ldif'
Reiniciaremos el servicio
# service slapd restart
NOTA: Estructure su rbol como mejor le parezca, en esta implementacin se cre una Unidad Organizativa
llamada correo y usuarios dentro de esta:
ou=correo
uid=user1
uid=user2
Las objectClass que se agregaron a los objetos uid fueron person,CourierMailAccount y uidObject

Programacin del Website


El website como tal est construido de una manera bastantante sencilla, la cual permite la autenticacin por
medio de LDAP y la redireccin al men de opciones para realizar las consultas como usuario. Estos recursos
los puede descargar de http://www.mediafire.com/?0h0urqfdvurlp7d.
A continuacin se explica cmo se realiza la bsqueda en el rbol LDAP para autenticar al cliente.
1.

El usuario introduce sus credenciales (correo y contrasea).

2.

Un script de php busca en el rbol la coincidencia Usuario Contrasea y le permite el paso o no al


men de la aplicacin.

3.

El usuario elige entrar en alguna sala de videoconferencia para realizar consultas al respecto.

4.

El usuario debe permitir a la aplicacin utilizar el video y micrfono de su sistema.

5.

6.

Se entabla la conversacin con el encargado de soporte del rea.

Para la habilitacin de webRTC en Android basta con ir a las banderas escribiendo en la barra de direcciones
de Chrome Mobile chrome://flags y luego ingresar la direccin del proyecto.

ANEXOS
ANEXO 1
(/etc/bind/db.webrtc)

;
;
$TTL 604800
@
IN
SOA

rtcsupport.com. admin.rtcsupport.com. (
2
; Serial
604800
; Refresh
86400
; Retry
2419200
; Expire
604800 )
; Negative Cache TTL

;
@
IN
@
IN
www IN

NS
A
A

rtcsupport.com.
192.168.100.2
192.168.100.2

(/etc/bind/db.revwebrtc)
;
;
$TTL 604800
@
IN
SOA rtcsupport.com. admin.rtcsupport.com. (
1
; Serial
604800
; Refresh
86400
; Retry
2419200
; Expire
604800 )
; 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";
};

ANEXO 2
(/etc/apache2/sites-available/default)
<VirtualHost 192.168.100.2:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/webrtc
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/webrtc>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

ANEXO 3
/tmp/authldap/auth.conf
include
/etc/ldap/schema/core.schema
include
/etc/ldap/schema/cosine.schema
include
/etc/ldap/schema/nis.schema
include
/etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/authldap.schema

ANEXO 4
Para 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

Potrebbero piacerti anche