コード例 #1
0
        /// <summary>
        /// Set up the UI to present the options for an incoming SIP call.
        /// </summary>
        private void SIPCallIncoming()
        {
            _activeClient = _sipClient;

            UIHelper.DoOnUIThread(this, delegate
            {
                m_uacGrid.Visibility = Visibility.Collapsed;
                m_uasGrid.Visibility = Visibility.Visible;
            });
        }
コード例 #2
0
        /// <summary>
        /// Reset the UI elements to their initial state at the end of a call.
        /// </summary>
        private void ResetToCallStartState()
        {
            UIHelper.DoOnUIThread(this, delegate
            {
                m_callButton.Visibility     = Visibility.Visible;
                m_cancelButton.Visibility   = Visibility.Collapsed;
                m_byeButton.Visibility      = Visibility.Collapsed;
                m_answerButton.Visibility   = Visibility.Visible;
                m_rejectButton.Visibility   = Visibility.Visible;
                m_redirectButton.Visibility = Visibility.Visible;
                m_hangupButton.Visibility   = Visibility.Visible;
                m_uacGrid.Visibility        = Visibility.Visible;
                m_uasGrid.Visibility        = Visibility.Collapsed;
            });

            _activeClient = null;
        }
コード例 #3
0
        /// <summary>
        /// We are taking the remote call party off hold.
        /// </summary>
        private void OffHoldButton_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            IVoIPClient client = (sender == m_offHoldButton) ? _sipClients[0] : _sipClients[1];

            if (client == _sipClients[0])
            {
                m_holdButton.Visibility    = Visibility.Visible;
                m_offHoldButton.Visibility = Visibility.Collapsed;
            }
            else if (client == _sipClients[1])
            {
                m_hold2Button.Visibility    = Visibility.Visible;
                m_offHold2Button.Visibility = Visibility.Collapsed;
            }

            client.TakeOffHold();
        }
コード例 #4
0
        /// <summary>
        /// The button to place an outgoing call.
        /// </summary>
        private void CallButton_Click(object sender, RoutedEventArgs e)
        {
            if (m_uriEntryTextBox.Text.IsNullOrBlank())
            {
                SetStatusText(m_signallingStatus, "No call destination was specified.");
            }
            else if (m_uriEntryTextBox.Text == VIDEO_LOOPBACK_CALL_DESTINATION)
            {
                if (_localVideoMode == null)
                {
                    LocalVideoError("Please start the local video and try again.");
                }
                else
                {
                    SetStatusText(m_signallingStatus, "Running video loopback test...");

                    m_callButton.Visibility   = Visibility.Collapsed;
                    m_cancelButton.Visibility = Visibility.Collapsed;
                    m_byeButton.Visibility    = Visibility.Visible;

                    _mediaManager.RunLoopbackTest();
                }
            }
            else
            {
                SetStatusText(m_signallingStatus, "calling " + m_uriEntryTextBox.Text + ".");

                m_callButton.Visibility   = Visibility.Collapsed;
                m_cancelButton.Visibility = Visibility.Visible;
                m_byeButton.Visibility    = Visibility.Collapsed;

                string destination = m_uriEntryTextBox.Text;

                // SIP call.
                _activeClient = _sipClient;
                Task.Run(() => { _sipClient.Call(_mediaManager, destination); });
            }
        }
コード例 #5
0
        /// <summary>
        /// The button to place an outgoing call.
        /// </summary>
        private void CallButton_Click(object sender, RoutedEventArgs e)
        {
            SetStatusText(m_signallingStatus, "calling " + m_uriEntryTextBox.Text + ".");

            m_callButton.Visibility   = Visibility.Collapsed;
            m_cancelButton.Visibility = Visibility.Visible;
            m_byeButton.Visibility    = Visibility.Collapsed;

            string destination = m_uriEntryTextBox.Text;

            // Use Google Voice or the SIP client to place the call depending on which radio button has been checked.
            if (m_googleVoiceRadioButton.IsChecked.GetValueOrDefault())
            {
                // Google Voice call.
                _activeClient = _gingleClient;
                ThreadPool.QueueUserWorkItem(delegate { _gingleClient.Call(destination); });
            }
            else
            {
                // SIP call.
                _activeClient = _sipClient;
                ThreadPool.QueueUserWorkItem(delegate { _sipClient.Call(destination); });
            }
        }
コード例 #6
0
        /// <summary>
        /// Set up the UI to present the options for an incoming SIP call.
        /// </summary>
        private void SIPCallIncoming()
        {
            _activeClient = _sipClient;

            UIHelper.DoOnUIThread(this, delegate
            {
                m_uacGrid.Visibility = Visibility.Collapsed;
                m_uasGrid.Visibility = Visibility.Visible;
            });
        }
コード例 #7
0
        /// <summary>
        /// Reset the UI elements to their initial state at the end of a call.
        /// </summary>
        private void ResetToCallStartState()
        {
            UIHelper.DoOnUIThread(this, delegate
            {
                m_callButton.Visibility = Visibility.Visible;
                m_cancelButton.Visibility = Visibility.Collapsed;
                m_byeButton.Visibility = Visibility.Collapsed;
                m_answerButton.Visibility = Visibility.Visible;
                m_rejectButton.Visibility = Visibility.Visible;
                m_redirectButton.Visibility = Visibility.Visible;
                m_hangupButton.Visibility = Visibility.Visible;
                m_uacGrid.Visibility = Visibility.Visible;
                m_uasGrid.Visibility = Visibility.Collapsed;
            });

            _activeClient = null;
        }
コード例 #8
0
        /// <summary>
        /// The button to place an outgoing call.
        /// </summary>
        private void CallButton_Click(object sender, RoutedEventArgs e)
        {
            if (m_uriEntryTextBox.Text.IsNullOrBlank())
            {
                SetStatusText(m_signallingStatus, "No call destination was specified.");
            }
            else if (m_uriEntryTextBox.Text == VIDEO_LOOPBACK_CALL_DESTINATION)
            {
                if (_localVideoMode == null)
                {
                    LocalVideoError("Please start the local video and try again.");
                }
                else
                {
                    SetStatusText(m_signallingStatus, "Running video loopback test...");

                    m_callButton.Visibility = Visibility.Collapsed;
                    m_cancelButton.Visibility = Visibility.Collapsed;
                    m_byeButton.Visibility = Visibility.Visible;

                    _mediaManager.RunLoopbackTest();
                }
            }
            else
            {
                SetStatusText(m_signallingStatus, "calling " + m_uriEntryTextBox.Text + ".");

                m_callButton.Visibility = Visibility.Collapsed;
                m_cancelButton.Visibility = Visibility.Visible;
                m_byeButton.Visibility = Visibility.Collapsed;

                string destination = m_uriEntryTextBox.Text;

                // Use Google Voice or the SIP client to place the call depending on the destination prefix.
                //if (m_googleVoiceRadioButton.IsChecked.GetValueOrDefault())
                //{
                //    // Google Voice call.
                //    _activeClient = _gingleClient;
                //    ThreadPool.QueueUserWorkItem(delegate { _gingleClient.Call(_mediaManager, destination); });
                //}
                //else
                //{
                // SIP call.
                _activeClient = _sipClient;
                ThreadPool.QueueUserWorkItem(delegate { _sipClient.Call(_mediaManager, destination); });
                //}
            }
        }
コード例 #9
0
 /// <summary>
 /// Set up the UI to present the options for an incoming SIP call.
 /// </summary>
 private void SIPCallIncoming()
 {
     _activeClient = _sipClient;
     SetVisibility(m_uacGrid, Visibility.Collapsed);
     SetVisibility(m_uasGrid, Visibility.Visible);
 }
コード例 #10
0
        /// <summary>
        /// The button to place an outgoing call.
        /// </summary>
        private void CallButton_Click(object sender, RoutedEventArgs e)
        {
            SetStatusText(m_signallingStatus, "calling " + m_uriEntryTextBox.Text + ".");

            m_callButton.Visibility = Visibility.Collapsed;
            m_cancelButton.Visibility = Visibility.Visible;
            m_byeButton.Visibility = Visibility.Collapsed;

            string destination = m_uriEntryTextBox.Text;

            // Use Google Voice or the SIP client to place the call depending on which radio button has been checked.
            if (m_googleVoiceRadioButton.IsChecked.GetValueOrDefault())
            {
                // Google Voice call.
                _activeClient = _gingleClient;
                ThreadPool.QueueUserWorkItem(delegate { _gingleClient.Call(destination); });
            }
            else
            {
                // SIP call.
                _activeClient = _sipClient;
                ThreadPool.QueueUserWorkItem(delegate { _sipClient.Call(destination); });
            }
        }
コード例 #11
0
 /// <summary>
 /// Set up the UI to present the options for an incoming SIP call.
 /// </summary>
 private void SIPCallIncoming()
 {
     _activeClient = _sipClient;
     SetVisibility(m_uacGrid, Visibility.Collapsed);
     SetVisibility(m_uasGrid, Visibility.Visible);
 }
コード例 #12
0
        /// <summary>
        /// The button to place an outgoing call.
        /// </summary>
        private void CallButton_Click(object sender, RoutedEventArgs e)
        {
            if (m_uriEntryTextBox.Text.IsNullOrBlank())
            {
                SetStatusText(m_signallingStatus, "No call destination was specified.");
            }
            else if (m_uriEntryTextBox.Text == VIDEO_LOOPBACK_CALL_DESTINATION)
            {
                if (_localVideoMode == null)
                {
                    LocalVideoError("Please start the local video and try again.");
                }
                else
                {
                    SetStatusText(m_signallingStatus, "Running video loopback test...");

                    m_callButton.Visibility = Visibility.Collapsed;
                    m_cancelButton.Visibility = Visibility.Collapsed;
                    m_byeButton.Visibility = Visibility.Visible;

                    _mediaManager.RunLoopbackTest();
                }
            }
            else
            {
                SetStatusText(m_signallingStatus, "calling " + m_uriEntryTextBox.Text + ".");

                m_callButton.Visibility = Visibility.Collapsed;
                m_cancelButton.Visibility = Visibility.Visible;
                m_byeButton.Visibility = Visibility.Collapsed;

                string destination = m_uriEntryTextBox.Text;

                // SIP call.
                _activeClient = _sipClient;
                ThreadPool.QueueUserWorkItem(delegate { _sipClient.Call(_mediaManager, destination); });
            }
        }