public void RedirectCall(LinphoneCall linphoneCall, string redirect_uri) { if (linphoneCall.IsExist() && LinphoneCore.IsNonZero()) { CallModule.linphone_call_redirect(LinphoneCore, linphoneCall.LinphoneCallPtr, redirect_uri); } }
public void HoldCall(LinphoneCall linphoneCall) { if (linphoneCall.IsExist() && LinphoneCore.IsNonZero()) { CallModule.linphone_core_pause_call(LinphoneCore, linphoneCall.LinphoneCallPtr); } }
public void ResumeCall(LinphoneCall linphoneCall) { if (linphoneCall.IsExist() && LinphoneCore.IsNonZero()) { CallModule.linphone_core_resume_call(LinphoneCore, linphoneCall.LinphoneCallPtr); } }
public void SendDTMFs(LinphoneCall linphoneCall, string dtmfs) { if (linphoneCall.IsExist() && LinphoneCore.IsNonZero() && !string.IsNullOrWhiteSpace(dtmfs)) { CallModule.linphone_call_send_dtmfs(linphoneCall.LinphoneCallPtr, dtmfs); } }
public void PauseRecording(LinphoneCall linphoneCall) { if (linphoneCall.IsExist() && LinphoneCore.IsNonZero() && !string.IsNullOrWhiteSpace(linphoneCall.RecordFile)) { GenericModules.linphone_call_stop_recording(linphoneCall.LinphoneCallPtr); } }
public void EchoCancellation(LinphoneCall linphoneCall, bool value) { if (linphoneCall.IsExist()) { MediaModule.linphone_call_enable_echo_cancellation(linphoneCall.LinphoneCallPtr, value); } }
/// <summary> /// Set speaker gain between 0..1f /// </summary> /// <param name="linphoneCall"></param> /// <param name="value"></param> public void SetSpeakerValue(LinphoneCall linphoneCall, double value) { if (linphoneCall.IsExist()) { MediaModule.linphone_call_set_speaker_volume_gain(linphoneCall.LinphoneCallPtr, (float)value); } }
public void TerminateCall(LinphoneCall linphoneCall) { if (linphoneCall.IsExist() && LinphoneCore.IsNonZero()) { CallModule.linphone_core_terminate_call(LinphoneCore, linphoneCall.LinphoneCallPtr); } }
public double GetSpeakerSound(LinphoneCall linphoneCall) { var result = 0f; if (linphoneCall.IsExist()) { result = MediaModule.linphone_call_get_speaker_volume_gain(linphoneCall.LinphoneCallPtr); } return(result); }
public void ReceiveCall(LinphoneCall linphoneCall) { if (linphoneCall.IsExist() && LinphoneCore.IsNonZero()) { CallModule.linphone_call_ref(linphoneCall.LinphoneCallPtr); IntPtr callParams = CreateCallParameters(); CallModule.linphone_core_accept_call_with_params(LinphoneCore, linphoneCall.LinphoneCallPtr, callParams); } }
public void ReceiveCallAndRecord(LinphoneCall linphoneCall, string filename, bool startRecordInstantly = true) { if (linphoneCall.IsExist() && LinphoneCore.IsNonZero()) { CallModule.linphone_call_ref(linphoneCall.LinphoneCallPtr); IntPtr callParams = CreateCallParameters(); CallModule.linphone_call_params_set_record_file(callParams, filename); CallModule.linphone_core_accept_call_with_params(LinphoneCore, linphoneCall.LinphoneCallPtr, callParams); if (startRecordInstantly) { GenericModules.linphone_call_start_recording(linphoneCall.LinphoneCallPtr); } } }
private void UpdateCallReferences(IntPtr call, CallState newCallState, CallType newCallType, LinphoneCallState callState, string from, string to, string recordFile) { IntPtr callref = CallModule.linphone_call_ref(call); LinphoneCall existCall = null; if (callref.IsNonZero()) { if (Calls.TryGetValue(callref, out existCall)) { if (existCall.State != newCallState) { existCall.State = newCallState; CallStateChangedEvent?.Invoke(existCall); } } else { existCall = new LinphoneCall() { State = newCallState, Type = newCallType, From = from, To = to, RecordFile = recordFile, LinphoneCallPtr = callref }; Calls.TryAdd(callref, existCall); CallStateChangedEvent?.Invoke(existCall); } } if (callState == LinphoneCallState.LinphoneCallReleased) { CallModule.linphone_call_unref(existCall.LinphoneCallPtr); Calls.TryRemove(callref, out existCall); return; } }