/// <summary> /// Handler for codec changes /// </summary> void codec_CallStatusChange(object sender, CodecCallStatusItemChangeEventArgs e) { SendVtcFullMessageObject(); }
/// <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(); }