SlideShare una empresa de Scribd logo
1 de 17
FreeSWITCH™ es:
•  Una libreria
•  Un Softswitch
•  Un softphone
•  Una PBX IP
Qué es FreeSWITCH™?
Wikipedia: “FreeSWITCH™ is a free and open source
communications software for the creation of voice and
messaging products.”
FreeSWITCH™ NO es:
•  Un SIP Proxy
•  Un polvo magico que soluciona todos nuestro problemas
•  Fácil – You have to know what you’re doing
Qué NO es FreeSWITCH™?
•  Viene de Asterisk
•  No comparte codigo de Asterisk
•  Creado por Anthony Minessale II
•  Tony escribió los siguientes “apps” de Asterisk:
•  App_chanspy
•  App_dumpchan
•  App_realtime
•  Res_odbc
De donde viene?
•  Estabilidad
•  Escalabilidad
•  Abstracción
Objetivos del proyecto
•  Usando librerias ya existentes como:
•  Libsofia para SIP
•  Apache Portable Runtime para ser
multiplataforma
•  SQLite para base de datos
•  PCRE para expresiones regulares
•  Muchas otras…
Como lograr?
Arquitectura
Configuración
•  FreeSWITCH utiliza XML internamente para su
configuración
•  La configuración es cargada en memoria durante la
ejecución
•  La configuración puede ser totalmente dinámica
•  Cada vez que algun componente pide por
configuración, otros modulos tienen la
oportunidad de proveerla siempre y cuando la
respuesta sea XML.
Directory
•  Es un repositório de usuarios organizados por
dominio
•  1000@khomp.com.ar != 1000@freeswitch.org
•  Las informaciones contenidas en el directorio son
relevantes unicamente al modulo/tecnologia que
pide por el usuario
•  El directorio es agnostico a tecnologia
Eventos, eventos
•  Subsistema de eventos sigue el patrón
“observable”
•  Es el medio de comunicación entre modulos
•  Es utilizado para execución de aplicaciones en
canales e incluso para cola de SQL utilizado pelo
core
Observable
A B
B llama método de A
C
Requiere cambio en la estructura de B
MALA PRAXIS, B no tendría que saber
del funcionamiento de A o C.
Observable
A B
C
Event
System
EVENTO
INTERESANTE
Pero, que és un evento?
Event-Subclass: sofia::register
Event-Name: CUSTOM
Core-UUID: fa05978b-1302-4b91-b7ee-8a37dc35f59d
FreeSWITCH-Hostname: hostname
FreeSWITCH-Switchname: hostname
FreeSWITCH-IPv4: X.X.X.X
Event-Date-Local: 2012-09-24 04:21:26
profile-name: internal
from-user: 1000
from-host: X.X.X.X
contact: "user" <sip:1000@X.X.X.X40811;line=30510>
status: Registered(UDP)
expires: 10
to-user: 1000
to-host: X.X.X.X
network-port: 40811
username: 1000
user-agent: snom-m3-SIP/02.11 (MAC=0004132A2E81; HW=1)
¿Y a mi qué?
•  Event Socket Library
•  Es un event consumer que “escribe” los eventos
en un socket TCP
•  Libesl posee un protocolo
•  Fs_cli == asterisk –r
•  Libesl posee bindings para varios lenguajes a
traves de un wrapper C++ y SWIG
•  PHP, Python, Perl, Lua, C#, etc…
Aplicaciones
FSGui
Obrigado!
João Mesquita
jmesquita@khomp.com.ar / jmesquita@freeswitch.org
(54 11) 5917-6025
(54 9 11) 4191-4843

Más contenido relacionado

La actualidad más candente

La actualidad más candente (7)

.NET Multiplataforma
.NET Multiplataforma .NET Multiplataforma
.NET Multiplataforma
 
Documertar APIs - Meetup.js
Documertar APIs - Meetup.jsDocumertar APIs - Meetup.js
Documertar APIs - Meetup.js
 
SOA Latam Workshop: Comparison Dropwizard, ratpack & Spring Boot
SOA Latam Workshop: Comparison Dropwizard, ratpack & Spring BootSOA Latam Workshop: Comparison Dropwizard, ratpack & Spring Boot
SOA Latam Workshop: Comparison Dropwizard, ratpack & Spring Boot
 
Javascript vuela en primera clase con Firefox OS
Javascript vuela en primera clase con Firefox OSJavascript vuela en primera clase con Firefox OS
Javascript vuela en primera clase con Firefox OS
 
ASP.NET Core 1.0
ASP.NET Core 1.0ASP.NET Core 1.0
ASP.NET Core 1.0
 
APIs REST
APIs RESTAPIs REST
APIs REST
 
ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3
 

Destacado (8)

Wate rwk1assignment
Wate rwk1assignmentWate rwk1assignment
Wate rwk1assignment
 
Soil assignment2
Soil assignment2Soil assignment2
Soil assignment2
 
대한민국저작권법개정 인주찾기2 20101017
대한민국저작권법개정 인주찾기2 20101017대한민국저작권법개정 인주찾기2 20101017
대한민국저작권법개정 인주찾기2 20101017
 
행사진행 - 공공데이터캠프 2013
행사진행 - 공공데이터캠프 2013행사진행 - 공공데이터캠프 2013
행사진행 - 공공데이터캠프 2013
 
Podcast
PodcastPodcast
Podcast
 
Awk ward
Awk wardAwk ward
Awk ward
 
Innodic 1
Innodic 1Innodic 1
Innodic 1
 
Tutorial perl en linux
Tutorial perl en linuxTutorial perl en linux
Tutorial perl en linux
 

Similar a FreeSWITCHTM: Una librería, softswitch, softphone y PBX IP

FreeSWITCH para usuarios Asterisk
FreeSWITCH para usuarios AsteriskFreeSWITCH para usuarios Asterisk
FreeSWITCH para usuarios AsteriskPaloSanto Solutions
 
Symfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony FrameworkSymfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony Frameworkexcedesoft
 
Webinar Gratuito "OWASP WebScarab"
Webinar Gratuito "OWASP WebScarab"Webinar Gratuito "OWASP WebScarab"
Webinar Gratuito "OWASP WebScarab"Alonso Caballero
 
Inseguridad wireless-sfd- final
Inseguridad wireless-sfd- finalInseguridad wireless-sfd- final
Inseguridad wireless-sfd- finalsp1b0t
 
Re evolución robótica
Re evolución robóticaRe evolución robótica
Re evolución robóticaSoftware Guru
 
Arquitectura de referencia corregido
Arquitectura de referencia corregidoArquitectura de referencia corregido
Arquitectura de referencia corregidoJose Torres Gonzales
 
Introduccion a elastic beanstalk aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexicoIntroduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk aws roadshow bogota mexicoAmazon Web Services LATAM
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDaniel Cruz
 
Contenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesContenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesBitnami
 
Cosmos DB + Azure Functions- Cloud Lunch and Learn Marathon .pptx
Cosmos DB + Azure Functions- Cloud Lunch and Learn Marathon .pptxCosmos DB + Azure Functions- Cloud Lunch and Learn Marathon .pptx
Cosmos DB + Azure Functions- Cloud Lunch and Learn Marathon .pptxLuis Beltran
 
Tecnologías de hoy y del futuro
Tecnologías de hoy y del futuroTecnologías de hoy y del futuro
Tecnologías de hoy y del futuroFernando Parra
 
LenguajeJavaSpringBootDesarrolloweb.pptx
LenguajeJavaSpringBootDesarrolloweb.pptxLenguajeJavaSpringBootDesarrolloweb.pptx
LenguajeJavaSpringBootDesarrolloweb.pptxcarrilloja98
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Francisco Javier Toscano Lopez
 
Ingeniería Inversa en Android. Rooted Labs. Rooted CON 2012.
Ingeniería Inversa en Android.  Rooted Labs. Rooted CON 2012.Ingeniería Inversa en Android.  Rooted Labs. Rooted CON 2012.
Ingeniería Inversa en Android. Rooted Labs. Rooted CON 2012.Internet Security Auditors
 
Azure bootcampo 2019 start up_v1
Azure bootcampo 2019 start up_v1Azure bootcampo 2019 start up_v1
Azure bootcampo 2019 start up_v1fernando sonego
 
Web 2.0 sara
Web 2.0 saraWeb 2.0 sara
Web 2.0 sara2142562
 

Similar a FreeSWITCHTM: Una librería, softswitch, softphone y PBX IP (20)

FreeSWITCH para usuarios Asterisk
FreeSWITCH para usuarios AsteriskFreeSWITCH para usuarios Asterisk
FreeSWITCH para usuarios Asterisk
 
Symfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony FrameworkSymfony-Community: Introducción a Symfony Framework
Symfony-Community: Introducción a Symfony Framework
 
Webinar Gratuito "OWASP WebScarab"
Webinar Gratuito "OWASP WebScarab"Webinar Gratuito "OWASP WebScarab"
Webinar Gratuito "OWASP WebScarab"
 
Inseguridad wireless-sfd- final
Inseguridad wireless-sfd- finalInseguridad wireless-sfd- final
Inseguridad wireless-sfd- final
 
Re evolución robótica
Re evolución robóticaRe evolución robótica
Re evolución robótica
 
Gestión Remota de Equipos con Python
Gestión Remota de Equipos con PythonGestión Remota de Equipos con Python
Gestión Remota de Equipos con Python
 
Arquitectura de referencia corregido
Arquitectura de referencia corregidoArquitectura de referencia corregido
Arquitectura de referencia corregido
 
Introduccion a elastic beanstalk aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexicoIntroduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk aws roadshow bogota mexico
 
Desarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nubeDesarrollo de aplicaciones en la nube
Desarrollo de aplicaciones en la nube
 
Contenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesContenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de Aplicaciones
 
Cosmos DB + Azure Functions- Cloud Lunch and Learn Marathon .pptx
Cosmos DB + Azure Functions- Cloud Lunch and Learn Marathon .pptxCosmos DB + Azure Functions- Cloud Lunch and Learn Marathon .pptx
Cosmos DB + Azure Functions- Cloud Lunch and Learn Marathon .pptx
 
Tecnologías de hoy y del futuro
Tecnologías de hoy y del futuroTecnologías de hoy y del futuro
Tecnologías de hoy y del futuro
 
LenguajeJavaSpringBootDesarrolloweb.pptx
LenguajeJavaSpringBootDesarrolloweb.pptxLenguajeJavaSpringBootDesarrolloweb.pptx
LenguajeJavaSpringBootDesarrolloweb.pptx
 
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
Como sacar el máximo partido a los Cores de MuleSoft - optimización y buenas ...
 
Servidor http
Servidor httpServidor http
Servidor http
 
Ingeniería Inversa en Android. Rooted Labs. Rooted CON 2012.
Ingeniería Inversa en Android.  Rooted Labs. Rooted CON 2012.Ingeniería Inversa en Android.  Rooted Labs. Rooted CON 2012.
Ingeniería Inversa en Android. Rooted Labs. Rooted CON 2012.
 
Cómo elegir un servidor Web
Cómo elegir un servidor WebCómo elegir un servidor Web
Cómo elegir un servidor Web
 
Introducción a microservicios
Introducción a microserviciosIntroducción a microservicios
Introducción a microservicios
 
Azure bootcampo 2019 start up_v1
Azure bootcampo 2019 start up_v1Azure bootcampo 2019 start up_v1
Azure bootcampo 2019 start up_v1
 
Web 2.0 sara
Web 2.0 saraWeb 2.0 sara
Web 2.0 sara
 

FreeSWITCHTM: Una librería, softswitch, softphone y PBX IP

  • 1.
  • 2. FreeSWITCH™ es: •  Una libreria •  Un Softswitch •  Un softphone •  Una PBX IP Qué es FreeSWITCH™? Wikipedia: “FreeSWITCH™ is a free and open source communications software for the creation of voice and messaging products.”
  • 3. FreeSWITCH™ NO es: •  Un SIP Proxy •  Un polvo magico que soluciona todos nuestro problemas •  Fácil – You have to know what you’re doing Qué NO es FreeSWITCH™?
  • 4. •  Viene de Asterisk •  No comparte codigo de Asterisk •  Creado por Anthony Minessale II •  Tony escribió los siguientes “apps” de Asterisk: •  App_chanspy •  App_dumpchan •  App_realtime •  Res_odbc De donde viene?
  • 5. •  Estabilidad •  Escalabilidad •  Abstracción Objetivos del proyecto
  • 6. •  Usando librerias ya existentes como: •  Libsofia para SIP •  Apache Portable Runtime para ser multiplataforma •  SQLite para base de datos •  PCRE para expresiones regulares •  Muchas otras… Como lograr?
  • 8. Configuración •  FreeSWITCH utiliza XML internamente para su configuración •  La configuración es cargada en memoria durante la ejecución •  La configuración puede ser totalmente dinámica •  Cada vez que algun componente pide por configuración, otros modulos tienen la oportunidad de proveerla siempre y cuando la respuesta sea XML.
  • 9. Directory •  Es un repositório de usuarios organizados por dominio •  1000@khomp.com.ar != 1000@freeswitch.org •  Las informaciones contenidas en el directorio son relevantes unicamente al modulo/tecnologia que pide por el usuario •  El directorio es agnostico a tecnologia
  • 10. Eventos, eventos •  Subsistema de eventos sigue el patrón “observable” •  Es el medio de comunicación entre modulos •  Es utilizado para execución de aplicaciones en canales e incluso para cola de SQL utilizado pelo core
  • 11. Observable A B B llama método de A C Requiere cambio en la estructura de B MALA PRAXIS, B no tendría que saber del funcionamiento de A o C.
  • 13. Pero, que és un evento? Event-Subclass: sofia::register Event-Name: CUSTOM Core-UUID: fa05978b-1302-4b91-b7ee-8a37dc35f59d FreeSWITCH-Hostname: hostname FreeSWITCH-Switchname: hostname FreeSWITCH-IPv4: X.X.X.X Event-Date-Local: 2012-09-24 04:21:26 profile-name: internal from-user: 1000 from-host: X.X.X.X contact: "user" <sip:1000@X.X.X.X40811;line=30510> status: Registered(UDP) expires: 10 to-user: 1000 to-host: X.X.X.X network-port: 40811 username: 1000 user-agent: snom-m3-SIP/02.11 (MAC=0004132A2E81; HW=1)
  • 14. ¿Y a mi qué? •  Event Socket Library •  Es un event consumer que “escribe” los eventos en un socket TCP •  Libesl posee un protocolo •  Fs_cli == asterisk –r •  Libesl posee bindings para varios lenguajes a traves de un wrapper C++ y SWIG •  PHP, Python, Perl, Lua, C#, etc…
  • 16. FSGui
  • 17. Obrigado! João Mesquita jmesquita@khomp.com.ar / jmesquita@freeswitch.org (54 11) 5917-6025 (54 9 11) 4191-4843