Example #1
1
        void call_CallStateChanged(object sender, Ozeki.VoIP.VoIPEventArgs<CallState> e)
        {
            if(e.Item.IsInCall())
            {
                if(firstInCall)
                {
                    try
                    {
                        entry.State = WorkState.InProgress;
                        firstInCall = false;
                        ringingTimer.Elapsed -= ringingTimer_Elapsed;
                        waveStreamPlayback = new WaveStreamPlayback(entry.SoundPath);
                        call.ConnectAudioSender(waveStreamPlayback);

                        waveStreamPlayback.Stopped += waveStreamPlayback_Stopped;

                        waveStreamPlayback.StartStreaming();
                        progressTimer.Start();
                    }
                    catch (Exception ex)
                    {
                        OnWorkCompleted(WorkState.FileError);
                    }
                }
            }
            else if(e.Item.IsCallEnded())
            {
                OnWorkCompleted(WorkState.HungUpByRemote);
            }
        }
Example #2
0
 private void StartStreaming()
 {
     _log.Info("Playing tone file");
     _callSender.AttachToCall(_call);
     _wavPlayback.DataSent += WavRecorderDataSent;
     _wavPlayback.StartStreaming();
 }
Example #3
0
 public void StartRingtone()
 {
     if (ringtonePlayer != null)
     {
         ringtonePlayer.StartStreaming();
     }
 }
Example #4
0
        internal void SetRingtone(string filePath)
        {
            bool isStreaming = false;

            // dispose previous
            if (ringtonePlayer != null)
            {
                isStreaming = ringtonePlayer.IsStreaming;

                audioConnector.Disconnect(ringtonePlayer, speakerMixer);
                ringtonePlayer.Dispose();
                ringtonePlayer = null;
            }

            // create new
            ringtonePlayer = new WaveStreamPlayback(filePath, true, true);

            audioConnector.Connect(ringtonePlayer, speakerMixer);

            // start if necessary
            if (isStreaming)
            {
                ringtonePlayer.StartStreaming();
            }
        }
Example #5
0
 public void StartRingback()
 {
     if (ringbackPlayer != null)
     {
         ringbackPlayer.StartStreaming();
     }
 }
Example #6
0
        void call_CallStateChanged(object sender, Ozeki.VoIP.VoIPEventArgs <CallState> e)
        {
            if (e.Item.IsInCall())
            {
                if (firstInCall)
                {
                    try
                    {
                        entry.State           = WorkState.InProgress;
                        firstInCall           = false;
                        ringingTimer.Elapsed -= ringingTimer_Elapsed;
                        waveStreamPlayback    = new WaveStreamPlayback(entry.SoundPath);
                        call.ConnectAudioSender(waveStreamPlayback);

                        waveStreamPlayback.Stopped += waveStreamPlayback_Stopped;

                        waveStreamPlayback.StartStreaming();
                        progressTimer.Start();
                    }
                    catch (Exception ex)
                    {
                        OnWorkCompleted(WorkState.FileError);
                    }
                }
            }
            else if (e.Item.IsCallEnded())
            {
                OnWorkCompleted(WorkState.HungUpByRemote);
            }
        }
 public override void StartNarration(string audiofile)
 {
     currentAudioFile = audiofile;
     waveStreamPlayback = new WaveStreamPlayback(audiofile);
     waveStreamPlayback.Stopped += waveStreamPlayback_Stopped;
     OnNarrationStarting();
     waveStreamPlayback.StartStreaming();
 }
 public override void StartNarration(string audiofile)
 {
     currentAudioFile            = audiofile;
     waveStreamPlayback          = new WaveStreamPlayback(audiofile);
     waveStreamPlayback.Stopped += waveStreamPlayback_Stopped;
     OnNarrationStarting();
     waveStreamPlayback.StartStreaming();
 }
Example #9
0
        /// <summary>
        /// Starts streaming the wav file.
        /// </summary>
        public void StartWavPlayback()
        {
            if (wavPlayer == null)
            {
                return;
            }

            wavPlayer.StartStreaming();
        }
 public override void RestartNarration(string audioFile)
 {
     if (!string.IsNullOrEmpty(currentAudioFile) && audioFile != currentAudioFile)
     {
         changeAudioFile(audioFile);
     }
     else
     {
         waveStreamPlayback.StartStreaming();
     }
 }
Example #11
0
        internal void SetRingtone(string filePath)
        {
            bool isStreaming = false;

            // dispose previous
            if (ringtonePlayer != null)
            {
                isStreaming = ringtonePlayer.IsStreaming;

                audioConnector.Disconnect(ringtonePlayer, speakerMixer);
                ringtonePlayer.Dispose();
                ringtonePlayer = null;
            }

            // create new
            ringtonePlayer = new WaveStreamPlayback(filePath, true, true);

            audioConnector.Connect(ringtonePlayer, speakerMixer);

            // start if necessary
            if (isStreaming)
                ringtonePlayer.StartStreaming();
        }
Example #12
0
        private void btnPlay_Click(object sender, EventArgs e)
        {
            btnPlay.Enabled = false;
            btnPause.Enabled = true;
            btnPause.Focus();

            #region Wav File
            if (m_MediaType == eMediaType.WavFile) {
                if (m_MediaPlayerWav != null) {
                    if (!m_MediaPlayerWav.IsStreaming) {
                        if (m_TrackerDragged)
                            m_MediaPlayerWav.Stream.Position = Convert.ToInt64(barAudioTracker.EditValue);

                        m_MediaPlayerWav.StartStreaming();
                        AudioTick.Start();
                    }

                    return;
                }

                m_MediaSpeaker = Speaker.GetDefaultDevice(); //AudioSettingUtility.GetDefaultDeviceSpeaker();
                if (m_MediaSpeaker == null) {
                    MessageBox.Show("No audio device found.", "Bright Sales", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                m_Connector = new MediaConnector();
                m_MediaPlayerWav = new WaveStreamPlayback(m_MediaFile);
                barAudioTracker.Properties.Minimum = 0;
                barAudioTracker.Properties.Maximum = Convert.ToInt32(m_MediaPlayerWav.Stream.Length);

                m_MediaSpeaker.Start();
                m_Connector.Connect(m_MediaPlayerWav, m_MediaSpeaker);
                m_MediaPlayerWav.StartStreaming();
                m_MediaPlayerWav.IsStreaming = true;
                AudioTick.Start();
            }
            #endregion
            #region Mp3 File
            else if (m_MediaType == eMediaType.Mp3File) {
                if (m_MediaPlayerMp3 != null) {
                    if (!m_MediaPlayerMp3.IsStreaming) {
                        if (m_TrackerDragged)
                            m_MediaPlayerMp3.Stream.Position = Convert.ToInt64(barAudioTracker.EditValue);

                        m_MediaPlayerMp3.StartStreaming();
                        AudioTick.Start();
                    }

                    return;
                }

                m_MediaSpeaker = Speaker.GetDefaultDevice(); // AudioSettingUtility.GetDefaultDeviceSpeaker();
                if (m_MediaSpeaker == null) {
                    MessageBox.Show("No audio device found.", "Bright Sales", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                m_Connector = new MediaConnector();
                m_MediaPlayerMp3 = new MP3StreamPlayback(m_MediaFile);
                barAudioTracker.Properties.Minimum = 0;
                barAudioTracker.Properties.Maximum = Convert.ToInt32(m_MediaPlayerMp3.Stream.Length);

                m_MediaSpeaker.Start();
                m_Connector.Connect(m_MediaPlayerMp3, m_MediaSpeaker);
                m_MediaPlayerMp3.StartStreaming();
                m_MediaPlayerMp3.IsStreaming = true;
                AudioTick.Start();
            }
            #endregion
        }
Example #13
0
        private void CallPressed(string phoneNumber)
        {
            Logger.Log("Calling " + phoneNumber);

            WaveStreamPlayback waveStream = null;

            initiatedCall = apiExt.CreateCall(UsedPhoneNumber, phoneNumber, phoneNumber);
            if (initiatedCall == null)
                return;
            bool transferStarted = false;
            initiatedCall.CallStateChanged += (sender, e) =>
            {
                try
                {

                    if (e.Item == CallState.Answered)
                    {
                        if (transferStarted)
                        {
                            initiatedCall.DisconnectAudioSender(waveStream);
                            waveStream.Dispose();

                            var tts = new TextToSpeech();

                            tts.Stopped += (sender1, e1)=>{
                                                              tts.Dispose();
                                                              initiatedCall.HangUp();
                                                          };

                            initiatedCall.ConnectAudioSender(tts);
                            tts.AddAndStartText(string.Format("Calling {0} has failed. Please try again later.", phoneNumber));
                            return;
                        }

                        var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("OPSCallAssistant.Resources.ringback.wav");
                        waveStream = new WaveStreamPlayback(stream, true, true);

                        initiatedCall.ConnectAudioSender(waveStream);
                        waveStream.StartStreaming();

                        transferStarted = true;
                        initiatedCall.BlindTransfer(phoneNumber);

                    }
                    if (e.Item.IsCallEnded())
                    {
                        if (waveStream != null)
                            waveStream.Dispose();
                    }
                }
                catch(Exception ex)
                {
                    Logger.Log(ex.Message);
                    Logger.Log(ex.StackTrace);
                }

                var k = 65;

            };
            initiatedCall.Start();
        }
Example #14
0
        private void CallPressed(string phoneNumber)
        {
            Logger.Log("Calling " + phoneNumber);

            WaveStreamPlayback waveStream = null;

            initiatedCall = apiExt.CreateCall(UsedPhoneNumber, phoneNumber, phoneNumber);
            if (initiatedCall == null)
            {
                return;
            }
            bool transferStarted = false;

            initiatedCall.CallStateChanged += (sender, e) =>
            {
                try
                {
                    if (e.Item == CallState.Answered)
                    {
                        if (transferStarted)
                        {
                            initiatedCall.DisconnectAudioSender(waveStream);
                            waveStream.Dispose();

                            var tts = new TextToSpeech();

                            tts.Stopped += (sender1, e1) => {
                                tts.Dispose();
                                initiatedCall.HangUp();
                            };

                            initiatedCall.ConnectAudioSender(tts);
                            tts.AddAndStartText(string.Format("Calling {0} has failed. Please try again later.", phoneNumber));
                            return;
                        }

                        var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("OPSCallAssistant.Resources.ringback.wav");
                        waveStream = new WaveStreamPlayback(stream, true, true);

                        initiatedCall.ConnectAudioSender(waveStream);
                        waveStream.StartStreaming();

                        transferStarted = true;
                        initiatedCall.BlindTransfer(phoneNumber);
                    }
                    if (e.Item.IsCallEnded())
                    {
                        if (waveStream != null)
                        {
                            waveStream.Dispose();
                        }
                    }
                }
                catch (Exception ex)
                {
                    Logger.Log(ex.Message);
                    Logger.Log(ex.StackTrace);
                }

                var k = 65;
            };
            initiatedCall.Start();
        }