diff --git a/Essentials Core/PepperDashEssentialsBase/Devices/IHasSharing.cs b/Essentials Core/PepperDashEssentialsBase/Devices/IHasSharing.cs
index 2266b919..317a188a 100644
--- a/Essentials Core/PepperDashEssentialsBase/Devices/IHasSharing.cs
+++ b/Essentials Core/PepperDashEssentialsBase/Devices/IHasSharing.cs
@@ -6,6 +6,9 @@ using Crestron.SimplSharp;
namespace PepperDash.Essentials.Core
{
+ ///
+ /// Indicates that the device has the capability to share sources outside the local room
+ ///
public interface IHasSharing
{
diff --git a/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs b/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs
index 6eab587d..42ebc248 100644
--- a/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs
+++ b/Essentials Core/PepperDashEssentialsBase/Devices/IVolumeAndAudioInterfaces.cs
@@ -73,6 +73,8 @@ namespace PepperDash.Essentials.Core
///
public interface ICodecAudio
{
+ // ICodecReceiveVolume
+ // Break this out into 3 interfaces
void SetReceiveVolume(ushort level);
void ReceiveMuteOn();
void ReceiveMuteOff();
@@ -80,6 +82,7 @@ namespace PepperDash.Essentials.Core
IntFeedback ReceiveLevelFeedback { get; }
BoolFeedback ReceiveMuteIsOnFeedback { get; }
+ // ICodecTransmitVolume
void SetTransmitVolume(ushort level);
void TransmitMuteOn();
void TransmitMuteOff();
@@ -87,6 +90,7 @@ namespace PepperDash.Essentials.Core
IntFeedback TransmitLevelFeedback { get; }
BoolFeedback TransmitMuteIsOnFeedback { get; }
+ // ICodecPrivacy
void PrivacyModeOn();
void PrivacyModeOff();
void PrivacyModeToggle();
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 751e3656..6d2622f7 100644
--- a/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.csproj
+++ b/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.csproj
@@ -127,8 +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..982865cd
--- /dev/null
+++ b/Essentials Devices Common/Essentials Devices Common/VC/Cisco/CiscoCodec.cs
@@ -0,0 +1,154 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Crestron.SimplSharp;
+using Crestron.SimplSharp.Net.Https;
+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
+{
+ 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 HttpsClient Client;
+
+ private HttpApiServer Server;
+
+ // Constructor for IBasicCommunication
+ public CiscoCodec(string key, string name, IBasicCommunication comm)
+ : base(key, name)
+ {
+ Communication = comm;
+ Communication.TextReceived += new EventHandler(Communication_TextReceived);
+
+ CodecObtp = new CiscoOneButtonToPush();
+
+ PhoneBook = new Corporate_Phone_Book();
+
+ Client = new HttpsClient();
+
+ Server = new HttpApiServer();
+
+ }
+ public override bool CustomActivate()
+ {
+ Debug.Console(1, this, "Starting Cisco API Server");
+
+ Server.Start(8080);
+
+ Server.ApiRequest += new EventHandler(Server_ApiRequest);
+
+ CommunicationMonitor = new GenericCommunicationMonitor(this, Communication, 2000, 120000, 300000, "xStatus SystemUnit Software Version\r");
+ DeviceManager.AddDevice(CommunicationMonitor);
+
+ CodecObtp.Initialize();
+
+ CodecObtp.GetMeetings();
+
+ return base.CustomActivate();
+ }
+
+ 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 = "HelloWorld";
+ }
+
+ 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 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 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..7af43195
--- /dev/null
+++ b/Essentials Devices Common/Essentials Devices Common/VC/Cisco/HttpApiServer.cs
@@ -0,0 +1,127 @@
+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, 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);
+ }
+ // Basic file handling
+ else
+ {
+ // Default path
+ //if (path.EndsWith("/")) path = path + "index.html";
+ //if (string.IsNullOrEmpty(Path.GetExtension(path))) path = path + "/index.html";
+
+ //string filePath = path.Replace('/', '\\');
+ //string localPath = string.Format(@"{0}{1}", HtmlRoot, filePath);
+ //if (File.Exists(localPath))
+ //{
+ // args.Response.Header.ContentType = GetContentType(new FileInfo(localPath).Extension);
+ // args.Response.ContentStream = new FileStream(localPath, FileMode.Open, FileAccess.Read);
+ // //args.Response.CloseStream = true;
+ //}
+ //else
+ //{
+ // args.Response.ContentString = string.Format("Not found: '{0}'", filePath);
+ // args.Response.Code = 404;
+ //}
+ }
+ }
+
+ 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/CiscoCodec.cs b/Essentials Devices Common/Essentials Devices Common/VC/CiscoCodec.cs
deleted file mode 100644
index cf13ff1e..00000000
--- a/Essentials Devices Common/Essentials Devices Common/VC/CiscoCodec.cs
+++ /dev/null
@@ -1,119 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using Crestron.SimplSharp;
-using Cisco_One_Button_To_Push;
-using Cisco_SX80_Corporate_Phone_Book;
-
-namespace PepperDash.Essentials.Devices.VideoCodec
-{
- public class CiscoCodec : VideoCodecBase
- {
- private CiscoOneButtonToPush Codec;
-
- private Corporate_Phone_Book PhoneBook;
-
- public CiscoCodec(string key, string name)
- : base(key, name)
- {
- Codec = new CiscoOneButtonToPush();
-
- PhoneBook = new Corporate_Phone_Book();
-
- Codec.Initialize();
-
- Codec.GetMeetings();
- }
-
- public override void ExecuteSwitch(object selector)
- {
- throw new NotImplementedException();
- }
-
- protected override Func InCallFeedbackFunc
- {
- get { throw new NotImplementedException(); }
- }
-
- protected override Func TransmitMuteFeedbackFunc
- {
- get { throw new NotImplementedException(); }
- }
-
- protected override Func ReceiveMuteFeedbackFunc
- {
- get { throw new NotImplementedException(); }
- }
-
- protected override Func PrivacyModeFeedbackFunc
- {
- get { throw new NotImplementedException(); }
- }
-
- public override void Dial()
- {
- throw new NotImplementedException();
- }
-
- public override void EndCall()
- {
- throw new NotImplementedException();
- }
-
- public override void ReceiveMuteOff()
- {
- throw new NotImplementedException();
- }
-
- public override void ReceiveMuteOn()
- {
- throw new NotImplementedException();
- }
-
- public override void ReceiveMuteToggle()
- {
- throw new NotImplementedException();
- }
-
- public override void SetReceiveVolume(ushort level)
- {
- throw new NotImplementedException();
- }
-
- public override void TransmitMuteOff()
- {
- throw new NotImplementedException();
- }
-
- public override void TransmitMuteOn()
- {
- throw new NotImplementedException();
- }
-
- public override void TransmitMuteToggle()
- {
- throw new NotImplementedException();
- }
-
- public override void SetTransmitVolume(ushort level)
- {
- throw new NotImplementedException();
- }
-
- public override void PrivacyModeOn()
- {
- throw new NotImplementedException();
- }
-
- public override void PrivacyModeOff()
- {
- throw new NotImplementedException();
- }
-
- public override void PrivacyModeToggle()
- {
- throw new NotImplementedException();
- }
- }
-}
\ No newline at end of file
diff --git a/Essentials/PepperDashEssentials/ControlSystem.cs b/Essentials/PepperDashEssentials/ControlSystem.cs
index ec83f224..7255b0df 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, "admin", "");
+
+ PepperDash.Essentials.Devices.VideoCodec.Cisco.CiscoCodec TestCodec =
+ new PepperDash.Essentials.Devices.VideoCodec.Cisco.CiscoCodec("TestCodec-1", "Cisco Spark Room Kit", TestCodecClient);
+
+ TestCodec.CustomActivate();
+
+ // CODEC TESTING
+
Debug.Console(0, "Starting Essentials load from configuration");
ConfigReader.LoadConfig2();
LoadDevices();