/// <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; }); }
/// <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; }
/// <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(); }
/// <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); }); } }
/// <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); }); } }
/// <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); }); //} } }
/// <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); }
/// <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); }); } }