Ejemplo 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);
     }
 }
Ejemplo n.º 2
0
 public void HoldCall(LinphoneCall linphoneCall)
 {
     if (linphoneCall.IsExist() && LinphoneCore.IsNonZero())
     {
         CallModule.linphone_core_pause_call(LinphoneCore, linphoneCall.LinphoneCallPtr);
     }
 }
Ejemplo n.º 3
0
 public void ResumeCall(LinphoneCall linphoneCall)
 {
     if (linphoneCall.IsExist() && LinphoneCore.IsNonZero())
     {
         CallModule.linphone_core_resume_call(LinphoneCore, linphoneCall.LinphoneCallPtr);
     }
 }
Ejemplo 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);
     }
 }
Ejemplo n.º 5
0
 public void PauseRecording(LinphoneCall linphoneCall)
 {
     if (linphoneCall.IsExist() && LinphoneCore.IsNonZero() && !string.IsNullOrWhiteSpace(linphoneCall.RecordFile))
     {
         GenericModules.linphone_call_stop_recording(linphoneCall.LinphoneCallPtr);
     }
 }
Ejemplo n.º 6
0
 public void SetRingbackSound(string file)
 {
     if (LinphoneCore.IsNonZero())
     {
         MediaModule.linphone_core_set_ringback(LinphoneCore, file);
     }
 }
Ejemplo n.º 7
0
 public void TerminateCall(LinphoneCall linphoneCall)
 {
     if (linphoneCall.IsExist() && LinphoneCore.IsNonZero())
     {
         CallModule.linphone_core_terminate_call(LinphoneCore, linphoneCall.LinphoneCallPtr);
     }
 }
Ejemplo n.º 8
0
 public void SetIncomingRingSound(string file)
 {
     if (LinphoneCore.IsNonZero())
     {
         MediaModule.linphone_core_set_ring(LinphoneCore, file);
     }
 }
Ejemplo n.º 9
0
 public void OnRegistrationChanged(IntPtr lc, IntPtr cfg, LinphoneRegistrationState cstate, string message)
 {
     if (LinphoneCore.IsNonZero())
     {
         RegistrationStateChangedEvent?.Invoke(cstate);
     }
 }
Ejemplo n.º 10
0
        public void MakeCallAndRecord(string uri, string filename, bool startRecordInstantly)
        {
            if (LinphoneCore.IsNonZero())
            {
                var callParams = CreateCallParameters();

                if (!string.IsNullOrWhiteSpace(filename))
                {
                    CallModule.linphone_call_params_set_record_file(callParams, filename);
                }

                IntPtr call = CallModule.linphone_core_invite_with_params(LinphoneCore, uri, callParams);

                if (call.IsZero())
                {
#if (DEBUG)
                    ErrorEvent?.Invoke(null, "Can't call!");
#endif
                    return;
                }

                CallModule.linphone_call_ref(call);
                if (startRecordInstantly)
                {
                    GenericModules.linphone_call_start_recording(call);
                }
            }
        }
Ejemplo n.º 11
0
 public void SendMessage(string to, string message)
 {
     if (LinphoneCore.IsNonZero())
     {
         IntPtr chat_room    = ChatModule.linphone_core_get_chat_room_from_uri(LinphoneCore, to);
         IntPtr chat_message = ChatModule.linphone_chat_room_create_message(chat_room, message);
         ChatModule.linphone_chat_room_send_chat_message(chat_room, chat_message);
     }
 }
Ejemplo n.º 12
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);
            }
        }
Ejemplo n.º 13
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);
                }
            }
        }
Ejemplo n.º 14
0
        public void OnCallStateChanged(IntPtr lc, IntPtr call, LinphoneCallState callState, string message)
        {
            if (LinphoneCore.IsNonZero() && IsRunning)
            {
                var    newCallState = CallState.None;
                var    newCallType = CallType.None;
                string from, to, recordFile;

                from = to = recordFile = null;
                IntPtr callParams = CallModule.linphone_call_get_params(call);

                bool recordEnable = MarshalingExtensions.TryConvert(CallModule.linphone_call_params_get_record_file(callParams), out recordFile);

                newCallState = GetNewCallState(call, callState, ref newCallType, ref from, ref to, recordEnable);

                UpdateCallReferences(call, newCallState, newCallType, callState, from, to, recordFile);
            }
        }