Exemplo n.º 1
0
        /// <summary>
        /// Displays incoming call.
        /// </summary>
        /// <param name="call">The incoming call.</param>
        public void IncomingCall(PhoneCallInfo call)
        {
            if (call.Direction == CallDirection.Outgoing)
                return;

            if (InvokeRequired)
            {
                BeginInvoke((Action<MainForm, PhoneCallInfo>)((t, e1) => t.IncomingCall(e1)), this, call);
                return;
            }

            if (ActualIncomingCall != null)
            {
                softphoneEngine.RejectCall(call);
                ActualIncomingCall = null;
                ItsDisplay.Text = string.Empty;
            }

            ActualIncomingCall = call;
            ItsDisplay.Text = call.ToString();
            tbPhoneStatus.Text = "Incoming call!";

            string logMsg = string.Format("Incoming call from {0} [line: {1}]", call.Dial, call.PhoneLineInfo);
            LogEvent(logMsg);

            AddCallToHistory(call.PhoneLineInfo, call.Dial, call.Direction);

            SetGUIState(new IncommingCall(this));

            if (AutoAcceptCalls)
                currentState.PickUpPressed();
        }