diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/Interfaces/IHasStartMeeting.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/Interfaces/IHasStartMeeting.cs
new file mode 100644
index 00000000..a01ec099
--- /dev/null
+++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/Interfaces/IHasStartMeeting.cs
@@ -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
+{
+ ///
+ /// Describes the ability to start an ad-hoc meeting
+ ///
+ public interface IHasStartMeeting
+ {
+ ///
+ /// The default meeting duration in minutes
+ ///
+ uint DefaultMeetingDurationMin { get; }
+
+ ///
+ /// Start an ad-hoc meeting for the specified duration
+ ///
+ ///
+ void StartMeeting(uint duration);
+ }
+}
\ No newline at end of file
diff --git a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs
index 9bcdd44b..4712f12d 100644
--- a/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs
+++ b/essentials-framework/Essentials Devices Common/Essentials Devices Common/VideoCodec/ZoomRoom/ZoomRoom.cs
@@ -25,10 +25,11 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
IRouting,
IHasScheduleAwareness, IHasCodecCameras, IHasParticipants, IHasCameraOff, IHasCameraMute, IHasCameraAutoMode,
IHasFarEndContentStatus, IHasSelfviewPosition, IHasPhoneDialing, IHasZoomRoomLayouts, IHasParticipantPinUnpin,
- IHasParticipantAudioMute, IHasSelfviewSize, IPasswordPrompt
+ IHasParticipantAudioMute, IHasSelfviewSize, IPasswordPrompt, IHasStartMeeting
{
private const long MeetingRefreshTimer = 60000;
- private const uint DefaultMeetingDurationMin = 30;
+ public uint DefaultMeetingDurationMin { get; private set; }
+
private const string Delimiter = "\x0D\x0A";
private readonly GenericQueue _receiveQueue;
@@ -52,6 +53,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
public ZoomRoom(DeviceConfig config, IBasicCommunication comm)
: base(config)
{
+ DefaultMeetingDurationMin = 30;
+
_props = JsonConvert.DeserializeObject(config.Properties.ToString());
_receiveQueue = new GenericQueue(Key + "-rxQueue", Thread.eThreadPriority.MediumPriority, 512);
@@ -2095,6 +2098,21 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.ZoomRoom
}
}
+
+ ///
+ /// Starts a PMI Meeting for the specified duration (or default meeting duration if 0 is specified)
+ ///
+ /// duration of meeting
+ 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)
{
SendText("zCommand Call Disconnect");