Example #1
0
 /// <summary>
 /// Handler for codec changes
 /// </summary>
 void codec_CallStatusChange(object sender, CodecCallStatusItemChangeEventArgs e)
 {
     SendVtcFullMessageObject();
 }
Example #2
0
        /// <summary>
        /// Handles status changes for calls
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Codec_CallStatusChange(object sender, CodecCallStatusItemChangeEventArgs e)
        {
            var call = e.CallItem;

            switch (e.CallItem.Status)
            {
            case eCodecCallStatus.Connected:
                // fire at SRL item
                KeypadMode = eKeypadMode.DTMF;
                DialStringBuilder.Remove(0, DialStringBuilder.Length);
                DialStringFeedback.FireUpdate();
                DialStringTextCheckEnables();
                Parent.ShowNotificationRibbon("Connected", 2000);
                StagingButtonsFeedbackInterlock.ShowInterlocked(UIBoolJoin.VCStagingKeypadPress);
                ShowKeypad();
                ((Parent.CurrentRoom as IHasCurrentVolumeControls).CurrentVolumeControls as IBasicVolumeWithFeedback).MuteOff();
                //VCControlsInterlock.ShowInterlocked(UIBoolJoin.VCKeypadVisible);
                break;

            case eCodecCallStatus.Connecting:
                // fire at SRL item
                Parent.ShowNotificationRibbon("Connecting", 0);
                break;

            case eCodecCallStatus.Dialing:
                Parent.ShowNotificationRibbon("Connecting", 0);
                break;

            case eCodecCallStatus.Disconnected:
                if (IncomingCallModal != null)
                {
                    IncomingCallModal.HideDialog();
                }
                if (!Codec.IsInCall)
                {
                    KeypadMode = eKeypadMode.Dial;
                    // show keypad if we're in call UI mode
                    ShowKeypad();
                    DialStringBuilder.Remove(0, DialStringBuilder.Length);
                    DialStringFeedback.FireUpdate();
                    Parent.ShowNotificationRibbon("Disconnected", 2000);
                }
                break;

            case eCodecCallStatus.Disconnecting:
                break;

            case eCodecCallStatus.EarlyMedia:
                break;

            case eCodecCallStatus.Idle:
                break;

            case eCodecCallStatus.OnHold:
                break;

            case eCodecCallStatus.Preserved:
                break;

            case eCodecCallStatus.RemotePreserved:
                break;

            case eCodecCallStatus.Ringing:
            {
                // fire up a modal
                if (!Codec.CodecInfo.AutoAnswerEnabled && call.Direction == eCodecCallDirection.Incoming)
                {
                    ShowIncomingModal(call);
                }
                break;
            }

            default:
                break;
            }
            TriList.UShortInput[UIUshortJoin.VCStagingConnectButtonMode].UShortValue = (ushort)(Codec.IsInCall ? 1 : 0);

            uint stageJoin;

            if (Codec.IsInCall)
            {
                stageJoin = UIBoolJoin.VCStagingActivePopoverVisible;
            }
            else
            {
                stageJoin = UIBoolJoin.VCStagingInactivePopoverVisible;
            }
            if (IsVisible)
            {
                StagingBarsInterlock.ShowInterlocked(stageJoin);
            }
            else
            {
                StagingBarsInterlock.SetButDontShow(stageJoin);
            }

            HeaderDriver.ComputeHeaderCallStatus(Codec);

            // Update active call list
            UpdateHeaderActiveCallList();
        }