Example #1
0
        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();
 }