“inbound” modo significa que usando ESL la aplicación se conecta como cliente a FreeSWITCH (FS) para el envío y recepción de eventos y comandos. (http://wiki.freeswitch.org/wiki/Mod_event_socket)
Ejemplo usando managed ESL
El siguiente fragmento de código establece una conexión con FS, subscribe a todos los eventos en formato de texto plano, y entra en un bucle esperando por un evento e imprimiéndole en pantalla cuando llega.
//Initializes a new instance of ESLconnection, and connects to the host $host on the port $port, and supplies $password to freeswitch
ESLconnection eslConnection = new ESLconnection("localhost", "8021", "ClueCon");
if (eslConnection.Connected() != ESL_SUCCESS)
{
Console.WriteLine("Error connecting to FreeSwitch");
return;
}
//Set log level
//ESL.eslSetLogLevel((int)enLogLevel.DEBUG);
// Subscribe to all events
ESLevent eslEvent = eslConnection.SendRecv("event plain ALL");
if (eslEvent == null)
{
Console.WriteLine("Error subscribing to all events");
return;
}
//Turns an event into colon-separated 'name: value' pairs. The format parameter isn't used
Console.WriteLine(eslEvent.Serialize(String.Empty));
// Grab Events until process is killed
while (eslConnection.Connected() == ESL_SUCCESS)
{
eslEvent = eslConnection.RecvEvent();
Console.WriteLine(eslEvent.Serialize(String.Empty));
}
lunes, 22 de febrero de 2010
domingo, 21 de febrero de 2010
managed ESL
¿Qué es managed ESL ?
Es la librería que permite desde un lenguaje de .Net usar la Event Socket Library (ESL) de FreeSWITCH (FS).
Managed ESL establece comunicación con FreeSWITCH (FS) a través de socket encapsulando todo el manejo del socket y exponiendo los servicios suministrados por FS como clases manejadas en C#.
Managed ESL son clases que encapsulan los servicios de mod_event_socket (http://wiki.freeswitch.org/wiki/Mod_event_socket) expuestos con la estandarización obtenida de SWIG. Con SWIG se consigue una interfaz nativa en C++ y wrappers en C# que usan la interfaz de C++.
¿Qué se puede hacer?
Con managed ESL se puede conseguir control de la llamada, envío y recepción de eventos y comandos.
Como managed ESL se ejecuta fuera del contexto de ejecución de los procesos de FS, la aplicación que usa managed ESL puede ser publicada en una maquina remota o expuesta como un servicio simpre que se tenga conexión con FS a través un socket.
Construyendo managed ESL
En este momento solo se ha probado usando VisualStudio 2008 sobre Windows con Framework 2.0. Pronto se estará liberando para mono.
Pre-requisitos
VisualStudio 2008 (soporte para C y C#)
Framework 2.0
Windows
La solución de VS2008 para compilar managed ESL se encuentra en libs/esl/managed, es necesario que se tenga compilada la librería esl.lib que se construye con FreeSWITCH.
Es la librería que permite desde un lenguaje de .Net usar la Event Socket Library (ESL) de FreeSWITCH (FS).
Managed ESL establece comunicación con FreeSWITCH (FS) a través de socket encapsulando todo el manejo del socket y exponiendo los servicios suministrados por FS como clases manejadas en C#.
Managed ESL son clases que encapsulan los servicios de mod_event_socket (http://wiki.freeswitch.org/wiki/Mod_event_socket) expuestos con la estandarización obtenida de SWIG. Con SWIG se consigue una interfaz nativa en C++ y wrappers en C# que usan la interfaz de C++.
¿Qué se puede hacer?
Con managed ESL se puede conseguir control de la llamada, envío y recepción de eventos y comandos.
Como managed ESL se ejecuta fuera del contexto de ejecución de los procesos de FS, la aplicación que usa managed ESL puede ser publicada en una maquina remota o expuesta como un servicio simpre que se tenga conexión con FS a través un socket.
Construyendo managed ESL
En este momento solo se ha probado usando VisualStudio 2008 sobre Windows con Framework 2.0. Pronto se estará liberando para mono.
Pre-requisitos
VisualStudio 2008 (soporte para C y C#)
Framework 2.0
Windows
La solución de VS2008 para compilar managed ESL se encuentra en libs/esl/managed, es necesario que se tenga compilada la librería esl.lib que se construye con FreeSWITCH.
Suscribirse a:
Entradas (Atom)