/// <summary> /// Example using event socket in "Inbound" mode /// </summary> /// <param name="stateInfo">Object state info</param> static void InboundMode(Object stateInfo) { //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("127.0.0.1", "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)); } }
/// <summary> /// Example using event socket in "Inbound" mode /// </summary> /// <param name="stateInfo">Object state info</param> static void InboundMode(Object stateInfo) { //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)); } }
/// <summary> /// Example using event socket in "Outbound" mode asynchronic /// </summary> /// <param name="stateInfo">Object state info</param> static void OutboundModeAsync(Object stateInfo) { /* add next line to a dialplan * <action application="socket" data="localhost:8022 async full" /> */ TcpListener tcpListener = new TcpListener(IPAddress.Parse("127.0.0.1"), 8022); try { tcpListener.Start(); Console.WriteLine("OutboundModeAsync, waiting for connections..."); while (true) { tcpListener.BeginAcceptSocket((asyncCallback) => { TcpListener tcpListened = (TcpListener)asyncCallback.AsyncState; Socket sckClient = tcpListened.EndAcceptSocket(asyncCallback); //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(sckClient.Handle.ToInt32()); ESLevent eslEvent = eslConnection.GetInfo(); string strUuid = eslEvent.GetHeader("UNIQUE-ID", -1); eslConnection.SendRecv("myevents"); eslConnection.SendRecv("divert_events on"); eslConnection.Execute("answer", String.Empty, String.Empty); eslConnection.Execute("playback", "music/8000/suite-espanola-op-47-leyenda.wav", String.Empty); while (eslConnection.Connected() == ESL_SUCCESS) { eslEvent = eslConnection.RecvEvent(); Console.WriteLine(eslEvent.Serialize(String.Empty)); } sckClient.Close(); Console.WriteLine("Connection closed uuid:{0}", strUuid); }, tcpListener); Thread.Sleep(50); } } catch (Exception ex) { Console.WriteLine(ex); } finally { tcpListener.Stop(); } }
/// <summary> /// Example using event socket in "Outbound" mode synchronic /// </summary> /// <param name="stateInfo">Object state info</param> static void OutboundModeSync(Object stateInfo) { /* add next line to a dialplan * <action application="socket" data="localhost:8022 sync full"/> */ TcpListener tcpListener = new TcpListener(IPAddress.Parse("127.0.0.1"), 8022); try { tcpListener.Start(); Console.WriteLine("OutboundModeSync, waiting for a connection..."); while (true) { Socket sckClient = tcpListener.AcceptSocket(); //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(sckClient.Handle.ToInt32()); Console.WriteLine("Execute(\"answer\")"); eslConnection.Execute("answer", String.Empty, String.Empty); Console.WriteLine("Execute(\"playback\")"); eslConnection.Execute("playback", "music/8000/suite-espanola-op-47-leyenda.wav", String.Empty); Console.WriteLine("Execute(\"hangup\")"); eslConnection.Execute("hangup", String.Empty, String.Empty); } } catch (Exception ex) { Console.WriteLine(ex); } finally { tcpListener.Stop(); } }
public VoIPServer(Form form) { Configurator = new Configurator(); Configurator.Accounts = new List<IAccount>(); Configurator.Accounts.Add(new MockAccount()); CallManager = new CallManager(); Registrar = new Registrar(); StackProxy = new StackProxy(); ownerForm = form; mainForm = new MainForm(); mainForm.Show(ownerForm); mainForm.Server = this; eslConnection = new ESLconnection("localhost", "8021", "ClueCon"); //ThreadPool.QueueUserWorkItem(new WaitCallback(InboundMode)); InboundMode.Invoke(null); }
internal static HandleRef getCPtr(ESLconnection obj) { return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; }
internal static HandleRef getCPtr(ESLconnection obj) { return((obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr); }
/// <summary> /// Example using event socket in "Outbound" mode asynchronic /// </summary> /// <param name="stateInfo">Object state info</param> static void OutboundModeAsync(Object stateInfo) { /* add next line to a dialplan <action application="socket" data="localhost:8022 async full" /> */ TcpListener tcpListener = new TcpListener(IPAddress.Parse("127.0.0.1"), 8022); try { tcpListener.Start(); Console.WriteLine("OutboundModeAsync, waiting for connections..."); while (true) { tcpListener.BeginAcceptSocket((asyncCallback) => { TcpListener tcpListened = (TcpListener)asyncCallback.AsyncState; Socket sckClient = tcpListened.EndAcceptSocket(asyncCallback); //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(sckClient.Handle.ToInt32()); ESLevent eslEvent = eslConnection.GetInfo(); string strUuid = eslEvent.GetHeader("UNIQUE-ID", -1); eslConnection.SendRecv("myevents"); eslConnection.SendRecv("divert_events on"); eslConnection.Execute("answer", String.Empty, String.Empty); eslConnection.Execute("playback", "music/8000/suite-espanola-op-47-leyenda.wav", String.Empty); while (eslConnection.Connected() == ESL_SUCCESS) { eslEvent = eslConnection.RecvEvent(); Console.WriteLine(eslEvent.Serialize(String.Empty)); } sckClient.Close(); Console.WriteLine("Connection closed uuid:{0}", strUuid); }, tcpListener); Thread.Sleep(50); } } catch (Exception ex) { Console.WriteLine(ex); } finally { tcpListener.Stop(); } }
/// <summary> /// Example using event socket in "Outbound" mode synchronic /// </summary> /// <param name="stateInfo">Object state info</param> static void OutboundModeSync(Object stateInfo) { /* add next line to a dialplan <action application="socket" data="localhost:8022 sync full"/> */ TcpListener tcpListener = new TcpListener(IPAddress.Parse("127.0.0.1"), 8022); try { tcpListener.Start(); Console.WriteLine("OutboundModeSync, waiting for a connection..."); while (true) { Socket sckClient = tcpListener.AcceptSocket(); //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(sckClient.Handle.ToInt32()); Console.WriteLine("Execute(\"answer\")"); eslConnection.Execute("answer", String.Empty, String.Empty); Console.WriteLine("Execute(\"playback\")"); eslConnection.Execute("playback", "music/8000/suite-espanola-op-47-leyenda.wav", String.Empty); Console.WriteLine("Execute(\"hangup\")"); eslConnection.Execute("hangup", String.Empty, String.Empty); } } catch (Exception ex) { Console.WriteLine(ex); } finally { tcpListener.Stop(); } }
internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ESLconnection obj) { return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr); }