/// <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(); } }
/// <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(); } }