FreeSWITCH para usuarios Asterisk
-
Upload
elastix -
Category
Technology
-
view
1.250 -
download
1
description
Transcript of FreeSWITCH para usuarios Asterisk
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 • [email protected] != [email protected]
• 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:[email protected];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 [email protected] / [email protected] (54 11) 5917-6025 (54 9 11) 4191-4843