Exemplo n.º 1
0
 public void RedirectCall(LinphoneCall linphoneCall, string redirect_uri)
 {
     if (linphoneCall.IsExist() && LinphoneCore.IsNonZero())
     {
         CallModule.linphone_call_redirect(LinphoneCore, linphoneCall.LinphoneCallPtr, redirect_uri);
     }
 }
Exemplo n.º 2
0
 public void HoldCall(LinphoneCall linphoneCall)
 {
     if (linphoneCall.IsExist() && LinphoneCore.IsNonZero())
     {
         CallModule.linphone_core_pause_call(LinphoneCore, linphoneCall.LinphoneCallPtr);
     }
 }
Exemplo n.º 3
0
 public void ResumeCall(LinphoneCall linphoneCall)
 {
     if (linphoneCall.IsExist() && LinphoneCore.IsNonZero())
     {
         CallModule.linphone_core_resume_call(LinphoneCore, linphoneCall.LinphoneCallPtr);
     }
 }
Exemplo n.º 4
0
 public void SendDTMFs(LinphoneCall linphoneCall, string dtmfs)
 {
     if (linphoneCall.IsExist() && LinphoneCore.IsNonZero() && !string.IsNullOrWhiteSpace(dtmfs))
     {
         CallModule.linphone_call_send_dtmfs(linphoneCall.LinphoneCallPtr, dtmfs);
     }
 }
Exemplo n.º 5
0
 public void PauseRecording(LinphoneCall linphoneCall)
 {
     if (linphoneCall.IsExist() && LinphoneCore.IsNonZero() && !string.IsNullOrWhiteSpace(linphoneCall.RecordFile))
     {
         GenericModules.linphone_call_stop_recording(linphoneCall.LinphoneCallPtr);
     }
 }
Exemplo n.º 6
0
 public void EchoCancellation(LinphoneCall linphoneCall, bool value)
 {
     if (linphoneCall.IsExist())
     {
         MediaModule.linphone_call_enable_echo_cancellation(linphoneCall.LinphoneCallPtr, value);
     }
 }
Exemplo n.º 7
0
 /// <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);
     }
 }
Exemplo n.º 8
0
 public void TerminateCall(LinphoneCall linphoneCall)
 {
     if (linphoneCall.IsExist() && LinphoneCore.IsNonZero())
     {
         CallModule.linphone_core_terminate_call(LinphoneCore, linphoneCall.LinphoneCallPtr);
     }
 }
Exemplo n.º 9
0
        public double GetSpeakerSound(LinphoneCall linphoneCall)
        {
            var result = 0f;

            if (linphoneCall.IsExist())
            {
                result = MediaModule.linphone_call_get_speaker_volume_gain(linphoneCall.LinphoneCallPtr);
            }
            return(result);
        }
Exemplo n.º 10
0
        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);
            }
        }
Exemplo n.º 11
0
        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);
                }
            }
        }
Exemplo n.º 12
0
        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;
            }
        }