private void btnRight_MouseDown(object sender, MouseEventArgs e) { try { QLCallManager.GetInstance().CurrentCall.StartSendFECC(FECCKey.RIGHT); } catch (Exception ex) { MessageBox.Show(this, ex.Message, "错误消息", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btnLeft_MouseUp(object sender, MouseEventArgs e) { try { QLCallManager.GetInstance().CurrentCall.StopSendFECC(); } catch (Exception ex) { MessageBox.Show(this, ex.Message, "错误消息", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btn3_Click(object sender, EventArgs e) { try { QLCallManager.GetInstance().CurrentCall?.SendDTMFKey(DTMFKey.STAR); txtCallee.Text = txtCallee.Text + "3"; } catch (Exception ex) { MessageBox.Show(this, ex.Message, "错误消息", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btnAudioCall_Click(object sender, EventArgs e) { var callAddr = txtCallee.Text.Trim(); if (string.IsNullOrEmpty(callAddr)) { MessageBox.Show("被呼叫方必须"); return; } try { QLCallManager.GetInstance().DialCall(callAddr, CallMode.AUDIO); OKAction?.Invoke(); this.Dispose(); } catch (Exception ex) { MessageBox.Show(this, ex.Message, "消息通知", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void grdCalls_CellClick(object sender, DataGridViewCellEventArgs e) { var dgv = (DataGridView)sender; if (e.ColumnIndex < 0) { return; } if (e.RowIndex < 0) { return; } var calls = dgv.DataSource as IEnumerable <QLSDK.Core.QLCall>; if (null != calls) { var call = calls.Skip(e.RowIndex).FirstOrDefault(); if (null != call) { var columnName = dgv.Columns[e.ColumnIndex].Name; switch (columnName) { #region Answer case "btnAnswer": { switch (call.CallState) { case QLSDK.Core.CallState.SIP_UNKNOWN: case QLSDK.Core.CallState.SIP_CALL_CLOSED: case QLSDK.Core.CallState.SIP_OUTGOING_FAILURE: break; case QLSDK.Core.CallState.SIP_INCOMING_INVITE: { if (null == QLDeviceManager.GetInstance().CurrentVideoInputDevice) { call.AnswerCall(QLSDK.Core.CallMode.AUDIO); } else { call.AnswerCall(call.CallMode); } } break; case QLSDK.Core.CallState.SIP_INCOMING_CONNECTED: case QLSDK.Core.CallState.SIP_CALL_HOLD: case QLSDK.Core.CallState.SIP_CALL_HELD: case QLSDK.Core.CallState.SIP_CALL_DOUBLE_HOLD: case QLSDK.Core.CallState.SIP_OUTGOING_TRYING: case QLSDK.Core.CallState.SIP_OUTGOING_RINGING: case QLSDK.Core.CallState.SIP_OUTGOING_CONNECTED: break; } } break; #endregion #region Hold case "btnHold": { switch (call.CallState) { case QLSDK.Core.CallState.SIP_UNKNOWN: case QLSDK.Core.CallState.SIP_CALL_CLOSED: case QLSDK.Core.CallState.SIP_OUTGOING_FAILURE: break; case QLSDK.Core.CallState.SIP_INCOMING_INVITE: break; case QLSDK.Core.CallState.SIP_INCOMING_CONNECTED: case QLSDK.Core.CallState.SIP_OUTGOING_CONNECTED: { call.HoldCall(); } break; case QLSDK.Core.CallState.SIP_CALL_HOLD: case QLSDK.Core.CallState.SIP_CALL_HELD: case QLSDK.Core.CallState.SIP_CALL_DOUBLE_HOLD: case QLSDK.Core.CallState.SIP_OUTGOING_TRYING: case QLSDK.Core.CallState.SIP_OUTGOING_RINGING: break; } } break; #endregion #region Resume case "btnResume": { switch (call.CallState) { case QLSDK.Core.CallState.SIP_UNKNOWN: case QLSDK.Core.CallState.SIP_CALL_CLOSED: case QLSDK.Core.CallState.SIP_OUTGOING_FAILURE: break; case QLSDK.Core.CallState.SIP_INCOMING_INVITE: case QLSDK.Core.CallState.SIP_INCOMING_CONNECTED: case QLSDK.Core.CallState.SIP_OUTGOING_CONNECTED: case QLSDK.Core.CallState.SIP_CALL_HELD: case QLSDK.Core.CallState.SIP_OUTGOING_TRYING: case QLSDK.Core.CallState.SIP_OUTGOING_RINGING: break; case QLSDK.Core.CallState.SIP_CALL_HOLD: case QLSDK.Core.CallState.SIP_CALL_DOUBLE_HOLD: { call.ResumeCall(); } break; } } break; #endregion #region Hangup case "btnHangup": { switch (call.CallState) { case QLSDK.Core.CallState.SIP_UNKNOWN: case QLSDK.Core.CallState.SIP_CALL_CLOSED: case QLSDK.Core.CallState.SIP_OUTGOING_FAILURE: break; case QLSDK.Core.CallState.SIP_INCOMING_INVITE: case QLSDK.Core.CallState.SIP_INCOMING_CONNECTED: case QLSDK.Core.CallState.SIP_OUTGOING_CONNECTED: case QLSDK.Core.CallState.SIP_CALL_HELD: case QLSDK.Core.CallState.SIP_OUTGOING_TRYING: case QLSDK.Core.CallState.SIP_OUTGOING_RINGING: case QLSDK.Core.CallState.SIP_CALL_HOLD: case QLSDK.Core.CallState.SIP_CALL_DOUBLE_HOLD: { call.HangUpCall(); } break; } } break; #endregion #region AudioCall case "btnAudioCall": { switch (call.CallState) { case QLSDK.Core.CallState.SIP_UNKNOWN: case QLSDK.Core.CallState.SIP_CALL_CLOSED: case QLSDK.Core.CallState.SIP_OUTGOING_FAILURE: { QLCallManager.GetInstance().DialCall(call.CallName, QLSDK.Core.CallMode.AUDIO); } break; case QLSDK.Core.CallState.SIP_INCOMING_INVITE: case QLSDK.Core.CallState.SIP_INCOMING_CONNECTED: case QLSDK.Core.CallState.SIP_OUTGOING_CONNECTED: case QLSDK.Core.CallState.SIP_CALL_HELD: case QLSDK.Core.CallState.SIP_OUTGOING_TRYING: case QLSDK.Core.CallState.SIP_OUTGOING_RINGING: case QLSDK.Core.CallState.SIP_CALL_HOLD: case QLSDK.Core.CallState.SIP_CALL_DOUBLE_HOLD: break; } } break; #endregion #region Video Call case "btnVideoCall": { switch (call.CallState) { case QLSDK.Core.CallState.SIP_UNKNOWN: case QLSDK.Core.CallState.SIP_CALL_CLOSED: case QLSDK.Core.CallState.SIP_OUTGOING_FAILURE: { QLCallManager.GetInstance().DialCall(call.CallName, QLSDK.Core.CallMode.VIDEO); } break; case QLSDK.Core.CallState.SIP_INCOMING_INVITE: case QLSDK.Core.CallState.SIP_INCOMING_CONNECTED: case QLSDK.Core.CallState.SIP_OUTGOING_CONNECTED: case QLSDK.Core.CallState.SIP_CALL_HELD: case QLSDK.Core.CallState.SIP_OUTGOING_TRYING: case QLSDK.Core.CallState.SIP_OUTGOING_RINGING: case QLSDK.Core.CallState.SIP_CALL_HOLD: case QLSDK.Core.CallState.SIP_CALL_DOUBLE_HOLD: break; } } break; #endregion } } } }