private void AttachToneController()
        {
            ToneController toneController = new ToneController();

            toneController.AttachFlow(this.audioCall.Flow);
            this.audioCall.Flow.ToneController.ToneReceived += this.OnToneReceived;
        }
예제 #2
0
        private void NewAttendeeCall_AudioVideoFlowConfigurationRequested(object sender,
                                                                          AudioVideoFlowConfigurationRequestedEventArgs e)
        {
            // Attach a Wma file player to the flow. It will be used to play
            // back a WMA file to the participant matching the detected DTMF
            // digit that the user pressed in the ToneReceived EventHandler.
            Player wmaFilePlayer = new Player();

            wmaFilePlayer.StateChanged += new EventHandler <PlayerStateChangedEventArgs>(
                WmaFilePlayer_StateChanged);

            var currentAvFlow = ((AudioVideoCall)sender).Flow;

            wmaFilePlayer.AttachFlow(currentAvFlow);

            ToneController currentToneController = new ToneController();

            // Add a handler for the tonereceived event so that the app can play
            // a wave file back to the user echoing the digit received.ss
            currentToneController.ToneReceived += new EventHandler <
                ToneControllerEventArgs>(ToneController_ToneReceived);

            // Attach the flow to the tone controller.
            currentToneController.AttachFlow(currentAvFlow);
        }
예제 #3
0
        public void Run()
        {
            // Create AudioVideoFlow
            AudioVideoFlowHelper audioVideoFlowHelper = new AudioVideoFlowHelper();

            _audioVideoFlow = audioVideoFlowHelper.CreateAudioVideoFlow(
                null,
                audioVideoFlow_StateChanged);

            // Create a ToneController and attach to AVFlow
            ToneController toneController = new ToneController();

            toneController.AttachFlow(_audioVideoFlow);

            // Subscribe to callback to receive tones
            toneController.ToneReceived += new EventHandler <ToneControllerEventArgs>(toneController_ToneReceived);

            // Subscribe to callback to receive fax tones
            toneController.IncomingFaxDetected += new EventHandler <IncomingFaxDetectedEventArgs>(toneController_IncomingFaxDetected);

            Console.WriteLine("ToneController attached. Send Zero or a Fax Tone to disconnect the call.");

            //Sync; wait for ToneReceivedEvent
            _waitForToneReceivedEventCompleted.WaitOne();

            // Shutdown the platform
            ShutdownPlatform();

            //Wait for shutdown to occur.
            _waitForShutdownEventCompleted.WaitOne();
        }
예제 #4
0
 // Callback that handles when a tone is received
 void toneController_ToneReceived(object sender, ToneControllerEventArgs e)
 {
     Console.WriteLine("Tone Received: " + (ToneId)e.Tone + " (" + e.Tone + ")");
     if ((ToneId)e.Tone == ToneId.Tone0)
     {
         _waitForToneReceivedEventCompleted.Set();
     }
     else
     {
         ToneController tc = (ToneController)sender;
         tc.Send(e.Tone);
     }
 }
예제 #5
0
        public void StartWithWelcome(AudioVideoFlow flow, LyncServer server)
        {
            _flow = flow;
            _server = server;
           //attach speech synthasis to audio flow
            _speechSynthesisConnector.AttachFlow(_flow);

            _speechSynthesizer = new SpeechSynthesizer();
            _speechSynthesizer.SetOutputToAudioStream(_speechSynthesisConnector, audioformat);
            _speechSynthesizer.SelectVoice("Microsoft Hazel Desktop");  //slightly more english

            var toneController = new ToneController(); //this is for the DTMF tones
            toneController.AttachFlow(_flow);
           
            _speechSynthesisConnector.Start();

            _speechSynthesizer.Speak("Welcome to the UCMA IVR Demo!");
            SpeakMenuOptions();
            toneController.ToneReceived += toneController_ToneReceived;
        }
예제 #6
0
        public void StartWithWelcome(AudioVideoFlow flow, LyncServer server)
        {
            _flow   = flow;
            _server = server;
            //attach speech synthasis to audio flow
            _speechSynthesisConnector.AttachFlow(_flow);

            _speechSynthesizer = new SpeechSynthesizer();
            _speechSynthesizer.SetOutputToAudioStream(_speechSynthesisConnector, audioformat);
            _speechSynthesizer.SelectVoice("Microsoft Hazel Desktop"); //slightly more english

            var toneController = new ToneController();                 //this is for the DTMF tones

            toneController.AttachFlow(_flow);

            _speechSynthesisConnector.Start();

            _speechSynthesizer.Speak("Welcome to the UC Day IVR!");  //TEXT TO SPEEECH!
            SpeakMenuOptions();
            toneController.ToneReceived += toneController_ToneReceived;
        }
예제 #7
0
 public void Setup()
 {
     toneController = new ToneController();
 }