SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
Integrando voz con
                                   FOP2
                                Utilizando Flash RTMP

                                  Nicolás Gudiño
                               asternic@gmail.com
                               http://www.fop2.com

                                ElastixWorld 2011

Tuesday, November 8, 2011
¿ Qué es el FOP 2 ?
                             Flash Operator Panel
                    Consola de operadora




Tuesday, November 8, 2011
¿ 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
¿ Qué es el FOP 2 ?
         Control de llamadas                           Control de colas
              Originación de llamadas                    Agregar o quitar miembros de cola
              Transfererncia de llamadas                 Pausar o despausar miembros de cola
              Captura de llamadas                        Captura de llamados esperando en cola
              Escuchas, Coaching
                                                       Otras funcionalidades
              Grabación y corte de llamadas
                                                         Directorio telefónico, click to call

         Control de conferencias                         Mensajería instantánea / chat
                                                         Interfaz web para escuchar y organizar o
               Controlar mudo/habla en participantes
                                                         borrar Correos de Voz
               Invitar participantes
                                                         Interfaz web para escuchar y buscar
               Echar participantes
                                                         grabaciones iniciadas desde FOP2
               Cerrar la conferencia
                                                         Módulo de FreePBX para configurar y
               Detección de habla                        administrar usuarios, permisos y botones.
                                                         Envío de SMS por placas Khomp



Tuesday, November 8, 2011
Arquitectura FOP2



       *
                                   AMI                          websockets
                            Asterisk Manager                    xmlsockets


                               TCP 5038                         TCP 4445
           Servidor                            Servidor                      Cliente/Navegador
           Asterisk                             FOP2                           Aplicación Web


         Asterisk puro y duro              Mediador / Proxy                  Aplicación WEB

         AMI habilitado                        Conecta al AMI                   Javascript / Ajax

                                               Acepta conexiones de             HTML & CSS
                                               clientes web
                                                                                Un poco de PHP
                                           Maneja usuarios y permisos
                                                                                Flash Invisible
                                           Máquina de estado


Tuesday, November 8, 2011
¿ 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
¿ 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
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
Ventajas de un web phone
                         en Flash
                            Flash está ampliamente adoptado en
                            múltiples plataformas, disponible para casi
                            todos.                                      iOS

                            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
No todas son ventajas
                            Latencia. 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
Encarando la integración
                       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/

Tuesday, November 8, 2011
Encarando la integración
                            Alternativas Existentes
         rtmplite                             freeswitch
         http://code.google.com/p/rtmplite/   http://www.freeswitch.org/


               Escrito en python                Escrito en C / C++
               Incluye un proxy SIP             Habla SIP / RTMP
               Soporta video en RTMP            No soporta video RTMP
               Puede utilizar videoio           Incluye un softphone
               como soft phone white            white label, programable
               label, programable via           via javascript, escrito en
               javascript                       Flex.
               Madurez: beta                    Madurez: alta

Tuesday, November 8, 2011
Encarando la integración
                             Alternativas Existentes
         rtmplite                                    freeswitch
         http://code.google.com/p/rtmplite/          http://www.freeswitch.org/


               Python: Escalabilidad?                  Escalabilidad asegurada
               Python 2.6 requerido                    No requiere instalar
               (Elastix/Centos incluye Python 2.4)     versiones conflictivas
               Transcodificación                       Transcodificación
               limitada (requiere py-audio)            incluída
               DTMF problemático                       DTMF funcional
               Soporta video :)                        No soporta video :(


Tuesday, November 8, 2011
Encarando la integración
                      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.

Tuesday, November 8, 2011
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
Arquitectura FOP2 - RTMP



       *
                              SIP                          RTMP



                            UDP 5060                      TCP 1935
           Servidor                                                  Cliente/Navegador
                                        Proxy RTMP
           Asterisk                                                   Softphone Web


         Asterisk puro y duro          Mediador / Proxy              Softphone WEB

         Dispositivos SIP              Libfreeswitch                    Javascript

                                       Sesion RTMP = Registro SIP       Adobe Flash

                                       Transcodificación Speex
                                       Wideband - Codec Asterisk.




Tuesday, November 8, 2011
FOP2: de consola a teléfono
                            Reconversió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
GUI: de consola a teléfono



                Dialpad / DTMF


                            Módulo de softphone
                             Selección de entrada de audio




Tuesday, November 8, 2011
GUI: de consola a teléfono



                            Reubicación de
                               botones
                              de control




Tuesday, November 8, 2011
SIP / RTMP Proxy
                      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)


Tuesday, November 8, 2011
SIP / RTMP Proxy

                      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.



Tuesday, November 8, 2011
Administrador Web




Tuesday, November 8, 2011
Otras posibles aplicaciones
            y usos para el proxy rtmp/sip

                        Click to call en página web.

                        Sistema de conferencias híbrido, participantes
                        100% web, participantes telefónicos, etc.




Tuesday, November 8, 2011
¡Gracias!

                      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




Tuesday, November 8, 2011
¿ Preguntas ?

                             Nos vemos en:




                               Nicolás Gudiño
                            asternic@gmail.com
                             http://www.fop2.com

Tuesday, November 8, 2011

Más contenido relacionado

Similar a Integrando voz (rtmp) con fop2

Clonacion automatica de equipos
Clonacion automatica de equiposClonacion automatica de equipos
Clonacion automatica de equiposkuwox
 
Dale Stamina A Tu Flex App Con Amfphp
Dale Stamina A Tu Flex App Con AmfphpDale Stamina A Tu Flex App Con Amfphp
Dale Stamina A Tu Flex App Con AmfphpSergio Brito
 
Plone - Introducción y instalación
Plone - Introducción y instalaciónPlone - Introducción y instalación
Plone - Introducción y instalaciónajussis
 
Curso Plone Secundo Sesion
Curso Plone   Secundo SesionCurso Plone   Secundo Sesion
Curso Plone Secundo Sesionajussis
 
12. servidor ftp
12. servidor ftp12. servidor ftp
12. servidor ftpGäbö Ü
 
Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...
Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...
Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...Software Guru
 
Programación III. Nieva. Clase 3, segunda parte.
Programación III. Nieva. Clase 3, segunda parte.Programación III. Nieva. Clase 3, segunda parte.
Programación III. Nieva. Clase 3, segunda parte.MultimediaUNLaR
 
Jorge Mena
Jorge MenaJorge Mena
Jorge Menamallita
 
FiFo: La nube en tus manos
FiFo: La nube en tus manosFiFo: La nube en tus manos
FiFo: La nube en tus manoskillfill
 

Similar a Integrando voz (rtmp) con fop2 (20)

Clonacion automatica de equipos
Clonacion automatica de equiposClonacion automatica de equipos
Clonacion automatica de equipos
 
Elastix slide book-uect
Elastix  slide book-uectElastix  slide book-uect
Elastix slide book-uect
 
Elastix slide book-uect(1)
Elastix  slide book-uect(1)Elastix  slide book-uect(1)
Elastix slide book-uect(1)
 
Dale Stamina A Tu Flex App Con Amfphp
Dale Stamina A Tu Flex App Con AmfphpDale Stamina A Tu Flex App Con Amfphp
Dale Stamina A Tu Flex App Con Amfphp
 
Pdf tixc
Pdf tixcPdf tixc
Pdf tixc
 
Lecture about XMPP
Lecture about XMPPLecture about XMPP
Lecture about XMPP
 
red5
red5red5
red5
 
FTP.pptx
FTP.pptxFTP.pptx
FTP.pptx
 
Plone - Introducción y instalación
Plone - Introducción y instalaciónPlone - Introducción y instalación
Plone - Introducción y instalación
 
Curso Plone Secundo Sesion
Curso Plone   Secundo SesionCurso Plone   Secundo Sesion
Curso Plone Secundo Sesion
 
12. servidor ftp
12. servidor ftp12. servidor ftp
12. servidor ftp
 
Presentación proyecto fin de carrera
Presentación proyecto fin de carreraPresentación proyecto fin de carrera
Presentación proyecto fin de carrera
 
Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...
Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...
Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...
 
Programación III. Nieva. Clase 3, segunda parte.
Programación III. Nieva. Clase 3, segunda parte.Programación III. Nieva. Clase 3, segunda parte.
Programación III. Nieva. Clase 3, segunda parte.
 
0. trabajo-de-investigación (1)
0. trabajo-de-investigación (1)0. trabajo-de-investigación (1)
0. trabajo-de-investigación (1)
 
Jorge Mena
Jorge MenaJorge Mena
Jorge Mena
 
Correo pyme antonio hermoso
Correo pyme antonio hermosoCorreo pyme antonio hermoso
Correo pyme antonio hermoso
 
Desarrollo Móvil para no desarrolladores - Facundo Donato
Desarrollo Móvil para no desarrolladores - Facundo DonatoDesarrollo Móvil para no desarrolladores - Facundo Donato
Desarrollo Móvil para no desarrolladores - Facundo Donato
 
FiFo: La nube en tus manos
FiFo: La nube en tus manosFiFo: La nube en tus manos
FiFo: La nube en tus manos
 
Filezilla
FilezillaFilezilla
Filezilla
 

Más de PaloSanto Solutions

Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...PaloSanto Solutions
 
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?PaloSanto Solutions
 
Innovative technology for universal communication designed to involve the (he...
Innovative technology for universal communication designed to involve the (he...Innovative technology for universal communication designed to involve the (he...
Innovative technology for universal communication designed to involve the (he...PaloSanto Solutions
 
Queuemetrics esencial, de la implementación a reportes avanzadas
Queuemetrics esencial, de la implementación a reportes avanzadasQueuemetrics esencial, de la implementación a reportes avanzadas
Queuemetrics esencial, de la implementación a reportes avanzadasPaloSanto Solutions
 
La evolución de la telefonía IP a comunicaciones unificadas
La evolución de la telefonía IP a comunicaciones unificadasLa evolución de la telefonía IP a comunicaciones unificadas
La evolución de la telefonía IP a comunicaciones unificadasPaloSanto Solutions
 
Integrando encuestas automáticas con iSurveyX
Integrando encuestas automáticas con iSurveyXIntegrando encuestas automáticas con iSurveyX
Integrando encuestas automáticas con iSurveyXPaloSanto Solutions
 
Usando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTUsando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTPaloSanto Solutions
 
Todo lo lo que necesita saber para implementar FreePBX
Todo lo lo que necesita saber para implementar FreePBXTodo lo lo que necesita saber para implementar FreePBX
Todo lo lo que necesita saber para implementar FreePBXPaloSanto Solutions
 
Gestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMSGestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMSPaloSanto Solutions
 
Escalado y balanceo de carga de sistemas SIP
Escalado y balanceo de carga de sistemas SIPEscalado y balanceo de carga de sistemas SIP
Escalado y balanceo de carga de sistemas SIPPaloSanto Solutions
 
Elastix unified communications server cookbook
Elastix unified communications server cookbookElastix unified communications server cookbook
Elastix unified communications server cookbookPaloSanto Solutions
 
Seguridad en Asterisk: Un acercamiento detallado
Seguridad en Asterisk: Un acercamiento detalladoSeguridad en Asterisk: Un acercamiento detallado
Seguridad en Asterisk: Un acercamiento detalladoPaloSanto Solutions
 
Dynamic calls with Text To Speech
Dynamic calls with Text To SpeechDynamic calls with Text To Speech
Dynamic calls with Text To SpeechPaloSanto Solutions
 
Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)PaloSanto Solutions
 
Building a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communicationsBuilding a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communicationsPaloSanto Solutions
 
Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia PaloSanto Solutions
 
Módulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de ElastixMódulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de ElastixPaloSanto Solutions
 

Más de PaloSanto Solutions (20)

Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
 
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
Voip y Big Data, ¿Cómo aplicar analytics a la VoIP?
 
Innovative technology for universal communication designed to involve the (he...
Innovative technology for universal communication designed to involve the (he...Innovative technology for universal communication designed to involve the (he...
Innovative technology for universal communication designed to involve the (he...
 
Queuemetrics esencial, de la implementación a reportes avanzadas
Queuemetrics esencial, de la implementación a reportes avanzadasQueuemetrics esencial, de la implementación a reportes avanzadas
Queuemetrics esencial, de la implementación a reportes avanzadas
 
La evolución de la telefonía IP a comunicaciones unificadas
La evolución de la telefonía IP a comunicaciones unificadasLa evolución de la telefonía IP a comunicaciones unificadas
La evolución de la telefonía IP a comunicaciones unificadas
 
WebRTC … ¡vamos a discar!
WebRTC … ¡vamos a discar!WebRTC … ¡vamos a discar!
WebRTC … ¡vamos a discar!
 
Integrando encuestas automáticas con iSurveyX
Integrando encuestas automáticas con iSurveyXIntegrando encuestas automáticas con iSurveyX
Integrando encuestas automáticas con iSurveyX
 
Usando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MTUsando el módulo PIKE en Elastix MT
Usando el módulo PIKE en Elastix MT
 
Todo lo lo que necesita saber para implementar FreePBX
Todo lo lo que necesita saber para implementar FreePBXTodo lo lo que necesita saber para implementar FreePBX
Todo lo lo que necesita saber para implementar FreePBX
 
Gestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMSGestión de la Información de Desempeño con OpenNMS
Gestión de la Información de Desempeño con OpenNMS
 
Escalado y balanceo de carga de sistemas SIP
Escalado y balanceo de carga de sistemas SIPEscalado y balanceo de carga de sistemas SIP
Escalado y balanceo de carga de sistemas SIP
 
Elastix unified communications server cookbook
Elastix unified communications server cookbookElastix unified communications server cookbook
Elastix unified communications server cookbook
 
Seguridad en Asterisk: Un acercamiento detallado
Seguridad en Asterisk: Un acercamiento detalladoSeguridad en Asterisk: Un acercamiento detallado
Seguridad en Asterisk: Un acercamiento detallado
 
Dynamic calls with Text To Speech
Dynamic calls with Text To SpeechDynamic calls with Text To Speech
Dynamic calls with Text To Speech
 
Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)Proceso de migración de telefonía tradicional a Elastix (Caso)
Proceso de migración de telefonía tradicional a Elastix (Caso)
 
Building a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communicationsBuilding a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communications
 
Asterisk: the future is at REST
Asterisk: the future is at RESTAsterisk: the future is at REST
Asterisk: the future is at REST
 
Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia Presentacion Hardware Elastix 2015 - Colombia
Presentacion Hardware Elastix 2015 - Colombia
 
Voicemail Avanzado
Voicemail AvanzadoVoicemail Avanzado
Voicemail Avanzado
 
Módulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de ElastixMódulo de Alta Disponibilidad de Elastix
Módulo de Alta Disponibilidad de Elastix
 

Último

TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024u20211198540
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 

Último (20)

TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
Inteligencia Artificial. Matheo Hernandez Serrano USCO 2024
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 

Integrando voz (rtmp) con fop2

  • 1. Integrando voz con FOP2 Utilizando Flash RTMP Nicolás Gudiño asternic@gmail.com http://www.fop2.com ElastixWorld 2011 Tuesday, November 8, 2011
  • 2. ¿ Qué es el FOP 2 ? Flash Operator Panel Consola de operadora Tuesday, November 8, 2011
  • 3. ¿ 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
  • 4. ¿ Qué es el FOP 2 ? Control de llamadas Control de colas Originación de llamadas Agregar o quitar miembros de cola Transfererncia de llamadas Pausar o despausar miembros de cola Captura de llamadas Captura de llamados esperando en cola Escuchas, Coaching Otras funcionalidades Grabación y corte de llamadas Directorio telefónico, click to call Control de conferencias Mensajería instantánea / chat Interfaz web para escuchar y organizar o Controlar mudo/habla en participantes borrar Correos de Voz Invitar participantes Interfaz web para escuchar y buscar Echar participantes grabaciones iniciadas desde FOP2 Cerrar la conferencia Módulo de FreePBX para configurar y Detección de habla administrar usuarios, permisos y botones. Envío de SMS por placas Khomp Tuesday, November 8, 2011
  • 5. Arquitectura FOP2 * AMI websockets Asterisk Manager xmlsockets TCP 5038 TCP 4445 Servidor Servidor Cliente/Navegador Asterisk FOP2 Aplicación Web Asterisk puro y duro Mediador / Proxy Aplicación WEB AMI habilitado Conecta al AMI Javascript / Ajax Acepta conexiones de HTML & CSS clientes web Un poco de PHP Maneja usuarios y permisos Flash Invisible Máquina de estado Tuesday, November 8, 2011
  • 6. ¿ 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
  • 7. ¿ 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
  • 8. 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
  • 9. Ventajas de un web phone en Flash Flash está ampliamente adoptado en múltiples plataformas, disponible para casi todos. iOS 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
  • 10. No todas son ventajas Latencia. 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
  • 11. Encarando la integración 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/ Tuesday, November 8, 2011
  • 12. Encarando la integración Alternativas Existentes rtmplite freeswitch http://code.google.com/p/rtmplite/ http://www.freeswitch.org/ Escrito en python Escrito en C / C++ Incluye un proxy SIP Habla SIP / RTMP Soporta video en RTMP No soporta video RTMP Puede utilizar videoio Incluye un softphone como soft phone white white label, programable label, programable via via javascript, escrito en javascript Flex. Madurez: beta Madurez: alta Tuesday, November 8, 2011
  • 13. Encarando la integración Alternativas Existentes rtmplite freeswitch http://code.google.com/p/rtmplite/ http://www.freeswitch.org/ Python: Escalabilidad? Escalabilidad asegurada Python 2.6 requerido No requiere instalar (Elastix/Centos incluye Python 2.4) versiones conflictivas Transcodificación Transcodificación limitada (requiere py-audio) incluída DTMF problemático DTMF funcional Soporta video :) No soporta video :( Tuesday, November 8, 2011
  • 14. Encarando la integración 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. Tuesday, November 8, 2011
  • 15. 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
  • 16. Arquitectura FOP2 - RTMP * SIP RTMP UDP 5060 TCP 1935 Servidor Cliente/Navegador Proxy RTMP Asterisk Softphone Web Asterisk puro y duro Mediador / Proxy Softphone WEB Dispositivos SIP Libfreeswitch Javascript Sesion RTMP = Registro SIP Adobe Flash Transcodificación Speex Wideband - Codec Asterisk. Tuesday, November 8, 2011
  • 17. FOP2: de consola a teléfono Reconversió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
  • 18. GUI: de consola a teléfono Dialpad / DTMF Módulo de softphone Selección de entrada de audio Tuesday, November 8, 2011
  • 19. GUI: de consola a teléfono Reubicación de botones de control Tuesday, November 8, 2011
  • 20. SIP / RTMP Proxy 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) Tuesday, November 8, 2011
  • 21. SIP / RTMP Proxy 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. Tuesday, November 8, 2011
  • 23. Otras posibles aplicaciones y usos para el proxy rtmp/sip Click to call en página web. Sistema de conferencias híbrido, participantes 100% web, participantes telefónicos, etc. Tuesday, November 8, 2011
  • 24. ¡Gracias! 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 Tuesday, November 8, 2011
  • 25. ¿ Preguntas ? Nos vemos en: Nicolás Gudiño asternic@gmail.com http://www.fop2.com Tuesday, November 8, 2011