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("АТС: Звонок начался......."); } }
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); } }
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(); } }
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("АТС: Звонок......."); } } }
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; } }
public void Calling(object sender, EventArgsCall e) { CallEvent?.Invoke(this, new EventArgsCall(e.Number, e.TargetNumber)); }