integrando voz (rtmp) con fop2
DESCRIPTION
Nicolas GudiñoArgentinaAsternic14th Conference - ElastixWorld 2011FOP2 meets voice (rtmp)Integrando voz (rtmp) con fop2TRANSCRIPT
![Page 1: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/1.jpg)
Integrando voz con FOP2
Utilizando Flash RTMP
Nicolás Gudiñ[email protected]://www.fop2.com
ElastixWorld 2011
Tuesday, November 8, 2011
![Page 2: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/2.jpg)
¿ Qué es el FOP 2 ?
Consola de operadora
Flash Operator Panel
Tuesday, November 8, 2011
![Page 3: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/3.jpg)
¿ Qué es el FOP 2 ?Consola de operadora basada en Web
Permite ver y controlar llamados en curso, quién está hablando con quién, llamados esperando en cola, estados de agente, etc.
Galardonado como mejor addon de Elastix.¡Gracias Palosanto!
Tuesday, November 8, 2011
![Page 4: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/4.jpg)
Control de colasAgregar o quitar miembros de cola
Pausar o despausar miembros de cola
Captura de llamados esperando en cola
Otras funcionalidadesDirectorio telefónico, click to call
Mensajería instantánea / chat
Interfaz web para escuchar y organizar o borrar Correos de Voz
Interfaz web para escuchar y buscar grabaciones iniciadas desde FOP2
Módulo de FreePBX para configurar y administrar usuarios, permisos y botones.
Envío de SMS por placas Khomp
Control de llamadasOriginación de llamadas
Transfererncia de llamadas
Captura de llamadas
Escuchas, Coaching
Grabación y corte de llamadas
Control de conferenciasControlar mudo/habla en participantesInvitar participantesEchar participantes
Cerrar la conferencia
Detección de habla
¿ Qué es el FOP 2 ?
Tuesday, November 8, 2011
![Page 5: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/5.jpg)
Arquitectura FOP2
websocketsxmlsockets
*ServidorAsterisk
ServidorFOP2
AMIAsterisk Manager
Cliente/NavegadorAplicación Web
Mediador / Proxy
Conecta al AMI
Acepta conexiones de clientes web
Maneja usuarios y permisos
Máquina de estado
Aplicación WEB
Javascript / Ajax
HTML & CSS
Un poco de PHP
Flash Invisible
TCP 5038 TCP 4445
Asterisk puro y duro
AMI habilitado
Tuesday, November 8, 2011
![Page 6: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/6.jpg)
¿ Qué tiene de especial ?
Web/HTTP es un protocolo desconectado, sin estado.
El AMI de Asterisk envia eventos de forma continua: protocolo conectado
FOP2 habilita una conexión conectada/síncrona con el navegador web.
Verdadero tiempo real. No se hace polling.
Máquina de estado
Tuesday, November 8, 2011
![Page 7: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/7.jpg)
¿ Qué es RTMP ?
Real Time Messaging Protocol
Desarrollado por Macromedia para hacer stream de audio, video y datos entre un servidor específico y clientes Flash
Adobe adquirió Macromedia e hizo pública la especificación RTMP, lo que permitió que empezaran a surgir implementaciones no propietarias de clientes y servidores.
Tuesday, November 8, 2011
![Page 8: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/8.jpg)
Desafío: FOP2 + Voz
Adobe Flash soporta transmisión de datos continua via xmlsockets
Adobe Flash soporta transporte de audio y video en tiempo real usando RTMP (Real Time Messaging Protocol)
FOP2 utiliza xmlsockets de Flash para mostrar y controlar estado en tiempo real
Entonces, ¿por qué no integrar audio en FOP2 usando RTMP?
Tuesday, November 8, 2011
![Page 9: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/9.jpg)
iOS
Ventajas de un web phone en Flash
Flash está ampliamente adoptado en múltiples plataformas, disponible para casi todos.
No requiere descargar o instalar componentes adicionales.
Experiencia “integrada” para el usuario
Relativamente simple para desarrolladores.
Tecnología existente actualmente: no es un prototipo o un draft.
Tuesday, November 8, 2011
![Page 10: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/10.jpg)
No todas son ventajasLatencia. Las conexiones RTMP deben centralizarse en el servidor, no se establece conexión de medios directa entre endpoints.
Para contrarrestrar este problema, Adobe desarrollo otro protocolo, RTMPF, que puede negociar media end to end, pero como toda solución similar tiene problemas para atravesar NAT, además es un protocolo propietario.
Cancelación de eco no muy buena, es casi indispensable utilizar headsets.
Tuesday, November 8, 2011
![Page 11: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/11.jpg)
Para el monitoreo en tiempo real fue necesario desarrollar un proxy para intermediar entre el Asterisk Manager Interface y Flash xmlsockets
Integrar audio en FOP2 requiere de una aproximación similar: desarrollar/implementar un proxy para mediar entre Flash RTMP y SIP/RTP
En el futuro un navegador podrá hablar SIP de forma nativa encapsulando SIP sobre websockets y WebRTC para el transporte de audio/video.http://sip-on-the-web.aliax.net/
Encarando la integración
Tuesday, November 8, 2011
![Page 12: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/12.jpg)
Encarando la integración
rtmplite http://code.google.com/p/rtmplite/
Alternativas Existentes
freeswitch http://www.freeswitch.org/
Escrito en python
Incluye un proxy SIP
Soporta video en RTMP
Puede utilizar videoio como soft phone white label, programable via javascript
Madurez: beta
Escrito en C / C++
Habla SIP / RTMP
No soporta video RTMP
Incluye un softphone white label, programable via javascript, escrito en Flex.
Madurez: alta
Tuesday, November 8, 2011
![Page 13: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/13.jpg)
Encarando la integración
rtmplite http://code.google.com/p/rtmplite/
Alternativas Existentes
freeswitch http://www.freeswitch.org/
Python: Escalabilidad?
Python 2.6 requerido (Elastix/Centos incluye Python 2.4)
Transcodificación limitada (requiere py-audio)
DTMF problemático
Soporta video :)
Escalabilidad asegurada
No requiere instalar versiones conflictivas
Transcodificación incluída
DTMF funcional
No soporta video :(
Tuesday, November 8, 2011
![Page 14: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/14.jpg)
Freeswitch es una alternativa lógica, madura y estable. mod_rtmp existe ahora y funciona bien.
El mismo puede utilizarse para participar de la conferencia semanal de desarrolladores Freeswitch desde un navegador web. http://conference.freeswitch.org/conf/
Freeswitch habla SIP y puede transcodificar entre Speex wideband (utilizado por rtmp) y codecs narrowband como ulaw/alaw, utilizados por Asterisk.
Encarando la integración
Tuesday, November 8, 2011
![Page 15: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/15.jpg)
Encarando la integración
¿ Asterisk y Freeswitch corriendo en un mismo servidor, es posible ?
¡SI!A no preocuparse... para situaciones de alta
demanda es perfectamente factible correr FOP2/Freeswitch/RTMP en servidor aparte al Asterisk.
Tuesday, November 8, 2011
![Page 16: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/16.jpg)
Arquitectura FOP2 - RTMP
RTMP
*ServidorAsterisk Proxy RTMP
SIP
Cliente/NavegadorSoftphone Web
Mediador / Proxy
Libfreeswitch
Sesion RTMP = Registro SIP
Transcodificación Speex Wideband - Codec Asterisk.
Softphone WEB
Javascript
Adobe Flash
UDP 5060 TCP 1935
Asterisk puro y duro
Dispositivos SIP
Tuesday, November 8, 2011
![Page 17: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/17.jpg)
FOP2: de consola a teléfonoReconversión de la interfaz de usuario, hay que superar la consola e incorporar la funcionalidad de teléfono.
Agregado de Dialpad y DTMF
Agregado de Acciones: Answer, Hold, Reject
Reubicación de botones de control de llamados dentro del llamado activo.
Tuesday, November 8, 2011
![Page 18: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/18.jpg)
GUI: de consola a teléfono
Módulo de softphoneSelección de entrada de audio
Dialpad / DTMF
Tuesday, November 8, 2011
![Page 19: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/19.jpg)
GUI: de consola a teléfono
Reubicación de botones
de control
Tuesday, November 8, 2011
![Page 20: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/20.jpg)
Mediar entre tecnologías/protocolos. SIP/RTMP/RTP
Transcodificar entre Speex wideband y pcm-u/a
Mapear una sesión autenticada RTMP con una registración SIP.
Manejar transferencias y hold a nivel SIP (nociones no existentes en RTMP)
SIP / RTMP Proxy
Tuesday, November 8, 2011
![Page 21: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/21.jpg)
Utilizar Freeswitch como librería con los módulos estrictamente necesarios.
La idea es hacerlo muy sencillo de instalar. Versión precompilada, empaquetado en RPM.
Plugin en FOP2 que autoconfigura el proxy, no hay necesidad de manipular archivos de configuración a mano.
SIP / RTMP Proxy
Tuesday, November 8, 2011
![Page 22: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/22.jpg)
Administrador Web
Tuesday, November 8, 2011
![Page 23: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/23.jpg)
Click to call en página web.
Sistema de conferencias híbrido, participantes 100% web, participantes telefónicos, etc.
Otras posibles aplicacionesy usos para el proxy rtmp/sip
Tuesday, November 8, 2011
![Page 24: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/24.jpg)
A João Mesquita por su colaboración y profundo conocimiento de Freeswitch.
A Palosanto por el reconocimiento y apoyo.
A todo el equipo de Toga Soluciones Integrales
Y a todos ustedes por seguir ahí sentados
¡Gracias!
Tuesday, November 8, 2011
![Page 25: Integrando voz (rtmp) con fop2](https://reader035.vdocumento.com/reader035/viewer/2022081718/55658d4ad8b42a2b6d8b4e62/html5/thumbnails/25.jpg)
¿ Preguntas ?
Nos vemos en:
Nicolás Gudiñ[email protected]
http://www.fop2.com
Tuesday, November 8, 2011