コード例 #1
0
        void CallManager_OnCallRemoved(ICall call, CallRemoveReason reason)
        {
            if (InvokeRequired)
            {
                BeginInvoke(new CallRemovedDelegate(CallManager_OnCallRemoved), call, reason);

                return;
            }

            if (reason == CallRemoveReason.InvalidData)
            {
                TimeredBaloon.Show(txtNumber, CaptionStrings.CaptionStrings.ErrorWrongNumberTitle, CaptionStrings.CaptionStrings.ErrorWrongNumberDescription, ToolTipIcon.Error, 4000);
            }
            else if (reason == CallRemoveReason.Busy)
            {
                TimeredBaloon.Show(txtNumber, CaptionStrings.CaptionStrings.ErrorBusyTitle, CaptionStrings.CaptionStrings.ErrorBusyDescription, ToolTipIcon.Info, 4000);
            }
            else if ((reason == CallRemoveReason.RemoteHangup || reason == CallRemoveReason.UserHangup || reason == CallRemoveReason.Transfer) && call != null && call.LastState == CallState.ACTIVE)
            {
                var currentLineWrapper = GetActiveUILineWrapper();

                // Normal call stop. Try to activate another call.
                if (currentLineWrapper?.Call == null)
                {
                    ActivateNextLineWrapper();
                }
            }

            UpdateAccountStateUi(Core);
        }
コード例 #2
0
ファイル: AutoAnswerService.cs プロジェクト: modernstar/core
        void CallManager_OnCallRemoved(ICall call, CallRemoveReason reason)
        {
            if (call != _callToPickup)
            {
                return;
            }

            _callToPickup = null;
        }
コード例 #3
0
        private void OnCallStateRemoved(ICall call, CallRemoveReason reason)
        {
            if (InvokeRequired)
            {
                Invoke(new Action <ICall, CallRemoveReason>(OnCallStateRemoved), call, reason); return;
            }

            RefreshStatus();
        }
コード例 #4
0
ファイル: CallEntry.cs プロジェクト: modernstar/core
 public CallEntry(ICall call, CallRemoveReason reason)
 {
     Name       = call.Name;
     Number     = call.Number;
     CallDate   = DateTime.Now - call.Duration;
     Duration   = call.Duration;
     IsIncoming = call.IsIncoming;
     DropReason = reason;
     IsAnswered = call.LastState == CallState.ACTIVE || call.LastState == CallState.HOLDING;
 }
コード例 #5
0
ファイル: CallManager.cs プロジェクト: modernstar/core
        private void RemoveCallInternal(Call call, CallRemoveReason reason)
        {
            lock (_calls)
            {
                _isConferenceActive = _calls.Count(x => x.IsInConference) > 1;
                _calls.Remove(call);
            }

            call.IsDisposed = true;
            call.RaiseRemoved(reason);

            SafeRaiseEvent(OnCallRemoved, call, reason);
        }
コード例 #6
0
ファイル: CallManager.cs プロジェクト: modernstar/core
        private void SafeRaiseEvent(CallRemovedDelegate del, Call call, CallRemoveReason reason)
        {
            if (del == null)
            {
                return;
            }

            var invocationList = del.GetInvocationList();

            foreach (var current in invocationList)
            {
                ((CallRemovedDelegate)current).BeginInvoke(call, reason, _raiseCallRemovedEventCallback, current);
            }
        }
コード例 #7
0
ファイル: Call.cs プロジェクト: modernstar/core
        private void SafeRaiseEvent(Action <CallRemoveReason> del, CallRemoveReason reason)
        {
            if (del == null)
            {
                return;
            }

            var invocationList = del.GetInvocationList();

            foreach (var current in invocationList)
            {
                ((Action <CallRemoveReason>)current).BeginInvoke(reason, _callRemovedAsyncCallback, current);
            }
        }
コード例 #8
0
        private void CallManager_OnCallRemoved(ICall call, CallRemoveReason reason)
        {
            if (call.LastState == CallState.IDLE)
            {
                return;
            }

            if (reason != CallRemoveReason.NULL || (reason == CallRemoveReason.NULL && call.LastUserAction == CallAction.NULL))
            {
                var callEntry = new CallEntry(call, reason);
                _calls.Add(callEntry);

                CallEntryAdded?.Invoke(callEntry);
            }
        }
コード例 #9
0
        void _call_OnRemoved(CallRemoveReason reason)
        {
            if (InvokeRequired)
            {
                BeginInvoke(new Action <CallRemoveReason>(_call_OnRemoved), reason);

                return;
            }

            if (Handle == IntPtr.Zero)
            {
                _call = null;
            }
            else
            {
                Close();
            }
        }
コード例 #10
0
        void Call_OnRemoved(CallRemoveReason reason)
        {
            if (ControlButton.InvokeRequired)
            {
                ControlButton.BeginInvoke(_callOnRemoved, reason);

                return;
            }

            if (Active && Call != null && Call.Number == _controlCallerNumber.Text)
            {
                _controlCallerNumber.Text = "";
            }

            Call = null;

            RefreshBackUI();
        }
コード例 #11
0
 void CallManager_OnCallRemoved(ICall call, CallRemoveReason reason)
 {
     CurrentCalls.Remove(call);
 }
コード例 #12
0
 private void OnCallRemoved(ICall call, CallRemoveReason reason)
 {
     OnCallStateChanged(call);
 }
コード例 #13
0
ファイル: Call.cs プロジェクト: modernstar/core
 /// <summary>
 /// Raise OnRemoved event
 /// </summary>
 /// <param name="reason">Remove reason</param>
 public void RaiseRemoved(CallRemoveReason reason)
 {
     SafeRaiseEvent(OnRemoved, reason);
 }