mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-16 13:15:03 +00:00
feat(essentials): #801 Adds IHasStartMeeting interface and implments on ZoomRoom
This commit is contained in:
@@ -0,0 +1,25 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using Crestron.SimplSharp;
|
||||||
|
|
||||||
|
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Describes the ability to start an ad-hoc meeting
|
||||||
|
/// </summary>
|
||||||
|
public interface IHasStartMeeting
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The default meeting duration in minutes
|
||||||
|
/// </summary>
|
||||||
|
uint DefaultMeetingDurationMin { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Start an ad-hoc meeting for the specified duration
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="duration"></param>
|
||||||
|
void StartMeeting(uint duration);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -25,10 +25,11 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
IRouting,
|
IRouting,
|
||||||
IHasScheduleAwareness, IHasCodecCameras, IHasParticipants, IHasCameraOff, IHasCameraMute, IHasCameraAutoMode,
|
IHasScheduleAwareness, IHasCodecCameras, IHasParticipants, IHasCameraOff, IHasCameraMute, IHasCameraAutoMode,
|
||||||
IHasFarEndContentStatus, IHasSelfviewPosition, IHasPhoneDialing, IHasZoomRoomLayouts, IHasParticipantPinUnpin,
|
IHasFarEndContentStatus, IHasSelfviewPosition, IHasPhoneDialing, IHasZoomRoomLayouts, IHasParticipantPinUnpin,
|
||||||
IHasParticipantAudioMute, IHasSelfviewSize, IPasswordPrompt
|
IHasParticipantAudioMute, IHasSelfviewSize, IPasswordPrompt, IHasStartMeeting
|
||||||
{
|
{
|
||||||
private const long MeetingRefreshTimer = 60000;
|
private const long MeetingRefreshTimer = 60000;
|
||||||
private const uint DefaultMeetingDurationMin = 30;
|
public uint DefaultMeetingDurationMin { get; private set; }
|
||||||
|
|
||||||
private const string Delimiter = "\x0D\x0A";
|
private const string Delimiter = "\x0D\x0A";
|
||||||
|
|
||||||
private readonly GenericQueue _receiveQueue;
|
private readonly GenericQueue _receiveQueue;
|
||||||
@@ -52,6 +53,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
public ZoomRoom(DeviceConfig config, IBasicCommunication comm)
|
public ZoomRoom(DeviceConfig config, IBasicCommunication comm)
|
||||||
: base(config)
|
: base(config)
|
||||||
{
|
{
|
||||||
|
DefaultMeetingDurationMin = 30;
|
||||||
|
|
||||||
_props = JsonConvert.DeserializeObject<ZoomRoomPropertiesConfig>(config.Properties.ToString());
|
_props = JsonConvert.DeserializeObject<ZoomRoomPropertiesConfig>(config.Properties.ToString());
|
||||||
|
|
||||||
_receiveQueue = new GenericQueue(Key + "-rxQueue", Thread.eThreadPriority.MediumPriority, 512);
|
_receiveQueue = new GenericQueue(Key + "-rxQueue", Thread.eThreadPriority.MediumPriority, 512);
|
||||||
@@ -2095,6 +2098,21 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Starts a PMI Meeting for the specified duration (or default meeting duration if 0 is specified)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="duration">duration of meeting</param>
|
||||||
|
public void StartMeeting(uint duration)
|
||||||
|
{
|
||||||
|
uint dur = DefaultMeetingDurationMin;
|
||||||
|
|
||||||
|
if (duration > 0)
|
||||||
|
dur = duration;
|
||||||
|
|
||||||
|
SendText(string.Format("zCommand Dial StartPmi Duration: {0}", dur);
|
||||||
|
}
|
||||||
|
|
||||||
public override void EndCall(CodecActiveCallItem call)
|
public override void EndCall(CodecActiveCallItem call)
|
||||||
{
|
{
|
||||||
SendText("zCommand Call Disconnect");
|
SendText("zCommand Call Disconnect");
|
||||||
|
|||||||
Reference in New Issue
Block a user