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:
jkdevito
2021-01-06 16:22:54 -06:00
parent 522c107ce6
commit 72197e547f
2 changed files with 1276 additions and 1253 deletions

View File

@@ -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);

View File

@@ -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));
} }