private void RecieveClient(IAsyncResult res) { TcpClient clnt = null; try { clnt = _listener.EndAcceptTcpClient(res); } catch (Exception e) { clnt = null; } try { _listener.BeginAcceptTcpClient(new AsyncCallback(RecieveClient), null); } catch (Exception e) { } if (clnt != null) { InboundConnection conn = new InboundConnection(clnt); conn.DisposeInvalidMessage = _disposeInvalidMessage; _connectionProcessor.Invoke(conn); } }
private void RecieveClient(IAsyncResult res) { TcpClient clnt = null; try { clnt = _listener.EndAcceptTcpClient(res); } catch (Exception e) { clnt = null; } try { _listener.BeginAcceptTcpClient(new AsyncCallback(RecieveClient), null); } catch (Exception e) { } if (clnt != null) { InboundConnection conn = new InboundConnection(clnt); conn.DisposeInvalidMessage = _disposeInvalidMessage; _connectionProcessor.Invoke(conn); } }
public static void ProcessConnection(InboundConnection conn) { conn.BindDigitAction("", "##", "", null, null, null); SocketEvent ev; conn.Answer(); string[] keys = new string[conn.Keys.Count]; conn.Keys.CopyTo(keys, 0); foreach (string str in keys) System.Diagnostics.Debug.WriteLine(str + " --> " + (conn[str]==null ? "" : conn[str])); string pin = conn.PlayAndGetDigits(4, 10, 3, 3000, "#","sounds/en/us/callie/conference/8000/conf-pin.wav" ,null, "\\d+", null); Console.WriteLine("The pin entered was: " + (pin == null ? "NO PIN" : pin)); if (pin == "8888") { conn.PlayAudioFile("sounds/music/48000/ponce-preludio-in-e-major.wav", false); Thread.Sleep(10000); if (conn.IsExtensionLive(new sDomainExtensionPair("1001", conn.Domain))) { ev = conn.BridgeToExtension(new sDomainExtensionPair("1001", conn.Domain), true); if (ev == null) Console.WriteLine("Null event returned from bridge"); else { System.Diagnostics.Debug.WriteLine("Bridge result: "); foreach (string str in ev.Keys) { System.Diagnostics.Debug.WriteLine(str + " --> " + ev[str]); } if (ev["originate_disposition"] == "USER_NOT_REGISTERED") { Console.WriteLine("Bridging to voicemail for unregistered user."); ev = conn.Voicemail(conn.Context, new sDomainExtensionPair(conn.Domain, "1001")); if (ev == null) Console.WriteLine("Null event returned from voicemail."); else { System.Diagnostics.Debug.WriteLine("Voicemail result: "); foreach (string str in ev.Keys) { System.Diagnostics.Debug.WriteLine(str + " --> " + ev[str]); } } } } } else { Console.WriteLine("Extension 1001 is not connected, bridging to voicemail"); ev = conn.Voicemail(conn.Context, new sDomainExtensionPair(conn.Domain, "1001")); if (ev == null) Console.WriteLine("Null event returned from voicemail."); else { System.Diagnostics.Debug.WriteLine("Voicemail result: "); foreach (string str in ev.Keys) { System.Diagnostics.Debug.WriteLine(str + " --> " + ev[str]); } } } } else { conn.PlayAudioFile("sounds/en/us/callie/conference/8000/conf-bad-pin.wav", true); conn.PlayAudioFile("sounds/en/us/callie/conference/8000/conf-goodbye.wav", true); } if (!conn.IsHungUp) conn.Hangup(); }