public void Show(Call call)
 {
     if (_call != null)
     {
         return;
     }
     _call = call;
     base.Show();
 }
        protected override void WillHide()
        {
            base.WillHide();
            _buttons.ButtonEvent -= ButtonsOnButtonEvent;
            if (_call == null)
            {
                return;
            }

            if (_timer != null)
            {
                _timer.Stop();
                _timerLabel.Clear();
            }
            _list[2].Hide();
            _list[3].Hide();

            _call.Codec.Calls.CallStatusChange               -= CallsOnCallStatusChange;
            _call.Codec.Audio.Microphones.MuteChange         -= _list[1].SetFeedback;
            _call.Codec.Conference.Presentation.StatusChange -= PresentationOnStatusChange;
            _call = null;
        }
        private void CallsOnCallStatusChange(CiscoTelePresenceCodec codec, CallStatusEventType eventType, Call call)
        {
            if (call != _call)
            {
                return;
            }

            if (eventType == CallStatusEventType.Ended)
            {
                if (_timer != null)
                {
                    _timer.Stop();
                    _timerLabel.Clear();
                }
                Parent.ResetView();
                return;
            }

            if (eventType == CallStatusEventType.StatusUpdated && call.Connected)
            {
                _list[2].Show();
                _list[3].Show();
                StartCallTimer();
            }

            UpdateStatusText(call.Status);
            _nameLabel.SetText(call.DisplayName);
            _list[3].SetFeedback(call.OnHold);
        }