FreeSWITCH para usuarios Asterisk

17

description

Joao Mesquita Khomp

Transcript of FreeSWITCH para usuarios Asterisk

Page 1: FreeSWITCH para usuarios Asterisk
Page 2: 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.”

Page 3: FreeSWITCH para usuarios Asterisk

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™?

Page 4: FreeSWITCH para usuarios Asterisk

•  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?

Page 5: FreeSWITCH para usuarios Asterisk

•  Estabilidad •  Escalabilidad •  Abstracción

Objetivos del proyecto

Page 6: FreeSWITCH para usuarios Asterisk

•  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?

Page 7: FreeSWITCH para usuarios Asterisk

Arquitectura

Page 8: FreeSWITCH para usuarios Asterisk

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.

Page 9: FreeSWITCH para usuarios Asterisk

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

Page 10: FreeSWITCH para usuarios Asterisk

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

Page 11: FreeSWITCH para usuarios Asterisk

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.

Page 12: FreeSWITCH para usuarios Asterisk

Observable

A B

C Event System

EVENTO INTERESANTE

Page 13: FreeSWITCH para usuarios Asterisk

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)

Page 14: FreeSWITCH para usuarios Asterisk

¿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…

Page 15: FreeSWITCH para usuarios Asterisk

Aplicaciones

Page 16: FreeSWITCH para usuarios Asterisk

FSGui

Page 17: FreeSWITCH para usuarios Asterisk

Obrigado! João Mesquita [email protected] / [email protected] (54 11) 5917-6025 (54 9 11) 4191-4843