mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-16 05:05:00 +00:00
fix(essentials): Updates Status.Call subscription mechanism to persist properly
Makes sure all subscriptions are un and resubscribed whenever Status.Call is constructed
This commit is contained in:
@@ -42,9 +42,11 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
|||||||
public Boolean WaitingForHost { get; private set; }
|
public Boolean WaitingForHost { get; private set; }
|
||||||
[JsonProperty("isLocked", NullValueHandling = NullValueHandling.Ignore)]
|
[JsonProperty("isLocked", NullValueHandling = NullValueHandling.Ignore)]
|
||||||
public Boolean IsLocked { get; private set; }
|
public Boolean IsLocked { get; private set; }
|
||||||
|
[JsonProperty("isBeingRecorded", NullValueHandling = NullValueHandling.Ignore)]
|
||||||
|
public Boolean IsBeingRecorded { get; private set; }
|
||||||
|
|
||||||
|
|
||||||
public MeetingInfo(string id, string name, string host, string password, string shareStatus, bool isHost, bool isSharingMeeting, bool waitingForHost, bool isLocked)
|
public MeetingInfo(string id, string name, string host, string password, string shareStatus, bool isHost, bool isSharingMeeting, bool waitingForHost, bool isLocked, bool isBeingRecorded)
|
||||||
{
|
{
|
||||||
Id = id;
|
Id = id;
|
||||||
Name = name;
|
Name = name;
|
||||||
@@ -55,6 +57,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
|||||||
IsSharingMeeting = isSharingMeeting;
|
IsSharingMeeting = isSharingMeeting;
|
||||||
WaitingForHost = waitingForHost;
|
WaitingForHost = waitingForHost;
|
||||||
IsLocked = isLocked;
|
IsLocked = isLocked;
|
||||||
|
IsBeingRecorded = isBeingRecorded;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -15,4 +15,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
|||||||
void StopRecording();
|
void StopRecording();
|
||||||
void ToggleRecording();
|
void ToggleRecording();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface IHasMeetingRecordingWithPrompt : IHasMeetingRecording
|
||||||
|
{
|
||||||
|
BoolFeedback RecordConsentPromptIsVisible { get; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -31,10 +31,15 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
protected void NotifyPropertyChanged(string propertyName)
|
protected void NotifyPropertyChanged(string propertyName)
|
||||||
{
|
{
|
||||||
if (PropertyChanged != null)
|
var handler = PropertyChanged;
|
||||||
{
|
if (handler != null)
|
||||||
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
|
{
|
||||||
}
|
handler(this, new PropertyChangedEventArgs(propertyName));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Debug.Console(2, "PropertyChanged event is NULL");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@@ -778,13 +783,20 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
}
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
|
//Debug.Console(2, "************************************setting value of meetingIsBeingRecorded to: {0}", value);
|
||||||
if (value != _meetingIsBeingRecorded)
|
if (value != _meetingIsBeingRecorded)
|
||||||
{
|
{
|
||||||
_meetingIsBeingRecorded = value;
|
_meetingIsBeingRecorded = value;
|
||||||
|
//Debug.Console(2, "********************************set value of meetingIsBeingRecorded to: {0}", _meetingIsBeingRecorded);
|
||||||
NotifyPropertyChanged("meetingIsBeingRecorded");
|
NotifyPropertyChanged("meetingIsBeingRecorded");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public CallRecordInfo()
|
||||||
|
{
|
||||||
|
Debug.Console(2, Debug.ErrorLogLevel.Notice, "********************************************* CallRecordInfo() ******************************************");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
IHasScheduleAwareness, IHasCodecCameras, IHasParticipants, IHasCameraOff, IHasCameraMuteWithUnmuteReqeust, IHasCameraAutoMode,
|
IHasScheduleAwareness, IHasCodecCameras, IHasParticipants, IHasCameraOff, IHasCameraMuteWithUnmuteReqeust, IHasCameraAutoMode,
|
||||||
IHasFarEndContentStatus, IHasSelfviewPosition, IHasPhoneDialing, IHasZoomRoomLayouts, IHasParticipantPinUnpin,
|
IHasFarEndContentStatus, IHasSelfviewPosition, IHasPhoneDialing, IHasZoomRoomLayouts, IHasParticipantPinUnpin,
|
||||||
IHasParticipantAudioMute, IHasSelfviewSize, IPasswordPrompt, IHasStartMeeting, IHasMeetingInfo, IHasPresentationOnlyMeeting,
|
IHasParticipantAudioMute, IHasSelfviewSize, IPasswordPrompt, IHasStartMeeting, IHasMeetingInfo, IHasPresentationOnlyMeeting,
|
||||||
IHasMeetingLock, IHasMeetingRecording
|
IHasMeetingLock, IHasMeetingRecordingWithPrompt
|
||||||
{
|
{
|
||||||
public event EventHandler VideoUnmuteRequested;
|
public event EventHandler VideoUnmuteRequested;
|
||||||
|
|
||||||
@@ -175,6 +175,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
MeetingIsRecordingFeedback = new BoolFeedback(() => Status.Call.CallRecordInfo.meetingIsBeingRecorded );
|
MeetingIsRecordingFeedback = new BoolFeedback(() => Status.Call.CallRecordInfo.meetingIsBeingRecorded );
|
||||||
|
|
||||||
|
RecordConsentPromptIsVisible = new BoolFeedback(() => _recordConsentPromptIsVisible);
|
||||||
|
|
||||||
SetUpRouting();
|
SetUpRouting();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -499,20 +501,66 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
SetIsReady();
|
SetIsReady();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Handles subscriptions to Status.Call and sub objects. Needs to be called whenever Status.Call is constructed
|
||||||
|
/// </summary>
|
||||||
private void SetUpCallFeedbackActions()
|
private void SetUpCallFeedbackActions()
|
||||||
{
|
{
|
||||||
Status.Call.Sharing.PropertyChanged += HandleSharingStateUpdate;
|
Status.Call.Sharing.PropertyChanged -= HandleSharingStateUpdate;
|
||||||
|
Status.Call.Sharing.PropertyChanged += HandleSharingStateUpdate;
|
||||||
|
|
||||||
Status.Call.PropertyChanged += (o, a) =>
|
Status.Call.PropertyChanged -= HandleCallStateUpdate;
|
||||||
{
|
Status.Call.PropertyChanged += HandleCallStateUpdate;
|
||||||
if (a.PropertyName == "Info")
|
|
||||||
{
|
Status.Call.CallRecordInfo.PropertyChanged -= HandleCallRecordInfoStateUpdate;
|
||||||
Debug.Console(1, this, "Updating Call Status");
|
Status.Call.CallRecordInfo.PropertyChanged += HandleCallRecordInfoStateUpdate;
|
||||||
UpdateCallStatus();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void HandleCallRecordInfoStateUpdate(object sender, PropertyChangedEventArgs a)
|
||||||
|
{
|
||||||
|
//Debug.Console(2, this, "**************** Status.Call.CallRecordInfo.PropertyChanged. PropertyName: {0} *********************************", a.PropertyName);
|
||||||
|
if (a.PropertyName == "meetingIsBeingRecorded")
|
||||||
|
{
|
||||||
|
//Debug.Console(2, this, "**************** Meeting Recording Info Updated. Recording: {0} **********************************", Status.Call.CallRecordInfo.meetingIsBeingRecorded);
|
||||||
|
MeetingIsRecordingFeedback.FireUpdate();
|
||||||
|
|
||||||
|
var meetingInfo = new MeetingInfo(MeetingInfo.Id,
|
||||||
|
MeetingInfo.Name,
|
||||||
|
MeetingInfo.Host,
|
||||||
|
MeetingInfo.Password,
|
||||||
|
GetSharingStatus(),
|
||||||
|
GetIsHostMyself(),
|
||||||
|
MeetingInfo.IsSharingMeeting,
|
||||||
|
MeetingInfo.WaitingForHost,
|
||||||
|
MeetingIsLockedFeedback.BoolValue,
|
||||||
|
MeetingIsRecordingFeedback.BoolValue);
|
||||||
|
MeetingInfo = meetingInfo;
|
||||||
|
}
|
||||||
|
//else
|
||||||
|
//{
|
||||||
|
// Debug.Console(2, this, "**************** Meeting Recording Info Updated. PropertyName: {0} *********************************", a.PropertyName);
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void HandleCallStateUpdate(object sender, PropertyChangedEventArgs a)
|
||||||
|
{
|
||||||
|
switch (a.PropertyName)
|
||||||
|
{
|
||||||
|
case "Info":
|
||||||
|
{
|
||||||
|
Debug.Console(1, this, "Updating Call Status");
|
||||||
|
UpdateCallStatus();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
case "Status":
|
||||||
|
{
|
||||||
|
UpdateCallStatus();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void HandleSharingStateUpdate(object sender, PropertyChangedEventArgs a)
|
private void HandleSharingStateUpdate(object sender, PropertyChangedEventArgs a)
|
||||||
{
|
{
|
||||||
if (a.PropertyName != "State")
|
if (a.PropertyName != "State")
|
||||||
@@ -530,19 +578,19 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
{
|
{
|
||||||
var sharingStatus = GetSharingStatus();
|
var sharingStatus = GetSharingStatus();
|
||||||
|
|
||||||
MeetingInfo = new MeetingInfo("", "", "", "", sharingStatus, GetIsHostMyself(), true, false, MeetingIsLockedFeedback.BoolValue);
|
MeetingInfo = new MeetingInfo("", "", "", "", sharingStatus, GetIsHostMyself(), true, false, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var meetingInfo = new MeetingInfo(MeetingInfo.Id, MeetingInfo.Name, Participants.Host != null ? Participants.Host.Name : "None",
|
var meetingInfo = new MeetingInfo(MeetingInfo.Id, MeetingInfo.Name, Participants.Host != null ? Participants.Host.Name : "None",
|
||||||
MeetingInfo.Password, GetSharingStatus(), GetIsHostMyself(), MeetingInfo.IsSharingMeeting, MeetingInfo.WaitingForHost, MeetingIsLockedFeedback.BoolValue);
|
MeetingInfo.Password, GetSharingStatus(), GetIsHostMyself(), MeetingInfo.IsSharingMeeting, MeetingInfo.WaitingForHost, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue);
|
||||||
MeetingInfo = meetingInfo;
|
MeetingInfo = meetingInfo;
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
Debug.Console(1, this, "Error processing state property update. {0}", e.Message);
|
Debug.Console(1, this, "Error processing state property update. {0}", e.Message);
|
||||||
Debug.Console(2, this, e.StackTrace);
|
Debug.Console(2, this, e.StackTrace);
|
||||||
MeetingInfo = new MeetingInfo("", "", "", "", "None", false, false, false, MeetingIsLockedFeedback.BoolValue);
|
MeetingInfo = new MeetingInfo("", "", "", "", "None", false, false, false, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -551,6 +599,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void SetUpFeedbackActions()
|
private void SetUpFeedbackActions()
|
||||||
{
|
{
|
||||||
|
// Set these up initially.
|
||||||
|
SetUpCallFeedbackActions();
|
||||||
|
|
||||||
Configuration.Audio.Output.PropertyChanged += (o, a) =>
|
Configuration.Audio.Output.PropertyChanged += (o, a) =>
|
||||||
{
|
{
|
||||||
if (a.PropertyName == "Volume")
|
if (a.PropertyName == "Volume")
|
||||||
@@ -645,7 +696,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
MeetingInfo.IsHost,
|
MeetingInfo.IsHost,
|
||||||
MeetingInfo.IsSharingMeeting,
|
MeetingInfo.IsSharingMeeting,
|
||||||
MeetingInfo.WaitingForHost,
|
MeetingInfo.WaitingForHost,
|
||||||
MeetingIsLockedFeedback.BoolValue
|
MeetingIsLockedFeedback.BoolValue,
|
||||||
|
MeetingIsRecordingFeedback.BoolValue
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -678,41 +730,6 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Status.Call.Sharing.PropertyChanged += (o, a) =>
|
|
||||||
{
|
|
||||||
if (a.PropertyName == "State")
|
|
||||||
{
|
|
||||||
SharingContentIsOnFeedback.FireUpdate();
|
|
||||||
ReceivingContent.FireUpdate();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Status.Call.PropertyChanged += (o, a) =>
|
|
||||||
{
|
|
||||||
switch(a.PropertyName)
|
|
||||||
{
|
|
||||||
case "Info":
|
|
||||||
{
|
|
||||||
Debug.Console(1, this, "Updating Call Status");
|
|
||||||
UpdateCallStatus();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case "Status":
|
|
||||||
{
|
|
||||||
UpdateCallStatus();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Status.Call.CallRecordInfo.PropertyChanged += (o, a) =>
|
|
||||||
{
|
|
||||||
if (a.PropertyName == "meetingIsBeingRecorded")
|
|
||||||
{
|
|
||||||
MeetingIsRecordingFeedback.FireUpdate();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
Status.Sharing.PropertyChanged += (o, a) =>
|
Status.Sharing.PropertyChanged += (o, a) =>
|
||||||
{
|
{
|
||||||
@@ -744,7 +761,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
GetIsHostMyself(),
|
GetIsHostMyself(),
|
||||||
MeetingInfo.IsSharingMeeting,
|
MeetingInfo.IsSharingMeeting,
|
||||||
MeetingInfo.WaitingForHost,
|
MeetingInfo.WaitingForHost,
|
||||||
MeetingIsLockedFeedback.BoolValue);
|
MeetingIsLockedFeedback.BoolValue,
|
||||||
|
MeetingIsRecordingFeedback.BoolValue);
|
||||||
MeetingInfo = meetingInfo;
|
MeetingInfo = meetingInfo;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1441,7 +1459,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
GetIsHostMyself(),
|
GetIsHostMyself(),
|
||||||
MeetingInfo.IsSharingMeeting,
|
MeetingInfo.IsSharingMeeting,
|
||||||
MeetingInfo.WaitingForHost,
|
MeetingInfo.WaitingForHost,
|
||||||
MeetingIsLockedFeedback.BoolValue);
|
MeetingIsLockedFeedback.BoolValue,
|
||||||
|
MeetingIsRecordingFeedback.BoolValue);
|
||||||
MeetingInfo = meetingInfo;
|
MeetingInfo = meetingInfo;
|
||||||
|
|
||||||
PrintCurrentCallParticipants();
|
PrintCurrentCallParticipants();
|
||||||
@@ -1656,14 +1675,14 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
if (MeetingInfo == null)
|
if (MeetingInfo == null)
|
||||||
{
|
{
|
||||||
MeetingInfo = new MeetingInfo("Waiting For Host", "Waiting For Host", "Waiting For Host", "",
|
MeetingInfo = new MeetingInfo("Waiting For Host", "Waiting For Host", "Waiting For Host", "",
|
||||||
GetSharingStatus(), false, false, true, MeetingIsLockedFeedback.BoolValue);
|
GetSharingStatus(), false, false, true, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue);
|
||||||
|
|
||||||
UpdateCallStatus();
|
UpdateCallStatus();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
MeetingInfo = new MeetingInfo("Waiting For Host", "Waiting For Host", "Waiting For Host", "",
|
MeetingInfo = new MeetingInfo("Waiting For Host", "Waiting For Host", "Waiting For Host", "",
|
||||||
GetSharingStatus(), false, false, true, MeetingIsLockedFeedback.BoolValue);
|
GetSharingStatus(), false, false, true, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue);
|
||||||
|
|
||||||
UpdateCallStatus();
|
UpdateCallStatus();
|
||||||
|
|
||||||
@@ -1673,12 +1692,12 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
if (MeetingInfo == null)
|
if (MeetingInfo == null)
|
||||||
{
|
{
|
||||||
MeetingInfo = new MeetingInfo("Waiting For Host", "Waiting For Host", "Waiting For Host", "",
|
MeetingInfo = new MeetingInfo("Waiting For Host", "Waiting For Host", "Waiting For Host", "",
|
||||||
GetSharingStatus(), false, false, false, MeetingIsLockedFeedback.BoolValue);
|
GetSharingStatus(), false, false, false, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
MeetingInfo = new MeetingInfo(MeetingInfo.Id, MeetingInfo.Name, MeetingInfo.Host, MeetingInfo.Password,
|
MeetingInfo = new MeetingInfo(MeetingInfo.Id, MeetingInfo.Name, MeetingInfo.Host, MeetingInfo.Password,
|
||||||
GetSharingStatus(), GetIsHostMyself(), false, false, MeetingIsLockedFeedback.BoolValue);
|
GetSharingStatus(), GetIsHostMyself(), false, false, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1687,12 +1706,18 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
// TODO: notify user that host has disabled unmuting video
|
// TODO: notify user that host has disabled unmuting video
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "updatedcallrecordinfo":
|
case "updatecallrecordinfo":
|
||||||
{
|
{
|
||||||
JsonConvert.PopulateObject(responseObj.ToString(), Status.Call.CallRecordInfo);
|
JsonConvert.PopulateObject(responseObj.ToString(), Status.Call.CallRecordInfo);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case "recordingconsent":
|
||||||
|
{
|
||||||
|
_recordConsentPromptIsVisible = responseObj["isShow"].Value<bool>();
|
||||||
|
RecordConsentPromptIsVisible.FireUpdate();
|
||||||
|
break;
|
||||||
|
}
|
||||||
case "phonecallstatus":
|
case "phonecallstatus":
|
||||||
{
|
{
|
||||||
JsonConvert.PopulateObject(responseObj.ToString(), Status.PhoneCall);
|
JsonConvert.PopulateObject(responseObj.ToString(), Status.PhoneCall);
|
||||||
@@ -1762,7 +1787,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
if (result.Success)
|
if (result.Success)
|
||||||
{
|
{
|
||||||
MeetingInfo = new MeetingInfo("", "", "", "", "", true, true, MeetingInfo.WaitingForHost, MeetingIsLockedFeedback.BoolValue);
|
MeetingInfo = new MeetingInfo("", "", "", "", "", true, true, MeetingInfo.WaitingForHost, MeetingIsLockedFeedback.BoolValue, MeetingIsRecordingFeedback.BoolValue);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1963,12 +1988,11 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
// If not crrently in a meeting, intialize the call object
|
// If not crrently in a meeting, intialize the call object
|
||||||
if (callStatus != zStatus.eCallStatus.IN_MEETING && callStatus != zStatus.eCallStatus.CONNECTING_MEETING)
|
if (callStatus != zStatus.eCallStatus.IN_MEETING && callStatus != zStatus.eCallStatus.CONNECTING_MEETING)
|
||||||
{
|
{
|
||||||
//Debug.Console(1, this, "[UpdateCallStatus] Creating new Status.Call object");
|
|
||||||
Status.Call = new zStatus.Call {Status = callStatus};
|
Status.Call = new zStatus.Call {Status = callStatus};
|
||||||
|
// Resubscribe to all property change events after Status.Call is reconstructed
|
||||||
|
SetUpCallFeedbackActions();
|
||||||
|
|
||||||
OnCallStatusChange(new CodecActiveCallItem() {Status = eCodecCallStatus.Disconnected});
|
OnCallStatusChange(new CodecActiveCallItem() {Status = eCodecCallStatus.Disconnected});
|
||||||
|
|
||||||
SetUpCallFeedbackActions();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ActiveCalls.Count == 0)
|
if (ActiveCalls.Count == 0)
|
||||||
@@ -2108,7 +2132,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
GetIsHostMyself(),
|
GetIsHostMyself(),
|
||||||
!String.Equals(Status.Call.Info.meeting_type,"NORMAL"),
|
!String.Equals(Status.Call.Info.meeting_type,"NORMAL"),
|
||||||
false,
|
false,
|
||||||
MeetingIsLockedFeedback.BoolValue
|
MeetingIsLockedFeedback.BoolValue,
|
||||||
|
MeetingIsRecordingFeedback.BoolValue
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
// TODO [ ] Issue #868
|
// TODO [ ] Issue #868
|
||||||
@@ -2123,6 +2148,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
|
false,
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -3415,6 +3441,10 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
public BoolFeedback MeetingIsRecordingFeedback { get; private set; }
|
public BoolFeedback MeetingIsRecordingFeedback { get; private set; }
|
||||||
|
|
||||||
|
bool _recordConsentPromptIsVisible;
|
||||||
|
|
||||||
|
public BoolFeedback RecordConsentPromptIsVisible { get; private set; }
|
||||||
|
|
||||||
public void StartRecording()
|
public void StartRecording()
|
||||||
{
|
{
|
||||||
SendText(string.Format("Command Call Record Enable: on"));
|
SendText(string.Format("Command Call Record Enable: on"));
|
||||||
|
|||||||
Reference in New Issue
Block a user