diff --git a/Essentials Core/PepperDashEssentialsBase/Constants/CommonCues.cs b/Essentials Core/PepperDashEssentialsBase/Constants/CommonCues.cs
index 2df7e390..fd8465b4 100644
--- a/Essentials Core/PepperDashEssentialsBase/Constants/CommonCues.cs
+++ b/Essentials Core/PepperDashEssentialsBase/Constants/CommonCues.cs
@@ -1,128 +1,127 @@
-using Crestron.SimplSharpPro;
-
-namespace PepperDash.Essentials.Core
-{
- public static class CommonBoolCue
- {
- public static readonly Cue Power = new Cue("Power", 101, eCueType.Bool);
- public static readonly Cue PowerOn = new Cue("PowerOn", 102, eCueType.Bool);
- public static readonly Cue PowerOff = new Cue("PowerOff", 103, eCueType.Bool);
-
- public static readonly Cue HasPowerFeedback = new Cue("HasPowerFeedback", 101, eCueType.Bool);
- public static readonly Cue PowerOnFeedback = new Cue("PowerOnFeedback", 102, eCueType.Bool);
- public static readonly Cue IsOnlineFeedback = new Cue("IsOnlineFeedback", 104, eCueType.Bool);
- public static readonly Cue IsWarmingUp = new Cue("IsWarmingUp", 105, eCueType.Bool);
- public static readonly Cue IsCoolingDown = new Cue("IsCoolingDown", 106, eCueType.Bool);
-
- public static readonly Cue Dash = new Cue("Dash", 109, eCueType.Bool);
- public static readonly Cue Digit0 = new Cue("Digit0", 110, eCueType.Bool);
- public static readonly Cue Digit1 = new Cue("Digit1", 111, eCueType.Bool);
- public static readonly Cue Digit2 = new Cue("Digit2", 112, eCueType.Bool);
- public static readonly Cue Digit3 = new Cue("Digit3", 113, eCueType.Bool);
- public static readonly Cue Digit4 = new Cue("Digit4", 114, eCueType.Bool);
- public static readonly Cue Digit5 = new Cue("Digit5", 115, eCueType.Bool);
- public static readonly Cue Digit6 = new Cue("Digit6", 116, eCueType.Bool);
- public static readonly Cue Digit7 = new Cue("Digit7", 117, eCueType.Bool);
- public static readonly Cue Digit8 = new Cue("Digit8", 118, eCueType.Bool);
- public static readonly Cue Digit9 = new Cue("Digit9", 119, eCueType.Bool);
- public static readonly Cue KeypadMisc1 = new Cue("KeypadMisc1", 120, eCueType.Bool);
- public static readonly Cue KeypadMisc2 = new Cue("KeypadMisc2", 121, eCueType.Bool);
-
- public static readonly Cue NumericEnter = new Cue("Enter", 122, eCueType.Bool);
- public static readonly Cue ChannelUp = new Cue("ChannelUp", 123, eCueType.Bool);
- public static readonly Cue ChannelDown = new Cue("ChannelDown", 124, eCueType.Bool);
- public static readonly Cue Last = new Cue("Last", 125, eCueType.Bool);
- public static readonly Cue OpenClose = new Cue("OpenClose", 126, eCueType.Bool);
- public static readonly Cue Subtitle = new Cue("Subtitle", 127, eCueType.Bool);
- public static readonly Cue Audio = new Cue("Audio", 128, eCueType.Bool);
- public static readonly Cue Info = new Cue("Info", 129, eCueType.Bool);
- public static readonly Cue Menu = new Cue("Menu", 130, eCueType.Bool);
- public static readonly Cue DeviceMenu = new Cue("DeviceMenu", 131, eCueType.Bool);
- public static readonly Cue Return = new Cue("Return", 132, eCueType.Bool);
- public static readonly Cue Back = new Cue("Back", 133, eCueType.Bool);
- public static readonly Cue Exit = new Cue("Exit", 134, eCueType.Bool);
- public static readonly Cue Clear = new Cue("Clear", 135, eCueType.Bool);
- public static readonly Cue List = new Cue("List", 136, eCueType.Bool);
- public static readonly Cue Guide = new Cue("Guide", 137, eCueType.Bool);
- public static readonly Cue Am = new Cue("Am", 136, eCueType.Bool);
- public static readonly Cue Fm = new Cue("Fm", 137, eCueType.Bool);
- public static readonly Cue Up = new Cue("Up", 138, eCueType.Bool);
- public static readonly Cue Down = new Cue("Down", 139, eCueType.Bool);
- public static readonly Cue Left = new Cue("Left", 140, eCueType.Bool);
- public static readonly Cue Right = new Cue("Right", 141, eCueType.Bool);
- public static readonly Cue Select = new Cue("Select", 142, eCueType.Bool);
- public static readonly Cue SmartApps = new Cue("SmartApps", 143, eCueType.Bool);
- public static readonly Cue Dvr = new Cue("Dvr", 144, eCueType.Bool);
-
-
- public static readonly Cue Play = new Cue("Play", 145, eCueType.Bool);
- public static readonly Cue Pause = new Cue("Pause", 146, eCueType.Bool);
- public static readonly Cue Stop = new Cue("Stop", 147, eCueType.Bool);
- public static readonly Cue ChapNext = new Cue("ChapNext", 148, eCueType.Bool);
- public static readonly Cue ChapPrevious = new Cue("ChapPrevious", 149, eCueType.Bool);
- public static readonly Cue Rewind = new Cue("Rewind", 150, eCueType.Bool);
- public static readonly Cue Ffwd = new Cue("Ffwd", 151, eCueType.Bool);
- public static readonly Cue Replay = new Cue("Replay", 152, eCueType.Bool);
- public static readonly Cue Advance = new Cue("Advance", 153, eCueType.Bool);
- public static readonly Cue Record = new Cue("Record", 154, eCueType.Bool);
- public static readonly Cue Red = new Cue("Red", 155, eCueType.Bool);
- public static readonly Cue Green = new Cue("Green", 156, eCueType.Bool);
- public static readonly Cue Yellow = new Cue("Yellow", 157, eCueType.Bool);
- public static readonly Cue Blue = new Cue("Blue", 158, eCueType.Bool);
- public static readonly Cue Home = new Cue("Home", 159, eCueType.Bool);
- public static readonly Cue PopUp = new Cue("PopUp", 160, eCueType.Bool);
- public static readonly Cue PageUp = new Cue("PageUp", 161, eCueType.Bool);
- public static readonly Cue PageDown = new Cue("PageDown", 162, eCueType.Bool);
- public static readonly Cue Search = new Cue("Search", 163, eCueType.Bool);
- public static readonly Cue Setup = new Cue("Setup", 164, eCueType.Bool);
- public static readonly Cue RStep = new Cue("RStep", 165, eCueType.Bool);
- public static readonly Cue FStep = new Cue("FStep", 166, eCueType.Bool);
-
- public static readonly Cue IsConnected = new Cue("IsConnected", 281, eCueType.Bool);
- public static readonly Cue IsOk = new Cue("IsOk", 282, eCueType.Bool);
- public static readonly Cue InWarning = new Cue("InWarning", 283, eCueType.Bool);
- public static readonly Cue InError = new Cue("InError", 284, eCueType.Bool);
- public static readonly Cue StatusUnknown = new Cue("StatusUnknown", 285, eCueType.Bool);
-
- public static readonly Cue VolumeUp = new Cue("VolumeUp", 401, eCueType.Bool);
- public static readonly Cue VolumeDown = new Cue("VolumeDown", 402, eCueType.Bool);
- public static readonly Cue MuteOn = new Cue("MuteOn", 403, eCueType.Bool);
- public static readonly Cue MuteOff = new Cue("MuteOff", 404, eCueType.Bool);
- public static readonly Cue MuteToggle = new Cue("MuteToggle", 405, eCueType.Bool);
- public static readonly Cue ShowVolumeButtons = new Cue("ShowVolumeButtons", 406, eCueType.Bool);
- public static readonly Cue ShowVolumeSlider = new Cue("ShowVolumeSlider", 407, eCueType.Bool);
-
- public static readonly Cue Hdmi1 = new Cue("Hdmi1", 451, eCueType.Bool);
- public static readonly Cue Hdmi2 = new Cue("Hdmi2", 452, eCueType.Bool);
- public static readonly Cue Hdmi3 = new Cue("Hdmi3", 453, eCueType.Bool);
- public static readonly Cue Hdmi4 = new Cue("Hdmi4", 454, eCueType.Bool);
- public static readonly Cue Hdmi5 = new Cue("Hdmi5", 455, eCueType.Bool);
- public static readonly Cue Hdmi6 = new Cue("Hdmi6", 456, eCueType.Bool);
- public static readonly Cue DisplayPort1 = new Cue("DisplayPort1", 457, eCueType.Bool);
- public static readonly Cue DisplayPort2 = new Cue("DisplayPort2", 458, eCueType.Bool);
- public static readonly Cue Dvi1 = new Cue("Dvi1", 459, eCueType.Bool);
- public static readonly Cue Dvi2 = new Cue("Dvi2", 460, eCueType.Bool);
- public static readonly Cue Video1 = new Cue("Video1", 461, eCueType.Bool);
- public static readonly Cue Video2 = new Cue("Video2", 462, eCueType.Bool);
- public static readonly Cue Component1 = new Cue("Component1", 463, eCueType.Bool);
- public static readonly Cue Component2 = new Cue("Component2", 464, eCueType.Bool);
- public static readonly Cue Vga1 = new Cue("Vga1", 465, eCueType.Bool);
- public static readonly Cue Vga2 = new Cue("Vga2", 466, eCueType.Bool);
- public static readonly Cue Rgb1 = new Cue("Rgb1", 467, eCueType.Bool);
- public static readonly Cue Rgb2 = new Cue("Rgb2", 468, eCueType.Bool);
- public static readonly Cue Antenna = new Cue("Antenna", 469, eCueType.Bool);
-
-
- }
-
- public static class CommonIntCue
- {
- public static readonly Cue MainVolumeLevel = new Cue("MainVolumeLevel", 401, eCueType.Int);
- public static readonly Cue MainVolumeLevelFeedback = new Cue("MainVolumeLevelFeedback", 401, eCueType.Int);
- }
-
- public static class CommonStringCue
- {
- public static readonly Cue IpConnectionsText = new Cue("IpConnectionsText", 9999, eCueType.String);
- }
+using Crestron.SimplSharpPro;
+
+namespace PepperDash.Essentials.Core
+{
+ public static class CommonBoolCue
+ {
+ public static readonly Cue Power = new Cue("Power", 101, eCueType.Bool);
+ public static readonly Cue PowerOn = new Cue("PowerOn", 102, eCueType.Bool);
+ public static readonly Cue PowerOff = new Cue("PowerOff", 103, eCueType.Bool);
+
+ public static readonly Cue HasPowerFeedback = new Cue("HasPowerFeedback", 101, eCueType.Bool);
+ public static readonly Cue PowerOnFeedback = new Cue("PowerOnFeedback", 102, eCueType.Bool);
+ public static readonly Cue IsOnlineFeedback = new Cue("IsOnlineFeedback", 104, eCueType.Bool);
+ public static readonly Cue IsWarmingUp = new Cue("IsWarmingUp", 105, eCueType.Bool);
+ public static readonly Cue IsCoolingDown = new Cue("IsCoolingDown", 106, eCueType.Bool);
+
+ public static readonly Cue Dash = new Cue("Dash", 109, eCueType.Bool);
+ public static readonly Cue Digit0 = new Cue("Digit0", 110, eCueType.Bool);
+ public static readonly Cue Digit1 = new Cue("Digit1", 111, eCueType.Bool);
+ public static readonly Cue Digit2 = new Cue("Digit2", 112, eCueType.Bool);
+ public static readonly Cue Digit3 = new Cue("Digit3", 113, eCueType.Bool);
+ public static readonly Cue Digit4 = new Cue("Digit4", 114, eCueType.Bool);
+ public static readonly Cue Digit5 = new Cue("Digit5", 115, eCueType.Bool);
+ public static readonly Cue Digit6 = new Cue("Digit6", 116, eCueType.Bool);
+ public static readonly Cue Digit7 = new Cue("Digit7", 117, eCueType.Bool);
+ public static readonly Cue Digit8 = new Cue("Digit8", 118, eCueType.Bool);
+ public static readonly Cue Digit9 = new Cue("Digit9", 119, eCueType.Bool);
+ public static readonly Cue KeypadMisc1 = new Cue("KeypadMisc1", 120, eCueType.Bool);
+ public static readonly Cue KeypadMisc2 = new Cue("KeypadMisc2", 121, eCueType.Bool);
+
+ public static readonly Cue NumericEnter = new Cue("Enter", 122, eCueType.Bool);
+ public static readonly Cue ChannelUp = new Cue("ChannelUp", 123, eCueType.Bool);
+ public static readonly Cue ChannelDown = new Cue("ChannelDown", 124, eCueType.Bool);
+ public static readonly Cue Last = new Cue("Last", 125, eCueType.Bool);
+ public static readonly Cue OpenClose = new Cue("OpenClose", 126, eCueType.Bool);
+ public static readonly Cue Subtitle = new Cue("Subtitle", 127, eCueType.Bool);
+ public static readonly Cue Audio = new Cue("Audio", 128, eCueType.Bool);
+ public static readonly Cue Info = new Cue("Info", 129, eCueType.Bool);
+ public static readonly Cue Menu = new Cue("Menu", 130, eCueType.Bool);
+ public static readonly Cue DeviceMenu = new Cue("DeviceMenu", 131, eCueType.Bool);
+ public static readonly Cue Return = new Cue("Return", 132, eCueType.Bool);
+ public static readonly Cue Back = new Cue("Back", 133, eCueType.Bool);
+ public static readonly Cue Exit = new Cue("Exit", 134, eCueType.Bool);
+ public static readonly Cue Clear = new Cue("Clear", 135, eCueType.Bool);
+ public static readonly Cue List = new Cue("List", 136, eCueType.Bool);
+ public static readonly Cue Guide = new Cue("Guide", 137, eCueType.Bool);
+ public static readonly Cue Am = new Cue("Am", 136, eCueType.Bool);
+ public static readonly Cue Fm = new Cue("Fm", 137, eCueType.Bool);
+ public static readonly Cue Up = new Cue("Up", 138, eCueType.Bool);
+ public static readonly Cue Down = new Cue("Down", 139, eCueType.Bool);
+ public static readonly Cue Left = new Cue("Left", 140, eCueType.Bool);
+ public static readonly Cue Right = new Cue("Right", 141, eCueType.Bool);
+ public static readonly Cue Select = new Cue("Select", 142, eCueType.Bool);
+ public static readonly Cue SmartApps = new Cue("SmartApps", 143, eCueType.Bool);
+ public static readonly Cue Dvr = new Cue("Dvr", 144, eCueType.Bool);
+
+ public static readonly Cue Play = new Cue("Play", 145, eCueType.Bool);
+ public static readonly Cue Pause = new Cue("Pause", 146, eCueType.Bool);
+ public static readonly Cue Stop = new Cue("Stop", 147, eCueType.Bool);
+ public static readonly Cue ChapNext = new Cue("ChapNext", 148, eCueType.Bool);
+ public static readonly Cue ChapPrevious = new Cue("ChapPrevious", 149, eCueType.Bool);
+ public static readonly Cue Rewind = new Cue("Rewind", 150, eCueType.Bool);
+ public static readonly Cue Ffwd = new Cue("Ffwd", 151, eCueType.Bool);
+ public static readonly Cue Replay = new Cue("Replay", 152, eCueType.Bool);
+ public static readonly Cue Advance = new Cue("Advance", 153, eCueType.Bool);
+ public static readonly Cue Record = new Cue("Record", 154, eCueType.Bool);
+ public static readonly Cue Red = new Cue("Red", 155, eCueType.Bool);
+ public static readonly Cue Green = new Cue("Green", 156, eCueType.Bool);
+ public static readonly Cue Yellow = new Cue("Yellow", 157, eCueType.Bool);
+ public static readonly Cue Blue = new Cue("Blue", 158, eCueType.Bool);
+ public static readonly Cue Home = new Cue("Home", 159, eCueType.Bool);
+ public static readonly Cue PopUp = new Cue("PopUp", 160, eCueType.Bool);
+ public static readonly Cue PageUp = new Cue("PageUp", 161, eCueType.Bool);
+ public static readonly Cue PageDown = new Cue("PageDown", 162, eCueType.Bool);
+ public static readonly Cue Search = new Cue("Search", 163, eCueType.Bool);
+ public static readonly Cue Setup = new Cue("Setup", 164, eCueType.Bool);
+ public static readonly Cue RStep = new Cue("RStep", 165, eCueType.Bool);
+ public static readonly Cue FStep = new Cue("FStep", 166, eCueType.Bool);
+
+ public static readonly Cue IsConnected = new Cue("IsConnected", 281, eCueType.Bool);
+ public static readonly Cue IsOk = new Cue("IsOk", 282, eCueType.Bool);
+ public static readonly Cue InWarning = new Cue("InWarning", 283, eCueType.Bool);
+ public static readonly Cue InError = new Cue("InError", 284, eCueType.Bool);
+ public static readonly Cue StatusUnknown = new Cue("StatusUnknown", 285, eCueType.Bool);
+
+ public static readonly Cue VolumeUp = new Cue("VolumeUp", 401, eCueType.Bool);
+ public static readonly Cue VolumeDown = new Cue("VolumeDown", 402, eCueType.Bool);
+ public static readonly Cue MuteOn = new Cue("MuteOn", 403, eCueType.Bool);
+ public static readonly Cue MuteOff = new Cue("MuteOff", 404, eCueType.Bool);
+ public static readonly Cue MuteToggle = new Cue("MuteToggle", 405, eCueType.Bool);
+ public static readonly Cue ShowVolumeButtons = new Cue("ShowVolumeButtons", 406, eCueType.Bool);
+ public static readonly Cue ShowVolumeSlider = new Cue("ShowVolumeSlider", 407, eCueType.Bool);
+
+ public static readonly Cue Hdmi1 = new Cue("Hdmi1", 451, eCueType.Bool);
+ public static readonly Cue Hdmi2 = new Cue("Hdmi2", 452, eCueType.Bool);
+ public static readonly Cue Hdmi3 = new Cue("Hdmi3", 453, eCueType.Bool);
+ public static readonly Cue Hdmi4 = new Cue("Hdmi4", 454, eCueType.Bool);
+ public static readonly Cue Hdmi5 = new Cue("Hdmi5", 455, eCueType.Bool);
+ public static readonly Cue Hdmi6 = new Cue("Hdmi6", 456, eCueType.Bool);
+ public static readonly Cue DisplayPort1 = new Cue("DisplayPort1", 457, eCueType.Bool);
+ public static readonly Cue DisplayPort2 = new Cue("DisplayPort2", 458, eCueType.Bool);
+ public static readonly Cue Dvi1 = new Cue("Dvi1", 459, eCueType.Bool);
+ public static readonly Cue Dvi2 = new Cue("Dvi2", 460, eCueType.Bool);
+ public static readonly Cue Video1 = new Cue("Video1", 461, eCueType.Bool);
+ public static readonly Cue Video2 = new Cue("Video2", 462, eCueType.Bool);
+ public static readonly Cue Component1 = new Cue("Component1", 463, eCueType.Bool);
+ public static readonly Cue Component2 = new Cue("Component2", 464, eCueType.Bool);
+ public static readonly Cue Vga1 = new Cue("Vga1", 465, eCueType.Bool);
+ public static readonly Cue Vga2 = new Cue("Vga2", 466, eCueType.Bool);
+ public static readonly Cue Rgb1 = new Cue("Rgb1", 467, eCueType.Bool);
+ public static readonly Cue Rgb2 = new Cue("Rgb2", 468, eCueType.Bool);
+ public static readonly Cue Antenna = new Cue("Antenna", 469, eCueType.Bool);
+
+ public static readonly Cue InCall = new Cue("InCall", 501, eCueType.Bool);
+ }
+
+ public static class CommonIntCue
+ {
+ public static readonly Cue MainVolumeLevel = new Cue("MainVolumeLevel", 401, eCueType.Int);
+ public static readonly Cue MainVolumeLevelFeedback = new Cue("MainVolumeLevelFeedback", 401, eCueType.Int);
+ }
+
+ public static class CommonStringCue
+ {
+ public static readonly Cue IpConnectionsText = new Cue("IpConnectionsText", 9999, eCueType.String);
+ }
}
\ No newline at end of file
diff --git a/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IPower.cs b/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IPower.cs
index 863e138d..23b67bc1 100644
--- a/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IPower.cs
+++ b/Essentials Core/PepperDashEssentialsBase/DeviceTypeInterfaces/IPower.cs
@@ -45,24 +45,4 @@ namespace PepperDash.Essentials.Core
dev.PowerIsOnFeedback.UnlinkInputSig(triList.BooleanInput[101]);
}
}
-/*
- public static class IFusionPowerExtensions
- {
- public static void LinkAttributes(this IPower dev, FusionRoom room)
- {
- dev.PowerIsOnFeedback.LinkInputSig(room.DisplayPowerOn.InputSig);
-
- room.DisplayPowerOn.OutputSig.SetSigFalseAction(dev.PowerOn);
- room.DisplayPowerOff.OutputSig.SetSigFalseAction(dev.PowerOff);
- }
-
- public static void UnlinkAttributes(this IPower dev, FusionRoom room)
- {
- dev.PowerIsOnFeedback.UnlinkInputSig(room.DisplayPowerOn.InputSig);
-
- room.DisplayPowerOn.OutputSig.SetSigFalseAction(null);
- room.DisplayPowerOff.OutputSig.SetSigFalseAction(null);
- }
- }
-*/
}
\ No newline at end of file
diff --git a/Essentials Core/PepperDashEssentialsBase/Devices/IHasDialer.cs b/Essentials Core/PepperDashEssentialsBase/Devices/IHasDialer.cs
new file mode 100644
index 00000000..c4682abd
--- /dev/null
+++ b/Essentials Core/PepperDashEssentialsBase/Devices/IHasDialer.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+
+namespace PepperDash.Essentials.Core
+{
+ ///
+ /// Requirements for a device that has dialing capabilities
+ ///
+ public interface IHasDialer
+ {
+ // Add requirements for Dialer functionality
+
+ void Dial(string number);
+ void EndCall();
+ void AcceptCall();
+ void RejectCall();
+
+ BoolFeedback InCallFeedback { get; }
+ BoolFeedback IncomingCallFeedback { get; }
+
+ }
+}
\ No newline at end of file
diff --git a/Essentials Core/PepperDashEssentialsBase/Devices/IHasSharing.cs b/Essentials Core/PepperDashEssentialsBase/Devices/IHasSharing.cs
new file mode 100644
index 00000000..317a188a
--- /dev/null
+++ b/Essentials Core/PepperDashEssentialsBase/Devices/IHasSharing.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+
+namespace PepperDash.Essentials.Core
+{
+ ///
+ /// Indicates that the device has the capability to share sources outside the local room
+ ///
+ public interface IHasSharing
+ {
+
+ BoolFeedback SharingSourceFeedback { get; }
+ }
+}
\ No newline at end of file
diff --git a/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs b/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs
index 02786ba7..9990b2ed 100644
--- a/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs
+++ b/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs
@@ -1,98 +1,127 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Crestron.SimplSharp;
-
-namespace PepperDash.Essentials.Core
-{
- ///
- /// Defines minimal volume control methods
- ///
- public interface IBasicVolumeControls
- {
- void VolumeUp(bool pressRelease);
- void VolumeDown(bool pressRelease);
- void MuteToggle();
- }
-
- ///
- /// Adds feedback and direct volume level set to IBasicVolumeControls
- ///
- public interface IBasicVolumeWithFeedback : IBasicVolumeControls
- {
- void SetVolume(ushort level);
- void MuteOn();
- void MuteOff();
- IntFeedback VolumeLevelFeedback { get; }
- BoolFeedback MuteFeedback { get; }
- }
-
-
- ///
- ///
- ///
- public interface IFullAudioSettings : IBasicVolumeWithFeedback
- {
- void SetBalance(ushort level);
- void BalanceLeft(bool pressRelease);
- void BalanceRight(bool pressRelease);
-
- void SetBass(ushort level);
- void BassUp(bool pressRelease);
- void BassDown(bool pressRelease);
-
- void SetTreble(ushort level);
- void TrebleUp(bool pressRelease);
- void TrebleDown(bool pressRelease);
-
- bool hasMaxVolume { get; }
- void SetMaxVolume(ushort level);
- void MaxVolumeUp(bool pressRelease);
- void MaxVolumeDown(bool pressRelease);
-
- bool hasDefaultVolume { get; }
- void SetDefaultVolume(ushort level);
- void DefaultVolumeUp(bool pressRelease);
- void DefaultVolumeDown(bool pressRelease);
-
- void LoudnessToggle();
- void MonoToggle();
-
- BoolFeedback LoudnessFeedback { get; }
- BoolFeedback MonoFeedback { get; }
- IntFeedback BalanceFeedback { get; }
- IntFeedback BassFeedback { get; }
- IntFeedback TrebleFeedback { get; }
- IntFeedback MaxVolumeFeedback { get; }
- IntFeedback DefaultVolumeFeedback { get; }
- }
-
-
-
- ///
- /// A class that implements this, contains a reference to an IBasicVolumeControls device.
- /// For example, speakers attached to an audio zone. The speakers can provide reference
- /// to their linked volume control.
- ///
- public interface IHasVolumeDevice
- {
- IBasicVolumeControls VolumeDevice { get; }
- }
-
- ///
- /// Identifies a device that contains audio zones
- ///
- public interface IAudioZones : IRouting
- {
- Dictionary Zone { get; }
- }
-
- ///
- /// Defines minimum functionality for an audio zone
- ///
- public interface IAudioZone : IBasicVolumeWithFeedback
- {
- void SelectInput(ushort input);
- }
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+
+namespace PepperDash.Essentials.Core
+{
+ ///
+ /// Defines minimal volume control methods
+ ///
+ public interface IBasicVolumeControls
+ {
+ void VolumeUp(bool pressRelease);
+ void VolumeDown(bool pressRelease);
+ void MuteToggle();
+ }
+
+ ///
+ /// Adds feedback and direct volume level set to IBasicVolumeControls
+ ///
+ public interface IBasicVolumeWithFeedback : IBasicVolumeControls
+ {
+ void SetVolume(ushort level);
+ void MuteOn();
+ void MuteOff();
+ IntFeedback VolumeLevelFeedback { get; }
+ BoolFeedback MuteFeedback { get; }
+ }
+
+
+ ///
+ ///
+ ///
+ public interface IFullAudioSettings : IBasicVolumeWithFeedback
+ {
+ void SetBalance(ushort level);
+ void BalanceLeft(bool pressRelease);
+ void BalanceRight(bool pressRelease);
+
+ void SetBass(ushort level);
+ void BassUp(bool pressRelease);
+ void BassDown(bool pressRelease);
+
+ void SetTreble(ushort level);
+ void TrebleUp(bool pressRelease);
+ void TrebleDown(bool pressRelease);
+
+ bool hasMaxVolume { get; }
+ void SetMaxVolume(ushort level);
+ void MaxVolumeUp(bool pressRelease);
+ void MaxVolumeDown(bool pressRelease);
+
+ bool hasDefaultVolume { get; }
+ void SetDefaultVolume(ushort level);
+ void DefaultVolumeUp(bool pressRelease);
+ void DefaultVolumeDown(bool pressRelease);
+
+ void LoudnessToggle();
+ void MonoToggle();
+
+ BoolFeedback LoudnessFeedback { get; }
+ BoolFeedback MonoFeedback { get; }
+ IntFeedback BalanceFeedback { get; }
+ IntFeedback BassFeedback { get; }
+ IntFeedback TrebleFeedback { get; }
+ IntFeedback MaxVolumeFeedback { get; }
+ IntFeedback DefaultVolumeFeedback { get; }
+ }
+
+ ///
+ /// Defines minimum volume controls for a codec device with dialing capabilities
+ ///
+ public interface ICodecAudio
+ {
+ // ICodecReceiveVolume
+ // Break this out into 3 interfaces
+ void SetReceiveVolume(ushort level);
+ void ReceiveMuteOn();
+ void ReceiveMuteOff();
+ void ReceiveMuteToggle();
+ IntFeedback ReceiveLevelFeedback { get; }
+ BoolFeedback ReceiveMuteIsOnFeedback { get; }
+
+ // ICodecTransmitVolume
+ void SetTransmitVolume(ushort level);
+ void TransmitMuteOn();
+ void TransmitMuteOff();
+ void TransmitMuteToggle();
+ IntFeedback TransmitLevelFeedback { get; }
+ BoolFeedback TransmitMuteIsOnFeedback { get; }
+
+ // ICodecPrivacy
+ void PrivacyModeOn();
+ void PrivacyModeOff();
+ void PrivacyModeToggle();
+ BoolFeedback PrivacyModeIsOnFeedback { get; }
+ }
+
+
+
+ ///
+ /// A class that implements this, contains a reference to an IBasicVolumeControls device.
+ /// For example, speakers attached to an audio zone. The speakers can provide reference
+ /// to their linked volume control.
+ ///
+ public interface IHasVolumeDevice
+ {
+ IBasicVolumeControls VolumeDevice { get; }
+ }
+
+ ///
+ /// Identifies a device that contains audio zones
+ ///
+ public interface IAudioZones : IRouting
+ {
+ Dictionary Zone { get; }
+ }
+
+ ///
+ /// Defines minimum functionality for an audio zone
+ ///
+ public interface IAudioZone : IBasicVolumeWithFeedback
+ {
+ void SelectInput(ushort input);
+ }
}
\ No newline at end of file
diff --git a/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.csproj b/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.csproj
index f963a171..e06834ec 100644
--- a/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.csproj
+++ b/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.csproj
@@ -103,6 +103,8 @@
+
+
diff --git a/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.csproj b/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.csproj
index ec400ffb..adf18e16 100644
--- a/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.csproj
+++ b/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.csproj
@@ -46,6 +46,14 @@
off
+
+ False
+ ..\..\..\Crestron Cisco OBTP\OBTP\bin\Cisco One Button To Push.dll
+
+
+ False
+ ..\..\..\CodeBlue\libraries\Cisco CODEC\Cisco SX80 Corporate Phone Book\Cisco SX80 Corporate Phone Book\bin\Cisco SX80 Corporate Phone Book.dll
+
False
..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.DeviceSupport.dll
@@ -119,6 +127,11 @@
+
+
+
+
+
diff --git a/Essentials Devices Common/Essentials Devices Common/VC/Cisco/CiscoCodec.cs b/Essentials Devices Common/Essentials Devices Common/VC/Cisco/CiscoCodec.cs
new file mode 100644
index 00000000..56397284
--- /dev/null
+++ b/Essentials Devices Common/Essentials Devices Common/VC/Cisco/CiscoCodec.cs
@@ -0,0 +1,388 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+using Crestron.SimplSharp.Net.Https;
+using Crestron.SimplSharp.CrestronXml;
+using Crestron.SimplSharp.CrestronXml.Serialization;
+using Newtonsoft.Json;
+using Cisco_One_Button_To_Push;
+using Cisco_SX80_Corporate_Phone_Book;
+
+using PepperDash.Core;
+using PepperDash.Essentials.Core;
+
+namespace PepperDash.Essentials.Devices.VideoCodec.Cisco
+{
+ enum eCommandType { SessionStart, SessionEnd, Command, GetStatus, GetConfiguration };
+
+ public class CiscoCodec : VideoCodecBase
+ {
+ public IBasicCommunication Communication { get; private set; }
+
+ public StatusMonitorBase CommunicationMonitor { get; private set; }
+
+ private CiscoOneButtonToPush CodecObtp;
+
+ private Corporate_Phone_Book PhoneBook;
+
+ private CiscoCodecConfiguration.Configuration CodecConfiguration;
+
+ private CiscoCodecStatus.Status CodecStatus;
+
+ private HttpsClient Client;
+
+ private HttpApiServer Server;
+
+ private int ServerPort;
+
+ private string CodecUrl;
+
+ private string HttpSessionId;
+
+ private string FeedbackRegistrationExpression;
+
+ // Constructor for IBasicCommunication
+ public CiscoCodec(string key, string name, IBasicCommunication comm, int serverPort)
+ : base(key, name)
+ {
+ Communication = comm;
+ Communication.TextReceived += new EventHandler(Communication_TextReceived);
+
+ ServerPort = serverPort;
+
+ CodecObtp = new CiscoOneButtonToPush();
+
+ PhoneBook = new Corporate_Phone_Book();
+
+ CodecConfiguration = new CiscoCodecConfiguration.Configuration();
+
+ CodecStatus = new CiscoCodecStatus.Status();
+
+ Client = new HttpsClient();
+
+ Server = new HttpApiServer();
+
+ }
+
+ ///
+ /// Starts the HTTP feedback server and syncronizes state of codec
+ ///
+ ///
+ public override bool CustomActivate()
+ {
+ Debug.Console(1, this, "Starting Cisco API Server");
+
+ Server.Start(ServerPort);
+
+ Server.ApiRequest += new EventHandler(Server_ApiRequest);
+
+ CodecUrl = string.Format("http://{0}", (Communication as GenericSshClient).Hostname);
+
+ CommunicationMonitor = new GenericCommunicationMonitor(this, Communication, 2000, 120000, 300000, "xStatus SystemUnit Software Version\r");
+ DeviceManager.AddDevice(CommunicationMonitor);
+
+ Client = new HttpsClient();
+
+ Client.Verbose = true;
+ Client.KeepAlive = true;
+
+
+ // Temp feedback registration
+
+ FeedbackRegistrationExpression =
+ "1" +
+ string.Format("http://{0}:{1}/cisco/api", CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_IP_ADDRESS, 0), ServerPort) +
+ "JSON" +
+ "/Configuration" +
+ "/Event/CallDisconnect" +
+ "/Status/Call" +
+ "" +
+ "" +
+ "";
+
+ StartHttpsSession();
+
+ //CodecObtp.Initialize();
+
+ //CodecObtp.GetMeetings();
+
+ //PhoneBook.DownloadPhoneBook(Corporate_Phone_Book.ePhoneBookLocation.Corporate);
+
+ return base.CustomActivate();
+ }
+
+ private void StartHttpsSession()
+ {
+ SendHttpCommand("", eCommandType.SessionStart);
+ }
+
+ private void EndHttpsSession()
+ {
+ SendHttpCommand("", eCommandType.SessionEnd);
+ }
+
+ private void SendHttpCommand(string command, eCommandType commandType)
+ {
+ HttpsClientRequest request = new HttpsClientRequest();
+
+ string urlSuffix = null;
+
+ Client.UserName = null;
+ Client.Password = null;
+
+ Client.PeerVerification = false;
+ Client.HostVerification = false;
+
+ request.RequestType = RequestType.Post;
+
+ if(!string.IsNullOrEmpty(HttpSessionId))
+ request.Header.SetHeaderValue("Cookie", HttpSessionId);
+
+ switch (commandType)
+ {
+ case eCommandType.Command:
+ {
+ urlSuffix = "/putxml";
+ request.ContentString = command;
+ request.Header.SetHeaderValue("Content-Type", "text/xml");
+ break;
+ }
+ case eCommandType.SessionStart:
+ {
+
+ urlSuffix = "/xmlapi/session/begin";
+
+ Client.UserName = (Communication as GenericSshClient).Username;
+ Client.Password = (Communication as GenericSshClient).Password;
+
+ break;
+ }
+ case eCommandType.SessionEnd:
+ {
+ urlSuffix = "/xmlapi/session/end";
+ request.Header.SetHeaderValue("Cookie", HttpSessionId);
+ break;
+ }
+ case eCommandType.GetStatus:
+ {
+ request.RequestType = RequestType.Get;
+ request.Header.SetHeaderValue("Content-Type", "text/xml");
+ urlSuffix = "/getxml?location=/Status";
+ break;
+ }
+ case eCommandType.GetConfiguration:
+ {
+ request.RequestType = RequestType.Get;
+ request.Header.SetHeaderValue("Content-Type", "text/xml");
+ urlSuffix = "/getxml?location=/Configuration";
+ break;
+ }
+ }
+
+ var requestUrl = CodecUrl + urlSuffix;
+ request.Header.RequestVersion = "HTTP/1.1";
+ request.Url.Parse(requestUrl);
+
+ Debug.Console(1, this, "Sending HTTP request to Cisco Codec at {0}\nHeader:\n{1}\nContent:\n{2}", requestUrl, request.Header, request.ContentString);
+
+ Client.DispatchAsync(request, PostConnectionCallback);
+ }
+
+ void PostConnectionCallback(HttpsClientResponse resp, HTTP_CALLBACK_ERROR err)
+ {
+ try
+ {
+ if (resp != null)
+ {
+ if (resp.Code == 200)
+ {
+ Debug.Console(1, this, "Http Post to Cisco Codec Successful. Code: {0}\nContent: {1}", resp.Code, resp.ContentString);
+
+ if (resp.ContentString.IndexOf("") > 1)
+ {
+ // Get the initial configruation for sync purposes
+ SendHttpCommand("", eCommandType.GetConfiguration);
+ }
+ else
+ {
+ try
+ {
+ if (resp.ContentString.IndexOf("") > -1)
+ {
+ XmlReaderSettings settings = new XmlReaderSettings();
+
+ XmlReader reader = new XmlReader(resp.ContentString, settings);
+
+ CodecConfiguration = CrestronXMLSerialization.DeSerializeObject(reader);
+
+ Debug.Console(1, this, "Product Name: {0} Software Version: {1} ApiVersion: {2}", CodecConfiguration.Product, CodecConfiguration.Version, CodecConfiguration.ApiVersion);
+
+ // Get the initial status for sync purposes
+ SendHttpCommand("", eCommandType.GetStatus);
+ }
+ else if (resp.ContentString.IndexOf("") > -1)
+ {
+ XmlReaderSettings settings = new XmlReaderSettings();
+
+ XmlReader reader = new XmlReader(resp.ContentString, settings);
+
+ CodecStatus = CrestronXMLSerialization.DeSerializeObject(reader);
+
+ Debug.Console(1, this, "Product Name: {0} Software Version: {1} ApiVersion: {2} Volume: {3}", CodecStatus.Product, CodecStatus.Version, CodecStatus.ApiVersion, CodecStatus.Audio.Volume);
+ }
+ }
+ catch (Exception ex)
+ {
+ Debug.Console(1, this, "Error Deserializing XML document from codec: {0}", ex);
+ }
+ }
+ }
+ else if (resp.Code == 204)
+ {
+ Debug.Console(1, this, "Response Code: {0}\nHeader:\n{1}Content:\n{1}", resp.Code, resp.Header, resp.ContentString);
+
+ HttpSessionId = resp.Header.GetHeaderValue("Set-Cookie");
+ //var chunks = HttpSessionId.Split(';');
+ //HttpSessionId = chunks[0];
+ //HttpSessionId = HttpSessionId.Substring(HttpSessionId.IndexOf("=") + 1);
+
+
+ // Register for feedbacks once we have a valid session
+ SendHttpCommand(FeedbackRegistrationExpression, eCommandType.Command);
+ }
+ else
+ {
+ Debug.Console(1, this, "Response Code: {0}\nHeader:\n{1}Content:\n{1}Err:\n{2}", resp.Code, resp.Header, resp.ContentString, err);
+ }
+ }
+ else
+ Debug.Console(1, this, "Null response received from server");
+ }
+ catch (Exception e)
+ {
+ Debug.Console(1, this, "Error Initializing HTTPS Client: {0}", e);
+ }
+ }
+
+ void Server_ApiRequest(object sender, Crestron.SimplSharp.Net.Http.OnHttpRequestArgs e)
+ {
+ Debug.Console(1, this, "Api Reqeust from Codec: {0}", e.Request.ContentString);
+ e.Response.Code = 200;
+ e.Response.ContentString = "OK";
+
+ try
+ {
+ // Serializer settings. We want to ignore null values and mising members
+ JsonSerializerSettings settings = new JsonSerializerSettings();
+ settings.NullValueHandling = NullValueHandling.Ignore;
+ settings.MissingMemberHandling = MissingMemberHandling.Ignore;
+
+ if (e.Request.ContentString.IndexOf("\"Configuration\":{") > -1)
+ CodecConfiguration = JsonConvert.DeserializeObject(e.Request.ContentString, settings);
+ else if (e.Request.ContentString.IndexOf("\"Status\":{") > -1)
+ CodecStatus = JsonConvert.DeserializeObject(e.Request.ContentString, settings);
+ }
+ catch (Exception ex)
+ {
+ Debug.Console(1, this, "Error Deserializing feedback from codec: {0}", ex);
+ }
+ }
+
+ void Communication_TextReceived(object sender, GenericCommMethodReceiveTextArgs e)
+ {
+ //CodecObtp.
+ }
+
+ public override void ExecuteSwitch(object selector)
+ {
+ throw new NotImplementedException();
+ }
+
+ protected override Func InCallFeedbackFunc { get { return () => false; } }
+
+ protected override Func IncomingCallFeedbackFunc { get { return () => false; } }
+
+ protected override Func TransmitMuteFeedbackFunc { get { return () => false; } }
+
+ protected override Func ReceiveMuteFeedbackFunc { get { return () => false; } }
+
+ protected override Func PrivacyModeFeedbackFunc { get { return () => false; } }
+
+ public override void Dial()
+ {
+
+ }
+
+ public override void EndCall()
+ {
+
+ }
+
+ public override void AcceptCall()
+ {
+
+ }
+
+ public override void RejectCall()
+ {
+
+ }
+
+ public override void ReceiveMuteOff()
+ {
+
+ }
+
+ public override void ReceiveMuteOn()
+ {
+
+ }
+
+ public override void ReceiveMuteToggle()
+ {
+
+ }
+
+ public override void SetReceiveVolume(ushort level)
+ {
+
+ }
+
+ public override void TransmitMuteOff()
+ {
+
+ }
+
+ public override void TransmitMuteOn()
+ {
+
+ }
+
+ public override void TransmitMuteToggle()
+ {
+
+ }
+
+ public override void SetTransmitVolume(ushort level)
+ {
+
+ }
+
+ public override void PrivacyModeOn()
+ {
+
+ }
+
+ public override void PrivacyModeOff()
+ {
+
+ }
+
+ public override void PrivacyModeToggle()
+ {
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/Essentials Devices Common/Essentials Devices Common/VC/Cisco/Configuration.cs b/Essentials Devices Common/Essentials Devices Common/VC/Cisco/Configuration.cs
new file mode 100644
index 00000000..a88b9b70
--- /dev/null
+++ b/Essentials Devices Common/Essentials Devices Common/VC/Cisco/Configuration.cs
@@ -0,0 +1,1895 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+
+namespace PepperDash.Essentials.Devices.VideoCodec.Cisco
+{
+ public class CiscoCodecConfiguration
+ {
+ //[XmlRoot(ElementName = "DefaultVolume")]
+ public class DefaultVolume
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Mode")]
+ public class Mode
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Microphone")]
+ public class Microphone
+ {
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ //[XmlAttribute(AttributeName = "item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName = "maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ //[XmlElement(ElementName = "EchoControl")]
+ public EchoControl EchoControl { get; set; }
+ //[XmlElement(ElementName = "Level")]
+ public Level Level { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Dereverberation")]
+ public class Dereverberation
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "NoiseReduction")]
+ public class NoiseReduction
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "EchoControl")]
+ public class EchoControl
+ {
+ //[XmlElement(ElementName = "Dereverberation")]
+ public Dereverberation Dereverberation { get; set; }
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ //[XmlElement(ElementName = "NoiseReduction")]
+ public NoiseReduction NoiseReduction { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Level")]
+ public class Level
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Input")]
+ public class Input
+ {
+ //[XmlElement(ElementName = "Microphone")]
+ public List Microphone { get; set; }
+ //[XmlElement(ElementName = "Connector")]
+ public List Connector { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Enabled")]
+ public class Enabled
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Mute")]
+ public class Mute
+ {
+ //[XmlElement(ElementName = "Enabled")]
+ public Enabled Enabled { get; set; }
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Microphones")]
+ public class Microphones
+ {
+ //[XmlElement(ElementName = "Mute")]
+ public Mute Mute { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "InternalSpeaker")]
+ public class InternalSpeaker
+ {
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "OutputType")]
+ public class OutputType
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Line")]
+ public class Line
+ {
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ //[XmlElement(ElementName = "OutputType")]
+ public OutputType OutputType { get; set; }
+ //[XmlAttribute(AttributeName = "item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName = "maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Output")]
+ public class Output
+ {
+ //[XmlElement(ElementName = "InternalSpeaker")]
+ public InternalSpeaker InternalSpeaker { get; set; }
+ //[XmlElement(ElementName = "Line")]
+ public Line Line { get; set; }
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ //[XmlElement(ElementName = "Connector")]
+ public List Connector { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "RingTone")]
+ public class RingTone
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "RingVolume")]
+ public class RingVolume
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "SoundsAndAlerts")]
+ public class SoundsAndAlerts
+ {
+ //[XmlElement(ElementName = "RingTone")]
+ public RingTone RingTone { get; set; }
+ //[XmlElement(ElementName = "RingVolume")]
+ public RingVolume RingVolume { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Audio")]
+ public class Audio
+ {
+ //[XmlElement(ElementName = "DefaultVolume")]
+ public DefaultVolume DefaultVolume { get; set; }
+ //[XmlElement(ElementName = "Input")]
+ public Input Input { get; set; }
+ //[XmlElement(ElementName = "Microphones")]
+ public Microphones Microphones { get; set; }
+ //[XmlElement(ElementName = "Output")]
+ public Output Output { get; set; }
+ //[XmlElement(ElementName = "SoundsAndAlerts")]
+ public SoundsAndAlerts SoundsAndAlerts { get; set; }
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Framerate")]
+ public class Framerate
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Camera")]
+ public class Camera
+ {
+ //[XmlElement(ElementName = "Framerate")]
+ public Framerate Framerate { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Closeup")]
+ public class Closeup
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "SpeakerTrack")]
+ public class SpeakerTrack
+ {
+ //[XmlElement(ElementName = "Closeup")]
+ public Closeup Closeup { get; set; }
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Cameras")]
+ public class Cameras
+ {
+ //[XmlElement(ElementName = "Camera")]
+ public Camera Camera { get; set; }
+ //[XmlElement(ElementName = "SpeakerTrack")]
+ public SpeakerTrack SpeakerTrack { get; set; }
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Delay")]
+ public class Delay
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "AutoAnswer")]
+ public class AutoAnswer
+ {
+ //[XmlElement(ElementName = "Delay")]
+ public Delay Delay { get; set; }
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ //[XmlElement(ElementName = "Mute")]
+ public Mute Mute { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Protocol")]
+ public class Protocol
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Rate")]
+ public class Rate
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "DefaultCall")]
+ public class DefaultCall
+ {
+ //[XmlElement(ElementName = "Protocol")]
+ public Protocol Protocol { get; set; }
+ //[XmlElement(ElementName = "Rate")]
+ public Rate Rate { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "DefaultTimeout")]
+ public class DefaultTimeout
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "DoNotDisturb")]
+ public class DoNotDisturb
+ {
+ //[XmlElement(ElementName = "DefaultTimeout")]
+ public DefaultTimeout DefaultTimeout { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Encryption")]
+ public class Encryption
+ {
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ //[XmlElement(ElementName = "KeySize")]
+ public KeySize KeySize { get; set; }
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "FarEndControl")]
+ public class FarEndControl
+ {
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "MaxReceiveCallRate")]
+ public class MaxReceiveCallRate
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "MaxTotalReceiveCallRate")]
+ public class MaxTotalReceiveCallRate
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "MaxTotalTransmitCallRate")]
+ public class MaxTotalTransmitCallRate
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "MaxTransmitCallRate")]
+ public class MaxTransmitCallRate
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "MultiStream")]
+ public class MultiStream
+ {
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Conference")]
+ public class Conference
+ {
+ //[XmlElement(ElementName = "AutoAnswer")]
+ public AutoAnswer AutoAnswer { get; set; }
+ //[XmlElement(ElementName = "DefaultCall")]
+ public DefaultCall DefaultCall { get; set; }
+ //[XmlElement(ElementName = "DoNotDisturb")]
+ public DoNotDisturb DoNotDisturb { get; set; }
+ //[XmlElement(ElementName = "Encryption")]
+ public Encryption Encryption { get; set; }
+ //[XmlElement(ElementName = "FarEndControl")]
+ public FarEndControl FarEndControl { get; set; }
+ //[XmlElement(ElementName = "MaxReceiveCallRate")]
+ public MaxReceiveCallRate MaxReceiveCallRate { get; set; }
+ //[XmlElement(ElementName = "MaxTotalReceiveCallRate")]
+ public MaxTotalReceiveCallRate MaxTotalReceiveCallRate { get; set; }
+ //[XmlElement(ElementName = "MaxTotalTransmitCallRate")]
+ public MaxTotalTransmitCallRate MaxTotalTransmitCallRate { get; set; }
+ //[XmlElement(ElementName = "MaxTransmitCallRate")]
+ public MaxTransmitCallRate MaxTransmitCallRate { get; set; }
+ //[XmlElement(ElementName = "MultiStream")]
+ public MultiStream MultiStream { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "LoginName")]
+ public class LoginName
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Password")]
+ public class Password
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Authentication")]
+ public class Authentication
+ {
+ //[XmlElement(ElementName = "LoginName")]
+ public LoginName LoginName { get; set; }
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ //[XmlElement(ElementName = "Password")]
+ public Password Password { get; set; }
+ //[XmlElement(ElementName = "UserName")]
+ public UserName UserName { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "CallSetup")]
+ public class CallSetup
+ {
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "KeySize")]
+ public class KeySize
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Address")]
+ public class Address
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Gatekeeper")]
+ public class Gatekeeper
+ {
+ //[XmlElement(ElementName = "Address")]
+ public Address Address { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "E164")]
+ public class E164
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "ID")]
+ public class ID
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "H323Alias")]
+ public class H323Alias
+ {
+ //[XmlElement(ElementName = "E164")]
+ public E164 E164 { get; set; }
+ //[XmlElement(ElementName = "ID")]
+ public ID ID { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "NAT")]
+ public class NAT
+ {
+ //[XmlElement(ElementName = "Address")]
+ public Address Address { get; set; }
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "H323")]
+ public class H323
+ {
+ //[XmlElement(ElementName = "Authentication")]
+ public Authentication Authentication { get; set; }
+ //[XmlElement(ElementName = "CallSetup")]
+ public CallSetup CallSetup { get; set; }
+ //[XmlElement(ElementName = "Encryption")]
+ public Encryption Encryption { get; set; }
+ //[XmlElement(ElementName = "Gatekeeper")]
+ public Gatekeeper Gatekeeper { get; set; }
+ //[XmlElement(ElementName = "H323Alias")]
+ public H323Alias H323Alias { get; set; }
+ //[XmlElement(ElementName = "NAT")]
+ public NAT NAT { get; set; }
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Name")]
+ public class Name
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Domain")]
+ public class Domain
+ {
+ //[XmlElement(ElementName = "Name")]
+ public Name Name { get; set; }
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Server")]
+ public class Server
+ {
+ //[XmlElement(ElementName = "Address")]
+ public Address Address { get; set; }
+ //[XmlAttribute(AttributeName = "item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName = "maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ //[XmlElement(ElementName = "MinimumTLSVersion")]
+ public MinimumTLSVersion MinimumTLSVersion { get; set; }
+ //[XmlElement(ElementName = "ID")]
+ public ID ID { get; set; }
+ //[XmlElement(ElementName = "Type")]
+ public Type Type { get; set; }
+ //[XmlElement(ElementName = "URL")]
+ public URL URL { get; set; }
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlElement(ElementName = "Port")]
+ public Port Port { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "DNS")]
+ public class DNS
+ {
+ //[XmlElement(ElementName = "Domain")]
+ public Domain Domain { get; set; }
+ //[XmlElement(ElementName = "Server")]
+ public List Server { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "AnonymousIdentity")]
+ public class AnonymousIdentity
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Md5")]
+ public class Md5
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Peap")]
+ public class Peap
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Tls")]
+ public class Tls
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Ttls")]
+ public class Ttls
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Eap")]
+ public class Eap
+ {
+ //[XmlElement(ElementName = "Md5")]
+ public Md5 Md5 { get; set; }
+ //[XmlElement(ElementName = "Peap")]
+ public Peap Peap { get; set; }
+ //[XmlElement(ElementName = "Tls")]
+ public Tls Tls { get; set; }
+ //[XmlElement(ElementName = "Ttls")]
+ public Ttls Ttls { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Identity")]
+ public class Identity
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "TlsVerify")]
+ public class TlsVerify
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "UseClientCertificate")]
+ public class UseClientCertificate
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "IEEE8021X")]
+ public class IEEE8021X
+ {
+ //[XmlElement(ElementName = "AnonymousIdentity")]
+ public AnonymousIdentity AnonymousIdentity { get; set; }
+ //[XmlElement(ElementName = "Eap")]
+ public Eap Eap { get; set; }
+ //[XmlElement(ElementName = "Identity")]
+ public Identity Identity { get; set; }
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ //[XmlElement(ElementName = "Password")]
+ public Password Password { get; set; }
+ //[XmlElement(ElementName = "TlsVerify")]
+ public TlsVerify TlsVerify { get; set; }
+ //[XmlElement(ElementName = "UseClientCertificate")]
+ public UseClientCertificate UseClientCertificate { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "IPStack")]
+ public class IPStack
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Assignment")]
+ public class Assignment
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Gateway")]
+ public class Gateway
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "SubnetMask")]
+ public class SubnetMask
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "IPv4")]
+ public class IPv4
+ {
+ //[XmlElement(ElementName = "Address")]
+ public Address Address { get; set; }
+ //[XmlElement(ElementName = "Assignment")]
+ public Assignment Assignment { get; set; }
+ //[XmlElement(ElementName = "Gateway")]
+ public Gateway Gateway { get; set; }
+ //[XmlElement(ElementName = "SubnetMask")]
+ public SubnetMask SubnetMask { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "DHCPOptions")]
+ public class DHCPOptions
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "IPv6")]
+ public class IPv6
+ {
+ //[XmlElement(ElementName = "Address")]
+ public Address Address { get; set; }
+ //[XmlElement(ElementName = "Assignment")]
+ public Assignment Assignment { get; set; }
+ //[XmlElement(ElementName = "DHCPOptions")]
+ public DHCPOptions DHCPOptions { get; set; }
+ //[XmlElement(ElementName = "Gateway")]
+ public Gateway Gateway { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "MTU")]
+ public class MTU
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Data")]
+ public class Data
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "ICMPv6")]
+ public class ICMPv6
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "NTP")]
+ public class NTP
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ //[XmlElement(ElementName = "Server")]
+ public List Server { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Signalling")]
+ public class Signalling
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Video")]
+ public class Video
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ //[XmlElement(ElementName = "DefaultMainSource")]
+ public DefaultMainSource DefaultMainSource { get; set; }
+ //[XmlElement(ElementName = "Input")]
+ public Input Input { get; set; }
+ //[XmlElement(ElementName = "Monitors")]
+ public Monitors Monitors { get; set; }
+ //[XmlElement(ElementName = "Output")]
+ public Output Output { get; set; }
+ //[XmlElement(ElementName = "Presentation")]
+ public Presentation Presentation { get; set; }
+ //[XmlElement(ElementName = "Selfview")]
+ public Selfview Selfview { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Diffserv")]
+ public class Diffserv
+ {
+ //[XmlElement(ElementName = "Audio")]
+ public Audio Audio { get; set; }
+ //[XmlElement(ElementName = "Data")]
+ public Data Data { get; set; }
+ //[XmlElement(ElementName = "ICMPv6")]
+ public ICMPv6 ICMPv6 { get; set; }
+ //[XmlElement(ElementName = "NTP")]
+ public NTP NTP { get; set; }
+ //[XmlElement(ElementName = "Signalling")]
+ public Signalling Signalling { get; set; }
+ //[XmlElement(ElementName = "Video")]
+ public Video Video { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "QoS")]
+ public class QoS
+ {
+ //[XmlElement(ElementName = "Diffserv")]
+ public Diffserv Diffserv { get; set; }
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Allow")]
+ public class Allow
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "RemoteAccess")]
+ public class RemoteAccess
+ {
+ //[XmlElement(ElementName = "Allow")]
+ public Allow Allow { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Speed")]
+ public class Speed
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "VlanId")]
+ public class VlanId
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Voice")]
+ public class Voice
+ {
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ //[XmlElement(ElementName = "VlanId")]
+ public VlanId VlanId { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "VLAN")]
+ public class VLAN
+ {
+ //[XmlElement(ElementName = "Voice")]
+ public Voice Voice { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Network")]
+ public class Network
+ {
+ //[XmlElement(ElementName = "DNS")]
+ public DNS DNS { get; set; }
+ //[XmlElement(ElementName = "IEEE8021X")]
+ public IEEE8021X IEEE8021X { get; set; }
+ //[XmlElement(ElementName = "IPStack")]
+ public IPStack IPStack { get; set; }
+ //[XmlElement(ElementName = "IPv4")]
+ public IPv4 IPv4 { get; set; }
+ //[XmlElement(ElementName = "IPv6")]
+ public IPv6 IPv6 { get; set; }
+ //[XmlElement(ElementName = "MTU")]
+ public MTU MTU { get; set; }
+ //[XmlElement(ElementName = "QoS")]
+ public QoS QoS { get; set; }
+ //[XmlElement(ElementName = "RemoteAccess")]
+ public RemoteAccess RemoteAccess { get; set; }
+ //[XmlElement(ElementName = "Speed")]
+ public Speed Speed { get; set; }
+ //[XmlElement(ElementName = "VLAN")]
+ public VLAN VLAN { get; set; }
+ //[XmlAttribute(AttributeName = "item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName = "maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "CDP")]
+ public class CDP
+ {
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "HTTP")]
+ public class HTTP
+ {
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "MinimumTLSVersion")]
+ public class MinimumTLSVersion
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "StrictTransportSecurity")]
+ public class StrictTransportSecurity
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "VerifyClientCertificate")]
+ public class VerifyClientCertificate
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "VerifyServerCertificate")]
+ public class VerifyServerCertificate
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "HTTPS")]
+ public class HTTPS
+ {
+ //[XmlElement(ElementName = "Server")]
+ public Server Server { get; set; }
+ //[XmlElement(ElementName = "StrictTransportSecurity")]
+ public StrictTransportSecurity StrictTransportSecurity { get; set; }
+ //[XmlElement(ElementName = "VerifyClientCertificate")]
+ public VerifyClientCertificate VerifyClientCertificate { get; set; }
+ //[XmlElement(ElementName = "VerifyServerCertificate")]
+ public VerifyServerCertificate VerifyServerCertificate { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "SIP")]
+ public class SIP
+ {
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ //[XmlElement(ElementName = "Authentication")]
+ public Authentication Authentication { get; set; }
+ //[XmlElement(ElementName = "DefaultTransport")]
+ public DefaultTransport DefaultTransport { get; set; }
+ //[XmlElement(ElementName = "DisplayName")]
+ public DisplayName DisplayName { get; set; }
+ //[XmlElement(ElementName = "Ice")]
+ public Ice Ice { get; set; }
+ //[XmlElement(ElementName = "ListenPort")]
+ public ListenPort ListenPort { get; set; }
+ //[XmlElement(ElementName = "Proxy")]
+ public List Proxy { get; set; }
+ //[XmlElement(ElementName = "Turn")]
+ public Turn Turn { get; set; }
+ //[XmlElement(ElementName = "URI")]
+ public URI URI { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "CommunityName")]
+ public class CommunityName
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Host")]
+ public class Host
+ {
+ //[XmlElement(ElementName = "Address")]
+ public Address Address { get; set; }
+ //[XmlAttribute(AttributeName = "item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName = "maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "SystemContact")]
+ public class SystemContact
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "SystemLocation")]
+ public class SystemLocation
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "SNMP")]
+ public class SNMP
+ {
+ //[XmlElement(ElementName = "CommunityName")]
+ public CommunityName CommunityName { get; set; }
+ //[XmlElement(ElementName = "Host")]
+ public List Host { get; set; }
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ //[XmlElement(ElementName = "SystemContact")]
+ public SystemContact SystemContact { get; set; }
+ //[XmlElement(ElementName = "SystemLocation")]
+ public SystemLocation SystemLocation { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "SSH")]
+ public class SSH
+ {
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "UPnP")]
+ public class UPnP
+ {
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "WelcomeText")]
+ public class WelcomeText
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "NetworkServices")]
+ public class NetworkServices
+ {
+ //[XmlElement(ElementName = "CDP")]
+ public CDP CDP { get; set; }
+ //[XmlElement(ElementName = "H323")]
+ public H323 H323 { get; set; }
+ //[XmlElement(ElementName = "HTTP")]
+ public HTTP HTTP { get; set; }
+ //[XmlElement(ElementName = "HTTPS")]
+ public HTTPS HTTPS { get; set; }
+ //[XmlElement(ElementName = "NTP")]
+ public NTP NTP { get; set; }
+ //[XmlElement(ElementName = "SIP")]
+ public SIP SIP { get; set; }
+ //[XmlElement(ElementName = "SNMP")]
+ public SNMP SNMP { get; set; }
+ //[XmlElement(ElementName = "SSH")]
+ public SSH SSH { get; set; }
+ //[XmlElement(ElementName = "UPnP")]
+ public UPnP UPnP { get; set; }
+ //[XmlElement(ElementName = "WelcomeText")]
+ public WelcomeText WelcomeText { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "ControlSystems")]
+ public class ControlSystems
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "TouchPanels")]
+ public class TouchPanels
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Profile")]
+ public class Profile
+ {
+ //[XmlElement(ElementName = "Cameras")]
+ public Cameras Cameras { get; set; }
+ //[XmlElement(ElementName = "ControlSystems")]
+ public ControlSystems ControlSystems { get; set; }
+ //[XmlElement(ElementName = "TouchPanels")]
+ public TouchPanels TouchPanels { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Peripherals")]
+ public class Peripherals
+ {
+ //[XmlElement(ElementName = "Profile")]
+ public Profile Profile { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Type")]
+ public class Type
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "URL")]
+ public class URL
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Phonebook")]
+ public class Phonebook
+ {
+ //[XmlElement(ElementName = "Server")]
+ public Server Server { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Connectivity")]
+ public class Connectivity
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "AlternateAddress")]
+ public class AlternateAddress
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Path")]
+ public class Path
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "ExternalManager")]
+ public class ExternalManager
+ {
+ //[XmlElement(ElementName = "Address")]
+ public Address Address { get; set; }
+ //[XmlElement(ElementName = "AlternateAddress")]
+ public AlternateAddress AlternateAddress { get; set; }
+ //[XmlElement(ElementName = "Domain")]
+ public Domain Domain { get; set; }
+ //[XmlElement(ElementName = "Path")]
+ public Path Path { get; set; }
+ //[XmlElement(ElementName = "Protocol")]
+ public Protocol Protocol { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "HttpMethod")]
+ public class HttpMethod
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Provisioning")]
+ public class Provisioning
+ {
+ //[XmlElement(ElementName = "Connectivity")]
+ public Connectivity Connectivity { get; set; }
+ //[XmlElement(ElementName = "ExternalManager")]
+ public ExternalManager ExternalManager { get; set; }
+ //[XmlElement(ElementName = "HttpMethod")]
+ public HttpMethod HttpMethod { get; set; }
+ //[XmlElement(ElementName = "LoginName")]
+ public LoginName LoginName { get; set; }
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ //[XmlElement(ElementName = "Password")]
+ public Password Password { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "CallControl")]
+ public class CallControl
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "FromClients")]
+ public class FromClients
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "ToClients")]
+ public class ToClients
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "ContentShare")]
+ public class ContentShare
+ {
+ //[XmlElement(ElementName = "FromClients")]
+ public FromClients FromClients { get; set; }
+ //[XmlElement(ElementName = "ToClients")]
+ public ToClients ToClients { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Services")]
+ public class Services
+ {
+ //[XmlElement(ElementName = "CallControl")]
+ public CallControl CallControl { get; set; }
+ //[XmlElement(ElementName = "ContentShare")]
+ public ContentShare ContentShare { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Proximity")]
+ public class Proximity
+ {
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ //[XmlElement(ElementName = "Services")]
+ public Services Services { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "PeopleCountOutOfCall")]
+ public class PeopleCountOutOfCall
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "PeoplePresenceDetector")]
+ public class PeoplePresenceDetector
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "RoomAnalytics")]
+ public class RoomAnalytics
+ {
+ //[XmlElement(ElementName = "PeopleCountOutOfCall")]
+ public PeopleCountOutOfCall PeopleCountOutOfCall { get; set; }
+ //[XmlElement(ElementName = "PeoplePresenceDetector")]
+ public PeoplePresenceDetector PeoplePresenceDetector { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "UserName")]
+ public class UserName
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "DefaultTransport")]
+ public class DefaultTransport
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "DisplayName")]
+ public class DisplayName
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "DefaultCandidate")]
+ public class DefaultCandidate
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Ice")]
+ public class Ice
+ {
+ //[XmlElement(ElementName = "DefaultCandidate")]
+ public DefaultCandidate DefaultCandidate { get; set; }
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "ListenPort")]
+ public class ListenPort
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Proxy")]
+ public class Proxy
+ {
+ //[XmlElement(ElementName = "Address")]
+ public Address Address { get; set; }
+ //[XmlAttribute(AttributeName = "item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName = "maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Turn")]
+ public class Turn
+ {
+ //[XmlElement(ElementName = "Password")]
+ public Password Password { get; set; }
+ //[XmlElement(ElementName = "Server")]
+ public Server Server { get; set; }
+ //[XmlElement(ElementName = "UserName")]
+ public UserName UserName { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "URI")]
+ public class URI
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "BaudRate")]
+ public class BaudRate
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "LoginRequired")]
+ public class LoginRequired
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "SerialPort")]
+ public class SerialPort
+ {
+ //[XmlElement(ElementName = "BaudRate")]
+ public BaudRate BaudRate { get; set; }
+ //[XmlElement(ElementName = "LoginRequired")]
+ public LoginRequired LoginRequired { get; set; }
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "BootAction")]
+ public class BootAction
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Control")]
+ public class Control
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "StandbyAction")]
+ public class StandbyAction
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "WakeupAction")]
+ public class WakeupAction
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Standby")]
+ public class Standby
+ {
+ //[XmlElement(ElementName = "BootAction")]
+ public BootAction BootAction { get; set; }
+ //[XmlElement(ElementName = "Control")]
+ public Control Control { get; set; }
+ //[XmlElement(ElementName = "Delay")]
+ public Delay Delay { get; set; }
+ //[XmlElement(ElementName = "StandbyAction")]
+ public StandbyAction StandbyAction { get; set; }
+ //[XmlElement(ElementName = "WakeupAction")]
+ public WakeupAction WakeupAction { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "SystemUnit")]
+ public class SystemUnit
+ {
+ //[XmlElement(ElementName = "Name")]
+ public Name Name { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "DateFormat")]
+ public class DateFormat
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "TimeFormat")]
+ public class TimeFormat
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Zone")]
+ public class Zone
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Time")]
+ public class Time
+ {
+ //[XmlElement(ElementName = "DateFormat")]
+ public DateFormat DateFormat { get; set; }
+ //[XmlElement(ElementName = "TimeFormat")]
+ public TimeFormat TimeFormat { get; set; }
+ //[XmlElement(ElementName = "Zone")]
+ public Zone Zone { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "ContactInfo")]
+ public class ContactInfo
+ {
+ //[XmlElement(ElementName = "Type")]
+ public Type Type { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "KeyTones")]
+ public class KeyTones
+ {
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Language")]
+ public class Language
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "OSD")]
+ public class OSD
+ {
+ //[XmlElement(ElementName = "Output")]
+ public Output Output { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "UserInterface")]
+ public class UserInterface
+ {
+ //[XmlElement(ElementName = "ContactInfo")]
+ public ContactInfo ContactInfo { get; set; }
+ //[XmlElement(ElementName = "KeyTones")]
+ public KeyTones KeyTones { get; set; }
+ //[XmlElement(ElementName = "Language")]
+ public Language Language { get; set; }
+ //[XmlElement(ElementName = "OSD")]
+ public OSD OSD { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Filter")]
+ public class Filter
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Group")]
+ public class Group
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Admin")]
+ public class Admin
+ {
+ //[XmlElement(ElementName = "Filter")]
+ public Filter Filter { get; set; }
+ //[XmlElement(ElementName = "Group")]
+ public Group Group { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Attribute")]
+ public class Attribute
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "BaseDN")]
+ public class BaseDN
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Port")]
+ public class Port
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "LDAP")]
+ public class LDAP
+ {
+ //[XmlElement(ElementName = "Admin")]
+ public Admin Admin { get; set; }
+ //[XmlElement(ElementName = "Attribute")]
+ public Attribute Attribute { get; set; }
+ //[XmlElement(ElementName = "BaseDN")]
+ public BaseDN BaseDN { get; set; }
+ //[XmlElement(ElementName = "Encryption")]
+ public Encryption Encryption { get; set; }
+ //[XmlElement(ElementName = "MinimumTLSVersion")]
+ public MinimumTLSVersion MinimumTLSVersion { get; set; }
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ //[XmlElement(ElementName = "Server")]
+ public Server Server { get; set; }
+ //[XmlElement(ElementName = "VerifyServerCertificate")]
+ public VerifyServerCertificate VerifyServerCertificate { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "UserManagement")]
+ public class UserManagement
+ {
+ //[XmlElement(ElementName = "LDAP")]
+ public LDAP LDAP { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "DefaultMainSource")]
+ public class DefaultMainSource
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "CameraId")]
+ public class CameraId
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "CameraControl")]
+ public class CameraControl
+ {
+ //[XmlElement(ElementName = "CameraId")]
+ public CameraId CameraId { get; set; }
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "InputSourceType")]
+ public class InputSourceType
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Visibility")]
+ public class Visibility
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Connector")]
+ public class Connector
+ {
+ //[XmlElement(ElementName = "CameraControl")]
+ public CameraControl CameraControl { get; set; }
+ //[XmlElement(ElementName = "InputSourceType")]
+ public InputSourceType InputSourceType { get; set; }
+ //[XmlElement(ElementName = "Name")]
+ public Name Name { get; set; }
+ //[XmlElement(ElementName = "Visibility")]
+ public Visibility Visibility { get; set; }
+ //[XmlAttribute(AttributeName = "item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName = "maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ //[XmlElement(ElementName = "PreferredResolution")]
+ public PreferredResolution PreferredResolution { get; set; }
+ //[XmlElement(ElementName = "PresentationSelection")]
+ public PresentationSelection PresentationSelection { get; set; }
+ //[XmlElement(ElementName = "Quality")]
+ public Quality Quality { get; set; }
+ //[XmlElement(ElementName = "CEC")]
+ public CEC CEC { get; set; }
+ //[XmlElement(ElementName = "MonitorRole")]
+ public MonitorRole MonitorRole { get; set; }
+ //[XmlElement(ElementName = "Resolution")]
+ public Resolution Resolution { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "PreferredResolution")]
+ public class PreferredResolution
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "PresentationSelection")]
+ public class PresentationSelection
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Quality")]
+ public class Quality
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Monitors")]
+ public class Monitors
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "CEC")]
+ public class CEC
+ {
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "MonitorRole")]
+ public class MonitorRole
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Resolution")]
+ public class Resolution
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "DefaultSource")]
+ public class DefaultSource
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Presentation")]
+ public class Presentation
+ {
+ //[XmlElement(ElementName = "DefaultSource")]
+ public DefaultSource DefaultSource { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "FullscreenMode")]
+ public class FullscreenMode
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "OnMonitorRole")]
+ public class OnMonitorRole
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "PIPPosition")]
+ public class PIPPosition
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Default")]
+ public class Default
+ {
+ //[XmlElement(ElementName = "FullscreenMode")]
+ public FullscreenMode FullscreenMode { get; set; }
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ //[XmlElement(ElementName = "OnMonitorRole")]
+ public OnMonitorRole OnMonitorRole { get; set; }
+ //[XmlElement(ElementName = "PIPPosition")]
+ public PIPPosition PIPPosition { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Duration")]
+ public class Duration
+ {
+ //[XmlAttribute(AttributeName = "valueSpaceRef")]
+ public string ValueSpaceRef { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "OnCall")]
+ public class OnCall
+ {
+ //[XmlElement(ElementName = "Duration")]
+ public Duration Duration { get; set; }
+ //[XmlElement(ElementName = "Mode")]
+ public Mode Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Selfview")]
+ public class Selfview
+ {
+ //[XmlElement(ElementName = "Default")]
+ public Default Default { get; set; }
+ //[XmlElement(ElementName = "OnCall")]
+ public OnCall OnCall { get; set; }
+ }
+
+ //[XmlRoot(ElementName = "Configuration")]
+ public class Configuration
+ {
+ //[XmlElement(ElementName = "Audio")]
+ public Audio Audio { get; set; }
+ //[XmlElement(ElementName = "Cameras")]
+ public Cameras Cameras { get; set; }
+ //[XmlElement(ElementName = "Conference")]
+ public Conference Conference { get; set; }
+ //[XmlElement(ElementName = "H323")]
+ public H323 H323 { get; set; }
+ //[XmlElement(ElementName = "Network")]
+ public Network Network { get; set; }
+ //[XmlElement(ElementName = "NetworkServices")]
+ public NetworkServices NetworkServices { get; set; }
+ //[XmlElement(ElementName = "Peripherals")]
+ public Peripherals Peripherals { get; set; }
+ //[XmlElement(ElementName = "Phonebook")]
+ public Phonebook Phonebook { get; set; }
+ //[XmlElement(ElementName = "Provisioning")]
+ public Provisioning Provisioning { get; set; }
+ //[XmlElement(ElementName = "Proximity")]
+ public Proximity Proximity { get; set; }
+ //[XmlElement(ElementName = "RoomAnalytics")]
+ public RoomAnalytics RoomAnalytics { get; set; }
+ //[XmlElement(ElementName = "SIP")]
+ public SIP SIP { get; set; }
+ //[XmlElement(ElementName = "SerialPort")]
+ public SerialPort SerialPort { get; set; }
+ //[XmlElement(ElementName = "Standby")]
+ public Standby Standby { get; set; }
+ //[XmlElement(ElementName = "SystemUnit")]
+ public SystemUnit SystemUnit { get; set; }
+ //[XmlElement(ElementName = "Time")]
+ public Time Time { get; set; }
+ //[XmlElement(ElementName = "UserInterface")]
+ public UserInterface UserInterface { get; set; }
+ //[XmlElement(ElementName = "UserManagement")]
+ public UserManagement UserManagement { get; set; }
+ //[XmlElement(ElementName = "Video")]
+ public Video Video { get; set; }
+ //[XmlAttribute(AttributeName = "product")]
+ public string Product { get; set; }
+ //[XmlAttribute(AttributeName = "version")]
+ public string Version { get; set; }
+ //[XmlAttribute(AttributeName = "apiVersion")]
+ public string ApiVersion { get; set; }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Essentials Devices Common/Essentials Devices Common/VC/Cisco/HttpApiServer.cs b/Essentials Devices Common/Essentials Devices Common/VC/Cisco/HttpApiServer.cs
new file mode 100644
index 00000000..4f5f3fd5
--- /dev/null
+++ b/Essentials Devices Common/Essentials Devices Common/VC/Cisco/HttpApiServer.cs
@@ -0,0 +1,106 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+using Crestron.SimplSharp.Net.Http;
+
+using PepperDash.Core;
+
+
+namespace PepperDash.Essentials.Devices.VideoCodec.Cisco
+{
+ public class HttpApiServer
+ {
+ public static Dictionary ExtensionContentTypes;
+
+ public event EventHandler ApiRequest;
+ public Crestron.SimplSharp.Net.Http.HttpServer HttpServer { get; private set; }
+
+ public string HtmlRoot { get; set; }
+
+
+ ///
+ /// SIMPL+ can only execute the default constructor. If you have variables that require initialization, please
+ /// use an Initialize method
+ ///
+ public HttpApiServer()
+ {
+ ExtensionContentTypes = new Dictionary
+ {
+ { ".css", "text/css" },
+ { ".htm", "text/html" },
+ { ".html", "text/html" },
+ { ".jpg", "image/jpeg" },
+ { ".jpeg", "image/jpeg" },
+ { ".js", "application/javascript" },
+ { ".json", "application/json" },
+ { ".xml", "text/xml" },
+ { ".map", "application/x-navimap" },
+ { ".pdf", "application.pdf" },
+ { ".png", "image/png" },
+ { ".txt", "text/plain" },
+ };
+ HtmlRoot = @"\HTML";
+ }
+
+
+ public void Start(int port)
+ {
+ // TEMP - this should be inserted by configuring class
+
+ HttpServer = new Crestron.SimplSharp.Net.Http.HttpServer();
+ HttpServer.ServerName = "Cisco API Server";
+ HttpServer.KeepAlive = true;
+ HttpServer.Port = port;
+ HttpServer.OnHttpRequest += Server_Request;
+ HttpServer.Open();
+
+ CrestronEnvironment.ProgramStatusEventHandler += (a) =>
+ {
+ if (a == eProgramStatusEventType.Stopping)
+ {
+ HttpServer.Close();
+ Debug.Console(1, "Shutting down HTTP Server on port {0}", HttpServer.Port);
+ }
+ };
+ }
+
+ void Server_Request(object sender, OnHttpRequestArgs args)
+ {
+ if (args.Request.Header.RequestType == "OPTIONS")
+ {
+ Debug.Console(2, "Asking for OPTIONS");
+ args.Response.Header.SetHeaderValue("Access-Control-Allow-Origin", "*");
+ args.Response.Header.SetHeaderValue("Access-Control-Allow-Methods", "GET, POST, PATCH, PUT, DELETE, OPTIONS");
+ return;
+ }
+
+ string path = Uri.UnescapeDataString(args.Request.Path);
+ var host = args.Request.DataConnection.RemoteEndPointAddress;
+ //string authToken;
+
+ Debug.Console(2, "HTTP Request: {2}: Path='{0}' ?'{1}'", path, args.Request.QueryString, host);
+
+ // ----------------------------------- ADD AUTH HERE
+ if (path.StartsWith("/cisco/api"))
+ {
+ var handler = ApiRequest;
+ if (ApiRequest != null)
+ ApiRequest(this, args);
+ }
+ }
+
+ public static string GetContentType(string extension)
+ {
+ string type;
+ if (ExtensionContentTypes.ContainsKey(extension))
+ type = ExtensionContentTypes[extension];
+ else
+ type = "text/plain";
+ return type;
+ }
+
+ }
+
+}
\ No newline at end of file
diff --git a/Essentials Devices Common/Essentials Devices Common/VC/Cisco/Status.cs b/Essentials Devices Common/Essentials Devices Common/VC/Cisco/Status.cs
new file mode 100644
index 00000000..ecf54edd
--- /dev/null
+++ b/Essentials Devices Common/Essentials Devices Common/VC/Cisco/Status.cs
@@ -0,0 +1,872 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+using Crestron.SimplSharp.CrestronXml.Serialization;
+
+namespace PepperDash.Essentials.Devices.VideoCodec.Cisco
+{
+ public class CiscoCodecStatus
+ {
+
+ //[XmlRoot(ElementName="Microphone")]
+ public class Microphone {
+ //[XmlElement(ElementName="ConnectionStatus")]
+ public string ConnectionStatus { get; set; }
+ //[XmlAttribute(AttributeName="item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName="maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Connectors")]
+ public class Connectors {
+ //[XmlElement(ElementName="Microphone")]
+ public List Microphone { get; set; }
+ //[XmlElement(ElementName="Line")]
+ public Line Line { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Input")]
+ public class Input {
+ //[XmlElement(ElementName="Connectors")]
+ public Connectors Connectors { get; set; }
+ //[XmlElement(ElementName="Connector")]
+ public List Connector { get; set; }
+ //[XmlElement(ElementName="MainVideoSource")]
+ public string MainVideoSource { get; set; }
+ //[XmlElement(ElementName="Source")]
+ public List Source { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Microphones")]
+ public class Microphones {
+ //[XmlElement(ElementName="Mute")]
+ public string Mute { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Line")]
+ public class Line {
+ //[XmlElement(ElementName="ConnectionStatus")]
+ public string ConnectionStatus { get; set; }
+ //[XmlElement(ElementName="DelayMs")]
+ public string DelayMs { get; set; }
+ //[XmlAttribute(AttributeName="item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName="maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Output")]
+ public class Output {
+ //[XmlElement(ElementName="Connectors")]
+ public Connectors Connectors { get; set; }
+ //[XmlElement(ElementName="Connector")]
+ public List Connector { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Audio")]
+ public class Audio {
+ //[XmlElement(ElementName="Input")]
+ public Input Input { get; set; }
+ //[XmlElement(ElementName="Microphones")]
+ public Microphones Microphones { get; set; }
+ //[XmlElement(ElementName="Output")]
+ public Output Output { get; set; }
+ //[XmlElement(ElementName="Volume")]
+ public string Volume { get; set; }
+ //[XmlElement(ElementName="VolumeMute")]
+ public string VolumeMute { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Current")]
+ public class Current {
+ //[XmlElement(ElementName="Id")]
+ public string Id { get; set; }
+ //[XmlElement(ElementName="CompletedAt")]
+ public string CompletedAt { get; set; }
+ //[XmlElement(ElementName="URL")]
+ public string URL { get; set; }
+ //[XmlElement(ElementName="VersionId")]
+ public string VersionId { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Bookings")]
+ public class Bookings {
+ //[XmlElement(ElementName="Current")]
+ public Current Current { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Capabilities")]
+ public class Capabilities {
+ //[XmlElement(ElementName="Options")]
+ public string Options { get; set; }
+ //[XmlElement(ElementName="Conference")]
+ public Conference Conference { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Position")]
+ public class Position {
+ //[XmlElement(ElementName="Pan")]
+ public string Pan { get; set; }
+ //[XmlElement(ElementName="Tilt")]
+ public string Tilt { get; set; }
+ //[XmlElement(ElementName="Zoom")]
+ public string Zoom { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Camera")]
+ public class Camera {
+ //[XmlElement(ElementName="Capabilities")]
+ public Capabilities Capabilities { get; set; }
+ //[XmlElement(ElementName="Connected")]
+ public string Connected { get; set; }
+ //[XmlElement(ElementName="Framerate")]
+ public string Framerate { get; set; }
+ //[XmlElement(ElementName="Manufacturer")]
+ public string Manufacturer { get; set; }
+ //[XmlElement(ElementName="Model")]
+ public string Model { get; set; }
+ //[XmlElement(ElementName="Position")]
+ public Position Position { get; set; }
+ //[XmlAttribute(AttributeName="item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName="maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ }
+
+ //[XmlRoot(ElementName="SpeakerTrack")]
+ public class SpeakerTrack {
+ //[XmlElement(ElementName="Availability")]
+ public string Availability { get; set; }
+ //[XmlElement(ElementName="Status")]
+ public string Status { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Cameras")]
+ public class Cameras {
+ //[XmlElement(ElementName="Camera")]
+ public Camera Camera { get; set; }
+ //[XmlElement(ElementName="SpeakerTrack")]
+ public SpeakerTrack SpeakerTrack { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Conference")]
+ public class Conference {
+ //[XmlElement(ElementName="MaxActiveCalls")]
+ public string MaxActiveCalls { get; set; }
+ //[XmlElement(ElementName="MaxAudioCalls")]
+ public string MaxAudioCalls { get; set; }
+ //[XmlElement(ElementName="MaxCalls")]
+ public string MaxCalls { get; set; }
+ //[XmlElement(ElementName="MaxVideoCalls")]
+ public string MaxVideoCalls { get; set; }
+ //[XmlElement(ElementName="ActiveSpeaker")]
+ public ActiveSpeaker ActiveSpeaker { get; set; }
+ //[XmlElement(ElementName="DoNotDisturb")]
+ public string DoNotDisturb { get; set; }
+ //[XmlElement(ElementName="Multipoint")]
+ public Multipoint Multipoint { get; set; }
+ //[XmlElement(ElementName="Presentation")]
+ public Presentation Presentation { get; set; }
+ //[XmlElement(ElementName="SpeakerLock")]
+ public SpeakerLock SpeakerLock { get; set; }
+ }
+
+ //[XmlRoot(ElementName="ActiveSpeaker")]
+ public class ActiveSpeaker {
+ //[XmlElement(ElementName="CallId")]
+ public string CallId { get; set; }
+ //[XmlElement(ElementName="PIPPosition")]
+ public string PIPPosition { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Multipoint")]
+ public class Multipoint {
+ //[XmlElement(ElementName="Mode")]
+ public string Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Whiteboard")]
+ public class Whiteboard {
+ //[XmlElement(ElementName="Mode")]
+ public string Mode { get; set; }
+ //[XmlElement(ElementName="ReleaseFloorAvailability")]
+ public string ReleaseFloorAvailability { get; set; }
+ //[XmlElement(ElementName="RequestFloorAvailability")]
+ public string RequestFloorAvailability { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Presentation")]
+ public class Presentation {
+ //[XmlElement(ElementName="CallId")]
+ public string CallId { get; set; }
+ //[XmlElement(ElementName="Mode")]
+ public string Mode { get; set; }
+ //[XmlElement(ElementName="Whiteboard")]
+ public Whiteboard Whiteboard { get; set; }
+ //[XmlElement(ElementName="PIPPosition")]
+ public string PIPPosition { get; set; }
+ }
+
+ //[XmlRoot(ElementName="SpeakerLock")]
+ public class SpeakerLock {
+ //[XmlElement(ElementName="CallId")]
+ public string CallId { get; set; }
+ //[XmlElement(ElementName="Mode")]
+ public string Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Message")]
+ public class Message {
+ //[XmlElement(ElementName="Description")]
+ public string Description { get; set; }
+ //[XmlElement(ElementName="Level")]
+ public string Level { get; set; }
+ //[XmlElement(ElementName="References")]
+ public string References { get; set; }
+ //[XmlElement(ElementName="Type")]
+ public string Type { get; set; }
+ //[XmlAttribute(AttributeName="item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName="maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Diagnostics")]
+ public class Diagnostics {
+ //[XmlElement(ElementName="Message")]
+ public List Message { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Experimental")]
+ public class Experimental {
+ //[XmlElement(ElementName="Conference")]
+ public string Conference { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Gatekeeper")]
+ public class Gatekeeper {
+ //[XmlElement(ElementName="Address")]
+ public string Address { get; set; }
+ //[XmlElement(ElementName="Port")]
+ public string Port { get; set; }
+ //[XmlElement(ElementName="Reason")]
+ public string Reason { get; set; }
+ //[XmlElement(ElementName="Status")]
+ public string Status { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Mode")]
+ public class Mode {
+ //[XmlElement(ElementName="Reason")]
+ public string Reason { get; set; }
+ //[XmlElement(ElementName="Status")]
+ public string Status { get; set; }
+ }
+
+ //[XmlRoot(ElementName="H323")]
+ public class H323 {
+ //[XmlElement(ElementName="Gatekeeper")]
+ public Gatekeeper Gatekeeper { get; set; }
+ //[XmlElement(ElementName="Mode")]
+ public Mode Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Expression")]
+ public class Expression {
+ //[XmlAttribute(AttributeName="item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName="maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ //[XmlText]
+ public string Text { get; set; }
+ }
+
+ //[XmlRoot(ElementName="HttpFeedback")]
+ public class HttpFeedback {
+ //[XmlElement(ElementName="Expression")]
+ public List Expression { get; set; }
+ //[XmlElement(ElementName="Format")]
+ public string Format { get; set; }
+ //[XmlElement(ElementName="URL")]
+ public string URL { get; set; }
+ //[XmlAttribute(AttributeName="item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName="maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ }
+
+ //[XmlRoot(ElementName="CDP")]
+ public class CDP {
+ //[XmlElement(ElementName="Address")]
+ public string Address { get; set; }
+ //[XmlElement(ElementName="Capabilities")]
+ public string Capabilities { get; set; }
+ //[XmlElement(ElementName="DeviceId")]
+ public string DeviceId { get; set; }
+ //[XmlElement(ElementName="Duplex")]
+ public string Duplex { get; set; }
+ //[XmlElement(ElementName="Platform")]
+ public string Platform { get; set; }
+ //[XmlElement(ElementName="PortID")]
+ public string PortID { get; set; }
+ //[XmlElement(ElementName="PrimaryMgmtAddress")]
+ public string PrimaryMgmtAddress { get; set; }
+ //[XmlElement(ElementName="SysName")]
+ public string SysName { get; set; }
+ //[XmlElement(ElementName="SysObjectID")]
+ public string SysObjectID { get; set; }
+ //[XmlElement(ElementName="VTPMgmtDomain")]
+ public string VTPMgmtDomain { get; set; }
+ //[XmlElement(ElementName="Version")]
+ public string Version { get; set; }
+ //[XmlElement(ElementName="VoIPApplianceVlanID")]
+ public string VoIPApplianceVlanID { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Domain")]
+ public class Domain {
+ //[XmlElement(ElementName="Name")]
+ public string Name { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Server")]
+ public class Server {
+ //[XmlElement(ElementName="Address")]
+ public string Address { get; set; }
+ //[XmlAttribute(AttributeName="item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName="maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ }
+
+ //[XmlRoot(ElementName="DNS")]
+ public class DNS {
+ //[XmlElement(ElementName="Domain")]
+ public Domain Domain { get; set; }
+ //[XmlElement(ElementName="Server")]
+ public List Server { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Ethernet")]
+ public class Ethernet {
+ //[XmlElement(ElementName="MacAddress")]
+ public string MacAddress { get; set; }
+ //[XmlElement(ElementName="Speed")]
+ public string Speed { get; set; }
+ }
+
+ //[XmlRoot(ElementName="IPv4")]
+ public class IPv4 {
+ //[XmlElement(ElementName="Address")]
+ public string Address { get; set; }
+ //[XmlElement(ElementName="Gateway")]
+ public string Gateway { get; set; }
+ //[XmlElement(ElementName="SubnetMask")]
+ public string SubnetMask { get; set; }
+ }
+
+ //[XmlRoot(ElementName="IPv6")]
+ public class IPv6 {
+ //[XmlElement(ElementName="Address")]
+ public string Address { get; set; }
+ //[XmlElement(ElementName="Gateway")]
+ public string Gateway { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Voice")]
+ public class Voice {
+ //[XmlElement(ElementName="VlanId")]
+ public string VlanId { get; set; }
+ }
+
+ //[XmlRoot(ElementName="VLAN")]
+ public class VLAN {
+ //[XmlElement(ElementName="Voice")]
+ public Voice Voice { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Network")]
+ public class Network {
+ //[XmlElement(ElementName="CDP")]
+ public CDP CDP { get; set; }
+ //[XmlElement(ElementName="DNS")]
+ public DNS DNS { get; set; }
+ //[XmlElement(ElementName="Ethernet")]
+ public Ethernet Ethernet { get; set; }
+ //[XmlElement(ElementName="IPv4")]
+ public IPv4 IPv4 { get; set; }
+ //[XmlElement(ElementName="IPv6")]
+ public IPv6 IPv6 { get; set; }
+ //[XmlElement(ElementName="VLAN")]
+ public VLAN VLAN { get; set; }
+ //[XmlAttribute(AttributeName="item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName="maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ }
+
+ //[XmlRoot(ElementName="NTP")]
+ public class NTP {
+ //[XmlElement(ElementName="CurrentAddress")]
+ public string CurrentAddress { get; set; }
+ //[XmlElement(ElementName="Server")]
+ public List Server { get; set; }
+ //[XmlElement(ElementName="Status")]
+ public string Status { get; set; }
+ }
+
+ //[XmlRoot(ElementName="NetworkServices")]
+ public class NetworkServices {
+ //[XmlElement(ElementName="NTP")]
+ public NTP NTP { get; set; }
+ }
+
+ //[XmlRoot(ElementName="ConnectedDevice")]
+ public class ConnectedDevice {
+ //[XmlElement(ElementName="HardwareInfo")]
+ public string HardwareInfo { get; set; }
+ //[XmlElement(ElementName="ID")]
+ public string ID { get; set; }
+ //[XmlElement(ElementName="Name")]
+ public string Name { get; set; }
+ //[XmlElement(ElementName="SoftwareInfo")]
+ public string SoftwareInfo { get; set; }
+ //[XmlElement(ElementName="Status")]
+ public string Status { get; set; }
+ //[XmlElement(ElementName="Type")]
+ public string Type { get; set; }
+ //[XmlElement(ElementName="UpgradeStatus")]
+ public string UpgradeStatus { get; set; }
+ //[XmlAttribute(AttributeName="item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName="maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ //[XmlElement(ElementName="PreferredFormat")]
+ public string PreferredFormat { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Peripherals")]
+ public class Peripherals {
+ //[XmlElement(ElementName="ConnectedDevice")]
+ public ConnectedDevice ConnectedDevice { get; set; }
+ }
+
+ //[XmlRoot(ElementName="ExtensionMobility")]
+ public class ExtensionMobility {
+ //[XmlElement(ElementName="Enabled")]
+ public string Enabled { get; set; }
+ //[XmlElement(ElementName="LastLoggedInUserId")]
+ public string LastLoggedInUserId { get; set; }
+ //[XmlElement(ElementName="LoggedIn")]
+ public string LoggedIn { get; set; }
+ }
+
+ //[XmlRoot(ElementName="CUCM")]
+ public class CUCM {
+ //[XmlElement(ElementName="ExtensionMobility")]
+ public ExtensionMobility ExtensionMobility { get; set; }
+ }
+
+ //[XmlRoot(ElementName="UpgradeStatus")]
+ public class UpgradeStatus {
+ //[XmlElement(ElementName="LastChange")]
+ public string LastChange { get; set; }
+ //[XmlElement(ElementName="Message")]
+ public string Message { get; set; }
+ //[XmlElement(ElementName="Phase")]
+ public string Phase { get; set; }
+ //[XmlElement(ElementName="SessionId")]
+ public string SessionId { get; set; }
+ //[XmlElement(ElementName="Status")]
+ public string Status { get; set; }
+ //[XmlElement(ElementName="URL")]
+ public string URL { get; set; }
+ //[XmlElement(ElementName="VersionId")]
+ public string VersionId { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Software")]
+ public class Software {
+ //[XmlElement(ElementName="Current")]
+ public Current Current { get; set; }
+ //[XmlElement(ElementName="UpgradeStatus")]
+ public UpgradeStatus UpgradeStatus { get; set; }
+ //[XmlElement(ElementName="DisplayName")]
+ public string DisplayName { get; set; }
+ //[XmlElement(ElementName="Name")]
+ public string Name { get; set; }
+ //[XmlElement(ElementName="OptionKeys")]
+ public OptionKeys OptionKeys { get; set; }
+ //[XmlElement(ElementName="ReleaseDate")]
+ public string ReleaseDate { get; set; }
+ //[XmlElement(ElementName="Version")]
+ public string Version { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Provisioning")]
+ public class Provisioning {
+ //[XmlElement(ElementName="CUCM")]
+ public CUCM CUCM { get; set; }
+ //[XmlElement(ElementName="Software")]
+ public Software Software { get; set; }
+ //[XmlElement(ElementName="Status")]
+ public string Status { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Services")]
+ public class Services {
+ //[XmlElement(ElementName="Availability")]
+ public string Availability { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Proximity")]
+ public class Proximity {
+ //[XmlElement(ElementName="Services")]
+ public Services Services { get; set; }
+ }
+
+ //[XmlRoot(ElementName="PeopleCount")]
+ public class PeopleCount {
+ //[XmlElement(ElementName="Current")]
+ public string Current { get; set; }
+ }
+
+ //[XmlRoot(ElementName="RoomAnalytics")]
+ public class RoomAnalytics {
+ //[XmlElement(ElementName="PeopleCount")]
+ public PeopleCount PeopleCount { get; set; }
+ //[XmlElement(ElementName="PeoplePresence")]
+ public string PeoplePresence { get; set; }
+ }
+
+ //[XmlRoot(ElementName="CallForward")]
+ public class CallForward {
+ //[XmlElement(ElementName="DisplayName")]
+ public string DisplayName { get; set; }
+ //[XmlElement(ElementName="Mode")]
+ public string Mode { get; set; }
+ //[XmlElement(ElementName="URI")]
+ public string URI { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Mailbox")]
+ public class Mailbox {
+ //[XmlElement(ElementName="MessagesWaiting")]
+ public string MessagesWaiting { get; set; }
+ //[XmlElement(ElementName="URI")]
+ public string URI { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Proxy")]
+ public class Proxy {
+ //[XmlElement(ElementName="Address")]
+ public string Address { get; set; }
+ //[XmlElement(ElementName="Status")]
+ public string Status { get; set; }
+ //[XmlAttribute(AttributeName="item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName="maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Registration")]
+ public class Registration {
+ //[XmlElement(ElementName="Reason")]
+ public string Reason { get; set; }
+ //[XmlElement(ElementName="Status")]
+ public string Status { get; set; }
+ //[XmlElement(ElementName="URI")]
+ public string URI { get; set; }
+ //[XmlAttribute(AttributeName="item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName="maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ }
+
+ //[XmlRoot(ElementName="SIP")]
+ public class SIP {
+ //[XmlElement(ElementName="Authentication")]
+ public string Authentication { get; set; }
+ //[XmlElement(ElementName="CallForward")]
+ public CallForward CallForward { get; set; }
+ //[XmlElement(ElementName="Mailbox")]
+ public Mailbox Mailbox { get; set; }
+ //[XmlElement(ElementName="Proxy")]
+ public Proxy Proxy { get; set; }
+ //[XmlElement(ElementName="Registration")]
+ public Registration Registration { get; set; }
+ //[XmlElement(ElementName="Secure")]
+ public string Secure { get; set; }
+ //[XmlElement(ElementName="Verified")]
+ public string Verified { get; set; }
+ }
+
+ //[XmlRoot(ElementName="FIPS")]
+ public class FIPS {
+ //[XmlElement(ElementName="Mode")]
+ public string Mode { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Persistency")]
+ public class Persistency {
+ //[XmlElement(ElementName="CallHistory")]
+ public string CallHistory { get; set; }
+ //[XmlElement(ElementName="Configurations")]
+ public string Configurations { get; set; }
+ //[XmlElement(ElementName="DHCP")]
+ public string DHCP { get; set; }
+ //[XmlElement(ElementName="InternalLogging")]
+ public string InternalLogging { get; set; }
+ //[XmlElement(ElementName="LocalPhonebook")]
+ public string LocalPhonebook { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Security")]
+ public class Security {
+ //[XmlElement(ElementName="FIPS")]
+ public FIPS FIPS { get; set; }
+ //[XmlElement(ElementName="Persistency")]
+ public Persistency Persistency { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Standby")]
+ public class Standby {
+ //[XmlElement(ElementName="State")]
+ public string State { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Module")]
+ public class Module {
+ //[XmlElement(ElementName="CompatibilityLevel")]
+ public string CompatibilityLevel { get; set; }
+ //[XmlElement(ElementName="SerialNumber")]
+ public string SerialNumber { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Hardware")]
+ public class Hardware {
+ //[XmlElement(ElementName="Module")]
+ public Module Module { get; set; }
+ }
+
+ //[XmlRoot(ElementName="OptionKeys")]
+ public class OptionKeys {
+ //[XmlElement(ElementName="Encryption")]
+ public string Encryption { get; set; }
+ //[XmlElement(ElementName="MultiSite")]
+ public string MultiSite { get; set; }
+ //[XmlElement(ElementName="RemoteMonitoring")]
+ public string RemoteMonitoring { get; set; }
+ }
+
+ //[XmlRoot(ElementName="State")]
+ public class State {
+ //[XmlElement(ElementName="NumberOfActiveCalls")]
+ public string NumberOfActiveCalls { get; set; }
+ //[XmlElement(ElementName="NumberOfInProgressCalls")]
+ public string NumberOfInProgressCalls { get; set; }
+ //[XmlElement(ElementName="NumberOfSuspendedCalls")]
+ public string NumberOfSuspendedCalls { get; set; }
+ }
+
+ //[XmlRoot(ElementName="SystemUnit")]
+ public class SystemUnit {
+ //[XmlElement(ElementName="Hardware")]
+ public Hardware Hardware { get; set; }
+ //[XmlElement(ElementName="ProductId")]
+ public string ProductId { get; set; }
+ //[XmlElement(ElementName="ProductPlatform")]
+ public string ProductPlatform { get; set; }
+ //[XmlElement(ElementName="ProductType")]
+ public string ProductType { get; set; }
+ //[XmlElement(ElementName="Software")]
+ public Software Software { get; set; }
+ //[XmlElement(ElementName="State")]
+ public State State { get; set; }
+ //[XmlElement(ElementName="Uptime")]
+ public string Uptime { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Time")]
+ public class Time {
+ //[XmlElement(ElementName="SystemTime")]
+ public string SystemTime { get; set; }
+ }
+
+ //[XmlRoot(ElementName="ContactMethod")]
+ public class ContactMethod {
+ //[XmlElement(ElementName="Number")]
+ public string Number { get; set; }
+ //[XmlAttribute(AttributeName="item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName="maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ }
+
+ //[XmlRoot(ElementName="ContactInfo")]
+ public class ContactInfo {
+ //[XmlElement(ElementName="ContactMethod")]
+ public List ContactMethod { get; set; }
+ //[XmlElement(ElementName="Name")]
+ public string Name { get; set; }
+ }
+
+ //[XmlRoot(ElementName="UserInterface")]
+ public class UserInterface {
+ //[XmlElement(ElementName="ContactInfo")]
+ public ContactInfo ContactInfo { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Connector")]
+ public class Connector {
+ //[XmlElement(ElementName="Connected")]
+ public string Connected { get; set; }
+ //[XmlElement(ElementName="SignalState")]
+ public string SignalState { get; set; }
+ //[XmlElement(ElementName="SourceId")]
+ public string SourceId { get; set; }
+ //[XmlElement(ElementName="Type")]
+ public string Type { get; set; }
+ //[XmlAttribute(AttributeName="item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName="maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ //[XmlElement(ElementName="ConnectedDevice")]
+ public ConnectedDevice ConnectedDevice { get; set; }
+ //[XmlElement(ElementName="MonitorRole")]
+ public string MonitorRole { get; set; }
+ //[XmlElement(ElementName="Resolution")]
+ public Resolution Resolution { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Resolution")]
+ public class Resolution {
+ //[XmlElement(ElementName="Height")]
+ public string Height { get; set; }
+ //[XmlElement(ElementName="RefreshRate")]
+ public string RefreshRate { get; set; }
+ //[XmlElement(ElementName="Width")]
+ public string Width { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Source")]
+ public class Source {
+ //[XmlElement(ElementName="ConnectorId")]
+ public string ConnectorId { get; set; }
+ //[XmlElement(ElementName="FormatStatus")]
+ public string FormatStatus { get; set; }
+ //[XmlElement(ElementName="FormatType")]
+ public string FormatType { get; set; }
+ //[XmlElement(ElementName="MediaChannelId")]
+ public string MediaChannelId { get; set; }
+ //[XmlElement(ElementName="Resolution")]
+ public Resolution Resolution { get; set; }
+ //[XmlAttribute(AttributeName="item")]
+ public string Item { get; set; }
+ //[XmlAttribute(AttributeName="maxOccurrence")]
+ public string MaxOccurrence { get; set; }
+ }
+
+ //[XmlRoot(ElementName="LayoutFamily")]
+ public class LayoutFamily {
+ //[XmlElement(ElementName="Local")]
+ public string Local { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Layout")]
+ public class Layout {
+ //[XmlElement(ElementName="LayoutFamily")]
+ public LayoutFamily LayoutFamily { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Selfview")]
+ public class Selfview {
+ //[XmlElement(ElementName="FullscreenMode")]
+ public string FullscreenMode { get; set; }
+ //[XmlElement(ElementName="Mode")]
+ public string Mode { get; set; }
+ //[XmlElement(ElementName="OnMonitorRole")]
+ public string OnMonitorRole { get; set; }
+ //[XmlElement(ElementName="PIPPosition")]
+ public string PIPPosition { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Video")]
+ public class Video {
+ //[XmlElement(ElementName="ActiveSpeaker")]
+ public ActiveSpeaker ActiveSpeaker { get; set; }
+ //[XmlElement(ElementName="Input")]
+ public Input Input { get; set; }
+ //[XmlElement(ElementName="Layout")]
+ public Layout Layout { get; set; }
+ //[XmlElement(ElementName="Monitors")]
+ public string Monitors { get; set; }
+ //[XmlElement(ElementName="Output")]
+ public Output Output { get; set; }
+ //[XmlElement(ElementName="Presentation")]
+ public Presentation Presentation { get; set; }
+ //[XmlElement(ElementName="Selfview")]
+ public Selfview Selfview { get; set; }
+ }
+
+ //[XmlRoot(ElementName="Status")]
+ public class Status {
+ //[XmlElement(ElementName="Audio")]
+ public Audio Audio { get; set; }
+ //[XmlElement(ElementName="Bookings")]
+ public Bookings Bookings { get; set; }
+ //[XmlElement(ElementName="Cameras")]
+ public Cameras Cameras { get; set; }
+ //[XmlElement(ElementName="Capabilities")]
+ public Capabilities Capabilities { get; set; }
+ //[XmlElement(ElementName="Conference")]
+ public Conference Conference { get; set; }
+ //[XmlElement(ElementName="Diagnostics")]
+ public Diagnostics Diagnostics { get; set; }
+ //[XmlElement(ElementName="Experimental")]
+ public Experimental Experimental { get; set; }
+ //[XmlElement(ElementName="H323")]
+ public H323 H323 { get; set; }
+ //[XmlElement(ElementName="HttpFeedback")]
+ public HttpFeedback HttpFeedback { get; set; }
+ //[XmlElement(ElementName="MediaChannels")]
+ public string MediaChannels { get; set; }
+ //[XmlElement(ElementName="Network")]
+ public Network Network { get; set; }
+ //[XmlElement(ElementName="NetworkServices")]
+ public NetworkServices NetworkServices { get; set; }
+ //[XmlElement(ElementName="Peripherals")]
+ public Peripherals Peripherals { get; set; }
+ //[XmlElement(ElementName="Provisioning")]
+ public Provisioning Provisioning { get; set; }
+ //[XmlElement(ElementName="Proximity")]
+ public Proximity Proximity { get; set; }
+ //[XmlElement(ElementName="RoomAnalytics")]
+ public RoomAnalytics RoomAnalytics { get; set; }
+ //[XmlElement(ElementName="SIP")]
+ public SIP SIP { get; set; }
+ //[XmlElement(ElementName="Security")]
+ public Security Security { get; set; }
+ //[XmlElement(ElementName="Standby")]
+ public Standby Standby { get; set; }
+ //[XmlElement(ElementName="SystemUnit")]
+ public SystemUnit SystemUnit { get; set; }
+ //[XmlElement(ElementName="Time")]
+ public Time Time { get; set; }
+ //[XmlElement(ElementName="UserInterface")]
+ public UserInterface UserInterface { get; set; }
+ //[XmlElement(ElementName="Video")]
+ public Video Video { get; set; }
+ //[XmlAttribute(AttributeName="product")]
+ public string Product { get; set; }
+ //[XmlAttribute(AttributeName="version")]
+ public string Version { get; set; }
+ //[XmlAttribute(AttributeName="apiVersion")]
+ public string ApiVersion { get; set; }
+ }
+
+ }
+}
diff --git a/Essentials Devices Common/Essentials Devices Common/VC/VideoCodecBase.cs b/Essentials Devices Common/Essentials Devices Common/VC/VideoCodecBase.cs
new file mode 100644
index 00000000..c0eddc21
--- /dev/null
+++ b/Essentials Devices Common/Essentials Devices Common/VC/VideoCodecBase.cs
@@ -0,0 +1,105 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+
+using PepperDash.Core;
+using PepperDash.Essentials.Core;
+
+namespace PepperDash.Essentials.Devices.VideoCodec
+{
+ public abstract class VideoCodecBase : Device, IRoutingSinkWithSwitching, IUsageTracking, IHasDialer //, ICodecAudio
+ {
+ #region IUsageTracking Members
+
+ public UsageTracking UsageTracker { get; set; }
+
+ #endregion
+
+ #region IRoutingInputs Members
+
+ public RoutingPortCollection InputPorts { get; private set; }
+
+ #endregion
+
+ public BoolFeedback InCallFeedback { get; protected set; }
+ public BoolFeedback IncomingCallFeedback { get; protected set; }
+
+ abstract protected Func InCallFeedbackFunc { get; }
+ abstract protected Func IncomingCallFeedbackFunc { get; }
+ abstract protected Func TransmitMuteFeedbackFunc { get; }
+ abstract protected Func ReceiveMuteFeedbackFunc { get; }
+ abstract protected Func PrivacyModeFeedbackFunc { get; }
+
+ public VideoCodecBase(string key, string name)
+ : base(key, name)
+ {
+ InCallFeedback = new BoolFeedback(InCallFeedbackFunc);
+ IncomingCallFeedback = new BoolFeedback(IncomingCallFeedbackFunc);
+ ReceiveMuteIsOnFeedback = new BoolFeedback(ReceiveMuteFeedbackFunc);
+ TransmitMuteIsOnFeedback = new BoolFeedback(TransmitMuteFeedbackFunc);
+ PrivacyModeIsOnFeedback = new BoolFeedback(PrivacyModeFeedbackFunc);
+
+ InputPorts = new RoutingPortCollection();
+
+ InCallFeedback.OutputChange += new EventHandler(InCallFeedback_OutputChange);
+ }
+
+ void InCallFeedback_OutputChange(object sender, EventArgs e)
+ {
+ if (UsageTracker != null)
+ {
+ if (InCallFeedback.BoolValue)
+ UsageTracker.StartDeviceUsage();
+ else
+ UsageTracker.EndDeviceUsage();
+ }
+ }
+
+ public abstract void Dial();
+ public abstract void EndCall();
+ public abstract void AcceptCall();
+ public abstract void RejectCall();
+
+ public virtual List Feedbacks
+ {
+ get
+ {
+ return new List
+ {
+ InCallFeedback,
+ IncomingCallFeedback,
+ ReceiveMuteIsOnFeedback,
+ TransmitMuteIsOnFeedback,
+ PrivacyModeIsOnFeedback
+ };
+ }
+ }
+
+ public abstract void ExecuteSwitch(object selector);
+
+ #region ICodecAudio Members
+
+ public IntFeedback ReceiveLevelFeedback { get; private set; }
+ public BoolFeedback ReceiveMuteIsOnFeedback { get; private set; }
+ public abstract void ReceiveMuteOff();
+ public abstract void ReceiveMuteOn();
+ public abstract void ReceiveMuteToggle();
+ public abstract void SetReceiveVolume(ushort level);
+
+ public IntFeedback TransmitLevelFeedback { get; private set; }
+ public BoolFeedback TransmitMuteIsOnFeedback { get; private set; }
+ public abstract void TransmitMuteOff();
+ public abstract void TransmitMuteOn();
+ public abstract void TransmitMuteToggle();
+ public abstract void SetTransmitVolume(ushort level);
+
+ public abstract void PrivacyModeOn();
+ public abstract void PrivacyModeOff();
+ public abstract void PrivacyModeToggle();
+ public BoolFeedback PrivacyModeIsOnFeedback { get; private set; }
+
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/Essentials/PepperDashEssentials/ControlSystem.cs b/Essentials/PepperDashEssentials/ControlSystem.cs
index ec83f224..16451812 100644
--- a/Essentials/PepperDashEssentials/ControlSystem.cs
+++ b/Essentials/PepperDashEssentials/ControlSystem.cs
@@ -57,6 +57,17 @@ namespace PepperDash.Essentials
//PortalSync = new PepperDashPortalSyncClient();
+
+ // CODEC TESTING
+ GenericSshClient TestCodecClient = new GenericSshClient("TestCodec-1--SshClient", "10.11.50.135", 22, "crestron", "2H3Zu&OvgXp6");
+
+ PepperDash.Essentials.Devices.VideoCodec.Cisco.CiscoCodec TestCodec =
+ new PepperDash.Essentials.Devices.VideoCodec.Cisco.CiscoCodec("TestCodec-1", "Cisco Spark Room Kit", TestCodecClient, 8080);
+
+ TestCodec.CustomActivate();
+
+ // CODEC TESTING
+
Debug.Console(0, "Starting Essentials load from configuration");
ConfigReader.LoadConfig2();
LoadDevices();
diff --git a/Essentials/PepperDashEssentials/Fusion/FusionEventHandlers.cs b/Essentials/PepperDashEssentials/Fusion/FusionEventHandlers.cs
index 9825b603..7c7b5168 100644
--- a/Essentials/PepperDashEssentials/Fusion/FusionEventHandlers.cs
+++ b/Essentials/PepperDashEssentials/Fusion/FusionEventHandlers.cs
@@ -8,7 +8,7 @@ namespace PepperDash.Essentials.Fusion
{
public class ScheduleChangeEventArgs : EventArgs
{
- public RoomSchedule MyProperty { get; set; }
+ public RoomSchedule Schedule { get; set; }
}
public class MeetingChangeEventArgs : EventArgs
diff --git a/Essentials/PepperDashEssentials/Fusion/FusionSystemController.cs b/Essentials/PepperDashEssentials/Fusion/FusionSystemController.cs
index 72577ef4..f2568b8c 100644
--- a/Essentials/PepperDashEssentials/Fusion/FusionSystemController.cs
+++ b/Essentials/PepperDashEssentials/Fusion/FusionSystemController.cs
@@ -25,9 +25,9 @@ namespace PepperDash.Essentials.Fusion
{
public class EssentialsHuddleSpaceFusionSystemController : Device
{
- //public event EventHandler ScheduleChange;
- //public event EventHandler MeetingEndWarning;
- //public event EventHandler NextMeetingBeginWarning;
+ public event EventHandler ScheduleChange;
+ public event EventHandler MeetingEndWarning;
+ public event EventHandler NextMeetingBeginWarning;
FusionRoom FusionRoom;
EssentialsHuddleSpaceRoom Room;
@@ -788,6 +788,15 @@ namespace PepperDash.Essentials.Fusion
if (!IsRegisteredForSchedulePushNotifications)
PollTimer.Reset(SchedulePollInterval, SchedulePollInterval);
+
+ // Fire Schedule Change Event
+ var handler = ScheduleChange;
+
+ if (handler != null)
+ {
+ handler(this, new ScheduleChangeEventArgs() { Schedule = CurrentSchedule });
+ }
+
}
}
@@ -806,20 +815,26 @@ namespace PepperDash.Essentials.Fusion
}
+ ///
+ /// Prints today's schedule to console for debugging
+ ///
void PrintTodaysSchedule()
{
- if (CurrentSchedule.Meetings.Count > 0)
+ if (Debug.Level > 1)
{
- Debug.Console(1, this, "Today's Schedule for '{0}'\n", Room.Name);
-
- foreach (Event e in CurrentSchedule.Meetings)
+ if (CurrentSchedule.Meetings.Count > 0)
{
- Debug.Console(1, this, "Subject: {0}", e.Subject);
- Debug.Console(1, this, "Organizer: {0}", e.Organizer);
- Debug.Console(1, this, "MeetingID: {0}", e.MeetingID);
- Debug.Console(1, this, "Start Time: {0}", e.dtStart);
- Debug.Console(1, this, "End Time: {0}", e.dtEnd);
- Debug.Console(1, this, "Duration: {0}\n", e.DurationInMinutes);
+ Debug.Console(1, this, "Today's Schedule for '{0}'\n", Room.Name);
+
+ foreach (Event e in CurrentSchedule.Meetings)
+ {
+ Debug.Console(1, this, "Subject: {0}", e.Subject);
+ Debug.Console(1, this, "Organizer: {0}", e.Organizer);
+ Debug.Console(1, this, "MeetingID: {0}", e.MeetingID);
+ Debug.Console(1, this, "Start Time: {0}", e.dtStart);
+ Debug.Console(1, this, "End Time: {0}", e.dtEnd);
+ Debug.Console(1, this, "Duration: {0}\n", e.DurationInMinutes);
+ }
}
}
}
@@ -955,24 +970,23 @@ namespace PepperDash.Essentials.Fusion
string attrName = null;
uint attrNum = Convert.ToUInt32(keyNum);
-
-
- if (dev is BasicTriListWithSmartObject)
+ if (dev is EssentialsTouchpanelController)
{
- if (attrNum > 10)
- continue;
- attrName = "Online - Touch Panel " + attrNum;
- attrNum += 150;
- }
- // add xpanel here
-
- //if (dev is Crestron.SimplSharpPro.UI.XpanelForSmartGraphics)
- //{
- // if (attrNum > 10)
- // continue;
- // attrName = "Online - XPanel " + attrNum;
- // attrNum += 160;
- //}
+ if ((dev as EssentialsTouchpanelController).Panel is Crestron.SimplSharpPro.DeviceSupport.TswFt5Button)
+ {
+ if (attrNum > 10)
+ continue;
+ attrName = "Online - Touch Panel " + attrNum;
+ attrNum += 150;
+ }
+ else if ((dev as EssentialsTouchpanelController).Panel is Crestron.SimplSharpPro.UI.XpanelForSmartGraphics)
+ {
+ if (attrNum > 10)
+ continue;
+ attrName = "Online - XPanel " + attrNum;
+ attrNum += 160;
+ }
+ }
//else
if (dev is DisplayBase)