mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-16 21:24:54 +00:00
Updated VideoCodecBase.cs and ZoomRooms.cs to resolve an issue with dialing the currently scheduled meetings.
VideoCodecBase.cs changes: 1. Moved the trilist.SetSigFalseActions for DialMeeting 1-3 from the UpdateMeetinsgList mehtod to the LinkVideoCodecScheduleToApi method. - This was necessary to resolve an issue with dialing current meetings. - When the SetSigFalseActions where located in the UpdateMeetingsList, they were using the codec.CodecSchedule.Meetings to dial, which was not updated based on the time of day. 2. Turned the local var currentMeetings into a private list, _currentMeetings, that can be updated by UpdateMeetingsList and then used in LinkVideoCodecScheduleToApi when the trilist actions are executed. 3. Added debug statements to help narrow down the issue and verify the data. ZoomRoom.cs changes: 1. Added debug statement to Dial(Meeting meeting) method to confirm the data passed from LinkVideoCodecScheduleToApi was matching the _currentMeetings list data.
This commit is contained in:
@@ -596,6 +596,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
trilist.SetBoolSigAction(joinMap.SourceShareAutoStart.JoinNumber, (b) => AutoShareContentWhileInCall = b);
|
trilist.SetBoolSigAction(joinMap.SourceShareAutoStart.JoinNumber, (b) => AutoShareContentWhileInCall = b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO [ ] 2021-01-06, jkd: Added to debug OBTP dialing issues
|
||||||
|
private List<Meeting> _currentMeetings = new List<Meeting>();
|
||||||
|
|
||||||
private void LinkVideoCodecScheduleToApi(IHasScheduleAwareness codec, BasicTriList trilist, VideoCodecControllerJoinMap joinMap)
|
private void LinkVideoCodecScheduleToApi(IHasScheduleAwareness codec, BasicTriList trilist, VideoCodecControllerJoinMap joinMap)
|
||||||
{
|
{
|
||||||
trilist.SetSigFalseAction(joinMap.UpdateMeetings.JoinNumber, codec.GetSchedule);
|
trilist.SetSigFalseAction(joinMap.UpdateMeetings.JoinNumber, codec.GetSchedule);
|
||||||
@@ -605,10 +608,39 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
codec.CodecSchedule.MeetingWarningMinutes = i;
|
codec.CodecSchedule.MeetingWarningMinutes = i;
|
||||||
});
|
});
|
||||||
|
|
||||||
codec.CodecSchedule.MeetingsListHasChanged += (sender, args) => UpdateMeetingsList(codec, trilist, joinMap);
|
// TODO [ ] 2021-01-06, jkd: Added to debug OBTP dialing issues
|
||||||
|
trilist.SetSigFalseAction(joinMap.DialMeeting1.JoinNumber, () =>
|
||||||
|
{
|
||||||
|
var mtg = 1;
|
||||||
|
var index = mtg - 1;
|
||||||
|
Debug.Console(1, this, "Meeting {0} Selected (EISC dig-o{1}) > _currentMeetings[{2}].Id: {3}, Title: {4}",
|
||||||
|
mtg, joinMap.DialMeeting1.JoinNumber, index, _currentMeetings[index].Id, _currentMeetings[index].Title);
|
||||||
|
if (_currentMeetings[index] != null)
|
||||||
|
Dial(_currentMeetings[index]);
|
||||||
|
});
|
||||||
|
// TODO [ ] 2021-01-06, jkd: Added to debug OBTP dialing issues
|
||||||
|
trilist.SetSigFalseAction(joinMap.DialMeeting2.JoinNumber, () =>
|
||||||
|
{
|
||||||
|
var mtg = 2;
|
||||||
|
var index = mtg - 1;
|
||||||
|
Debug.Console(1, this, "Meeting {0} Selected (EISC dig-o{1}) > _currentMeetings[{2}].Id: {3}, Title: {4}",
|
||||||
|
mtg, joinMap.DialMeeting2.JoinNumber, index, _currentMeetings[index].Id, _currentMeetings[index].Title);
|
||||||
|
if (_currentMeetings[index] != null)
|
||||||
|
Dial(_currentMeetings[index]);
|
||||||
|
});
|
||||||
|
// TODO [ ] 2021-01-06, jkd: Added to debug OBTP dialing issues
|
||||||
|
trilist.SetSigFalseAction(joinMap.DialMeeting3.JoinNumber, () =>
|
||||||
|
{
|
||||||
|
var mtg = 3;
|
||||||
|
var index = mtg - 1;
|
||||||
|
Debug.Console(1, this, "Meeting {0} Selected (EISC dig-o{1}) > _currentMeetings[{2}].Id: {3}, Title: {4}",
|
||||||
|
mtg, joinMap.DialMeeting3.JoinNumber, index, _currentMeetings[index].Id, _currentMeetings[index].Title);
|
||||||
|
if (_currentMeetings[index] != null)
|
||||||
|
Dial(_currentMeetings[index]);
|
||||||
|
});
|
||||||
|
|
||||||
codec.CodecSchedule.MeetingEventChange +=
|
codec.CodecSchedule.MeetingsListHasChanged += (sender, args) => UpdateMeetingsList(codec, trilist, joinMap);
|
||||||
(sender, args) =>
|
codec.CodecSchedule.MeetingEventChange += (sender, args) =>
|
||||||
{
|
{
|
||||||
if (args.ChangeType == eMeetingEventChangeType.MeetingStartWarning)
|
if (args.ChangeType == eMeetingEventChangeType.MeetingStartWarning)
|
||||||
{
|
{
|
||||||
@@ -620,30 +652,18 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
private void UpdateMeetingsList(IHasScheduleAwareness codec, BasicTriList trilist, VideoCodecControllerJoinMap joinMap)
|
private void UpdateMeetingsList(IHasScheduleAwareness codec, BasicTriList trilist, VideoCodecControllerJoinMap joinMap)
|
||||||
{
|
{
|
||||||
var currentTime = DateTime.Now;
|
var currentTime = DateTime.Now;
|
||||||
var currentMeetings =
|
|
||||||
codec.CodecSchedule.Meetings.Where(m => m.StartTime >= currentTime || m.EndTime >= currentTime).ToList();
|
|
||||||
|
|
||||||
var meetingsData = UpdateMeetingsListXSig(currentMeetings);
|
// TODO [ ] 2021-01-06, jkd: Added to debug OBTP dialing issues
|
||||||
|
// - changed var currentMeetings >> field _currentMeetings
|
||||||
|
//_currentMeetings.Clear();
|
||||||
|
_currentMeetings = codec.CodecSchedule.Meetings.Where(m => m.StartTime >= currentTime || m.EndTime >= currentTime).ToList();
|
||||||
|
|
||||||
|
// TODO [ ] 2021-01-06, jkd: Added to debug OBTP dialing issues
|
||||||
|
// - moved the trilist.SetSigFlaseAction(joinMap.DialMeeting1..3.JoinNumber) lambda's to LinkVideoCodecScheduleToApi
|
||||||
|
|
||||||
|
var meetingsData = UpdateMeetingsListXSig(_currentMeetings);
|
||||||
trilist.SetString(joinMap.Schedule.JoinNumber, meetingsData);
|
trilist.SetString(joinMap.Schedule.JoinNumber, meetingsData);
|
||||||
|
trilist.SetUshort(joinMap.MeetingCount.JoinNumber, (ushort)_currentMeetings.Count);
|
||||||
trilist.SetSigFalseAction(joinMap.DialMeeting1.JoinNumber, () =>
|
|
||||||
{
|
|
||||||
if(codec.CodecSchedule.Meetings[0] != null)
|
|
||||||
Dial(codec.CodecSchedule.Meetings[0]);
|
|
||||||
});
|
|
||||||
trilist.SetSigFalseAction(joinMap.DialMeeting2.JoinNumber, () =>
|
|
||||||
{
|
|
||||||
if (codec.CodecSchedule.Meetings[1] != null)
|
|
||||||
Dial(codec.CodecSchedule.Meetings[1]);
|
|
||||||
});
|
|
||||||
trilist.SetSigFalseAction(joinMap.DialMeeting3.JoinNumber, () =>
|
|
||||||
{
|
|
||||||
if (codec.CodecSchedule.Meetings[2] != null)
|
|
||||||
Dial(codec.CodecSchedule.Meetings[2]);
|
|
||||||
});
|
|
||||||
|
|
||||||
trilist.SetUshort(joinMap.MeetingCount.JoinNumber, (ushort)currentMeetings.Count);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private string UpdateMeetingsListXSig(List<Meeting> meetings)
|
private string UpdateMeetingsListXSig(List<Meeting> meetings)
|
||||||
@@ -669,6 +689,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
* Start Time - 4
|
* Start Time - 4
|
||||||
* End Date - 5
|
* End Date - 5
|
||||||
* End Time - 6
|
* End Time - 6
|
||||||
|
* Id - 7
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@@ -681,7 +702,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
if (meetingIndex >= maxMeetings * offset)
|
if (meetingIndex >= maxMeetings * offset)
|
||||||
{
|
{
|
||||||
Debug.Console(2, this, "Max Meetings reached");
|
Debug.Console(2, this, "Max Meetings reached");
|
||||||
break;}
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
//digitals
|
//digitals
|
||||||
tokenArray[digitalIndex] = new XSigDigitalToken(digitalIndex + 1, meeting.Joinable);
|
tokenArray[digitalIndex] = new XSigDigitalToken(digitalIndex + 1, meeting.Joinable);
|
||||||
|
|||||||
@@ -1655,6 +1655,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
|
|
||||||
public override void Dial(Meeting meeting)
|
public override void Dial(Meeting meeting)
|
||||||
{
|
{
|
||||||
|
Debug.Console(1, this,"Dialing meeting.Id: {0} Title: {1}", meeting.Id, meeting.Title);
|
||||||
SendText(string.Format("zCommand Dial Start meetingNumber: {0}", meeting.Id));
|
SendText(string.Format("zCommand Dial Start meetingNumber: {0}", meeting.Id));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user