Esempio n. 1
0
        private void Connection(object sender, EventArgsCall e)
        {
            Abonent outAbonent = sender as Abonent;

            if (outAbonent != null)
            {
                outAbonent.Port.State = PortState.Call;

                Abonent inAbonent = PublicAbonents().First(x => x.Port.PhoneNumber == e.InPhoneNumber);

                if (inAbonent != null)
                {
                    if (inAbonent.Port.State == PortState.Connected &&
                        inAbonent.Terminal.State == TerminalState.InitialState)
                    {
                        inAbonent.Port.State = PortState.Call;
                    }
                    else
                    {
                        throw new Exception("The subscriber is temporarily unavailable.");
                    }
                }
                Console.WriteLine("АТС:  Звонок начался.......");
            }
        }
Esempio n. 2
0
        public void TakeIncomingCall(object sender, EventArgsCall e)
        {
            var param = interaction.AnswerChoice(e.Number, e.TargetNumber, RespondState.State);

            if (param == RespondState.Accept)
            {
                AnswerCall(e.Number, RespondState.Accept);
            }
            else if (param == RespondState.Decline)
            {
                EndCall(e.TargetNumber, RespondState.Decline);
            }
        }
Esempio n. 3
0
        public void TakeIncomingCall(object sender, EventArgsCall e)
        {
            var param = _help.GetAnswer(e.TelephoneNumber, e.TargetTelephoneNumber);

            if (param == "Answer")
            {
                AnswerToCall(e.TelephoneNumber, CallState.Answered /*, e.Id*/);
            }
            else if (param == "Reject")
            {
                EndCall();
            }
        }
Esempio n. 4
0
        private void Call(object sender, EventArgsCall e)
        {
            Abonent outAbonent = sender as Abonent;

            if (outAbonent != null)
            {
                var inAbonent = _abonents.First(x => x.Port.PhoneNumber == e.InPhoneNumber) as Abonent;

                if (inAbonent != null)
                {
                    inAbonent.Terminal.State = TerminalState.CallState;
                    Console.WriteLine("АТС:  Звонок.......");
                }
            }
        }
Esempio n. 5
0
        private void RegistrationCall(object sender, EventArgsCall e)
        {
            var      abonent = sender as Abonent;
            CallInfo call;

            var outAbonent = _abonents.First(x => x.Port.PhoneNumber == e.OutPhoneNumber);
            var inAbonent  = _abonents.First(x => x.Port.PhoneNumber == e.InPhoneNumber);

            if (outAbonent != null && inAbonent != null)
            {
                call          = new CallInfo(e.StartCall, e.EndCall, e.InPhoneNumber, e.OutPhoneNumber);
                call.CostCall = call.Duration * outAbonent.TariffPlan.OutCallCostMinute;

                this.AddCallInfo(call);

                Console.WriteLine("АТС:  Звонок успешно зарегистрирован");

                outAbonent.Port.State     = PortState.Connected;
                outAbonent.Terminal.State = TerminalState.InitialState;

                inAbonent.Terminal.State = TerminalState.CallState;
                inAbonent.Port.State     = PortState.Connected;
            }
        }
Esempio n. 6
0
 public void Calling(object sender, EventArgsCall e)
 {
     CallEvent?.Invoke(this, new EventArgsCall(e.Number, e.TargetNumber));
 }