diff --git a/Essentials Core/PepperDashEssentialsBase/Devices/IHasDialer.cs b/Essentials Core/PepperDashEssentialsBase/Devices/CodecInterfaces.cs similarity index 64% rename from Essentials Core/PepperDashEssentialsBase/Devices/IHasDialer.cs rename to Essentials Core/PepperDashEssentialsBase/Devices/CodecInterfaces.cs index c4682abd..5135ac07 100644 --- a/Essentials Core/PepperDashEssentialsBase/Devices/IHasDialer.cs +++ b/Essentials Core/PepperDashEssentialsBase/Devices/CodecInterfaces.cs @@ -18,8 +18,28 @@ namespace PepperDash.Essentials.Core void AcceptCall(); void RejectCall(); + void SendDtmf(string digit); + BoolFeedback InCallFeedback { get; } BoolFeedback IncomingCallFeedback { get; } + + + } + + public interface IHasCallHistory + { + // Add recent calls list + } + + public interface IHasDirectory + { + + } + + public interface IHasObtp + { + + // Upcoming Meeting warning event } } \ No newline at end of file diff --git a/Essentials Core/PepperDashEssentialsBase/Devices/IHasSharing.cs b/Essentials Core/PepperDashEssentialsBase/Devices/IHasSharing.cs index 317a188a..675c11c3 100644 --- a/Essentials Core/PepperDashEssentialsBase/Devices/IHasSharing.cs +++ b/Essentials Core/PepperDashEssentialsBase/Devices/IHasSharing.cs @@ -11,7 +11,9 @@ namespace PepperDash.Essentials.Core /// public interface IHasSharing { + void StartSharing(); + void StopSharing(); - BoolFeedback SharingSourceFeedback { get; } + StringFeedback SharingSourceFeedback { get; } } } \ No newline at end of file diff --git a/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.csproj b/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.csproj index e06834ec..94e66af1 100644 --- a/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.csproj +++ b/Essentials Core/PepperDashEssentialsBase/PepperDash_Essentials_Core.csproj @@ -103,7 +103,7 @@ - + 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 f7a4fab5..9edcb434 100644 --- a/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.csproj +++ b/Essentials Devices Common/Essentials Devices Common/Essentials Devices Common.csproj @@ -46,9 +46,9 @@ off - + False - ..\..\..\Crestron Cisco OBTP\OBTP\bin\Cisco One Button To Push.dll + ..\..\..\PTD_Cisco_One_Button_To_Push\bin\Cisco One Button To Push.dll False @@ -127,7 +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 deleted file mode 100644 index 56397284..00000000 --- a/Essentials Devices Common/Essentials Devices Common/VC/Cisco/CiscoCodec.cs +++ /dev/null @@ -1,388 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; -using Crestron.SimplSharp.Net.Https; -using Crestron.SimplSharp.CrestronXml; -using Crestron.SimplSharp.CrestronXml.Serialization; -using Newtonsoft.Json; -using Cisco_One_Button_To_Push; -using Cisco_SX80_Corporate_Phone_Book; - -using PepperDash.Core; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Devices.VideoCodec.Cisco -{ - enum eCommandType { SessionStart, SessionEnd, Command, GetStatus, GetConfiguration }; - - public class CiscoCodec : VideoCodecBase - { - public IBasicCommunication Communication { get; private set; } - - public StatusMonitorBase CommunicationMonitor { get; private set; } - - private CiscoOneButtonToPush CodecObtp; - - private Corporate_Phone_Book PhoneBook; - - private CiscoCodecConfiguration.Configuration CodecConfiguration; - - private CiscoCodecStatus.Status CodecStatus; - - private HttpsClient Client; - - private HttpApiServer Server; - - private int ServerPort; - - private string CodecUrl; - - private string HttpSessionId; - - private string FeedbackRegistrationExpression; - - // Constructor for IBasicCommunication - public CiscoCodec(string key, string name, IBasicCommunication comm, int serverPort) - : base(key, name) - { - Communication = comm; - Communication.TextReceived += new EventHandler(Communication_TextReceived); - - ServerPort = serverPort; - - CodecObtp = new CiscoOneButtonToPush(); - - PhoneBook = new Corporate_Phone_Book(); - - CodecConfiguration = new CiscoCodecConfiguration.Configuration(); - - CodecStatus = new CiscoCodecStatus.Status(); - - Client = new HttpsClient(); - - Server = new HttpApiServer(); - - } - - /// - /// Starts the HTTP feedback server and syncronizes state of codec - /// - /// - public override bool CustomActivate() - { - Debug.Console(1, this, "Starting Cisco API Server"); - - Server.Start(ServerPort); - - Server.ApiRequest += new EventHandler(Server_ApiRequest); - - CodecUrl = string.Format("http://{0}", (Communication as GenericSshClient).Hostname); - - CommunicationMonitor = new GenericCommunicationMonitor(this, Communication, 2000, 120000, 300000, "xStatus SystemUnit Software Version\r"); - DeviceManager.AddDevice(CommunicationMonitor); - - Client = new HttpsClient(); - - Client.Verbose = true; - Client.KeepAlive = true; - - - // Temp feedback registration - - FeedbackRegistrationExpression = - "1" + - string.Format("http://{0}:{1}/cisco/api", CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_IP_ADDRESS, 0), ServerPort) + - "JSON" + - "/Configuration" + - "/Event/CallDisconnect" + - "/Status/Call" + - "" + - "" + - ""; - - StartHttpsSession(); - - //CodecObtp.Initialize(); - - //CodecObtp.GetMeetings(); - - //PhoneBook.DownloadPhoneBook(Corporate_Phone_Book.ePhoneBookLocation.Corporate); - - return base.CustomActivate(); - } - - private void StartHttpsSession() - { - SendHttpCommand("", eCommandType.SessionStart); - } - - private void EndHttpsSession() - { - SendHttpCommand("", eCommandType.SessionEnd); - } - - private void SendHttpCommand(string command, eCommandType commandType) - { - HttpsClientRequest request = new HttpsClientRequest(); - - string urlSuffix = null; - - Client.UserName = null; - Client.Password = null; - - Client.PeerVerification = false; - Client.HostVerification = false; - - request.RequestType = RequestType.Post; - - if(!string.IsNullOrEmpty(HttpSessionId)) - request.Header.SetHeaderValue("Cookie", HttpSessionId); - - switch (commandType) - { - case eCommandType.Command: - { - urlSuffix = "/putxml"; - request.ContentString = command; - request.Header.SetHeaderValue("Content-Type", "text/xml"); - break; - } - case eCommandType.SessionStart: - { - - urlSuffix = "/xmlapi/session/begin"; - - Client.UserName = (Communication as GenericSshClient).Username; - Client.Password = (Communication as GenericSshClient).Password; - - break; - } - case eCommandType.SessionEnd: - { - urlSuffix = "/xmlapi/session/end"; - request.Header.SetHeaderValue("Cookie", HttpSessionId); - break; - } - case eCommandType.GetStatus: - { - request.RequestType = RequestType.Get; - request.Header.SetHeaderValue("Content-Type", "text/xml"); - urlSuffix = "/getxml?location=/Status"; - break; - } - case eCommandType.GetConfiguration: - { - request.RequestType = RequestType.Get; - request.Header.SetHeaderValue("Content-Type", "text/xml"); - urlSuffix = "/getxml?location=/Configuration"; - break; - } - } - - var requestUrl = CodecUrl + urlSuffix; - request.Header.RequestVersion = "HTTP/1.1"; - request.Url.Parse(requestUrl); - - Debug.Console(1, this, "Sending HTTP request to Cisco Codec at {0}\nHeader:\n{1}\nContent:\n{2}", requestUrl, request.Header, request.ContentString); - - Client.DispatchAsync(request, PostConnectionCallback); - } - - void PostConnectionCallback(HttpsClientResponse resp, HTTP_CALLBACK_ERROR err) - { - try - { - if (resp != null) - { - if (resp.Code == 200) - { - Debug.Console(1, this, "Http Post to Cisco Codec Successful. Code: {0}\nContent: {1}", resp.Code, resp.ContentString); - - if (resp.ContentString.IndexOf("") > 1) - { - // Get the initial configruation for sync purposes - SendHttpCommand("", eCommandType.GetConfiguration); - } - else - { - try - { - if (resp.ContentString.IndexOf("") > -1) - { - XmlReaderSettings settings = new XmlReaderSettings(); - - XmlReader reader = new XmlReader(resp.ContentString, settings); - - CodecConfiguration = CrestronXMLSerialization.DeSerializeObject(reader); - - Debug.Console(1, this, "Product Name: {0} Software Version: {1} ApiVersion: {2}", CodecConfiguration.Product, CodecConfiguration.Version, CodecConfiguration.ApiVersion); - - // Get the initial status for sync purposes - SendHttpCommand("", eCommandType.GetStatus); - } - else if (resp.ContentString.IndexOf("") > -1) - { - XmlReaderSettings settings = new XmlReaderSettings(); - - XmlReader reader = new XmlReader(resp.ContentString, settings); - - CodecStatus = CrestronXMLSerialization.DeSerializeObject(reader); - - Debug.Console(1, this, "Product Name: {0} Software Version: {1} ApiVersion: {2} Volume: {3}", CodecStatus.Product, CodecStatus.Version, CodecStatus.ApiVersion, CodecStatus.Audio.Volume); - } - } - catch (Exception ex) - { - Debug.Console(1, this, "Error Deserializing XML document from codec: {0}", ex); - } - } - } - else if (resp.Code == 204) - { - Debug.Console(1, this, "Response Code: {0}\nHeader:\n{1}Content:\n{1}", resp.Code, resp.Header, resp.ContentString); - - HttpSessionId = resp.Header.GetHeaderValue("Set-Cookie"); - //var chunks = HttpSessionId.Split(';'); - //HttpSessionId = chunks[0]; - //HttpSessionId = HttpSessionId.Substring(HttpSessionId.IndexOf("=") + 1); - - - // Register for feedbacks once we have a valid session - SendHttpCommand(FeedbackRegistrationExpression, eCommandType.Command); - } - else - { - Debug.Console(1, this, "Response Code: {0}\nHeader:\n{1}Content:\n{1}Err:\n{2}", resp.Code, resp.Header, resp.ContentString, err); - } - } - else - Debug.Console(1, this, "Null response received from server"); - } - catch (Exception e) - { - Debug.Console(1, this, "Error Initializing HTTPS Client: {0}", e); - } - } - - void Server_ApiRequest(object sender, Crestron.SimplSharp.Net.Http.OnHttpRequestArgs e) - { - Debug.Console(1, this, "Api Reqeust from Codec: {0}", e.Request.ContentString); - e.Response.Code = 200; - e.Response.ContentString = "OK"; - - try - { - // Serializer settings. We want to ignore null values and mising members - JsonSerializerSettings settings = new JsonSerializerSettings(); - settings.NullValueHandling = NullValueHandling.Ignore; - settings.MissingMemberHandling = MissingMemberHandling.Ignore; - - if (e.Request.ContentString.IndexOf("\"Configuration\":{") > -1) - CodecConfiguration = JsonConvert.DeserializeObject(e.Request.ContentString, settings); - else if (e.Request.ContentString.IndexOf("\"Status\":{") > -1) - CodecStatus = JsonConvert.DeserializeObject(e.Request.ContentString, settings); - } - catch (Exception ex) - { - Debug.Console(1, this, "Error Deserializing feedback from codec: {0}", ex); - } - } - - void Communication_TextReceived(object sender, GenericCommMethodReceiveTextArgs e) - { - //CodecObtp. - } - - public override void ExecuteSwitch(object selector) - { - throw new NotImplementedException(); - } - - protected override Func InCallFeedbackFunc { get { return () => false; } } - - protected override Func IncomingCallFeedbackFunc { get { return () => false; } } - - protected override Func TransmitMuteFeedbackFunc { get { return () => false; } } - - protected override Func ReceiveMuteFeedbackFunc { get { return () => false; } } - - protected override Func PrivacyModeFeedbackFunc { get { return () => false; } } - - public override void Dial() - { - - } - - public override void EndCall() - { - - } - - public override void AcceptCall() - { - - } - - public override void RejectCall() - { - - } - - public override void ReceiveMuteOff() - { - - } - - public override void ReceiveMuteOn() - { - - } - - public override void ReceiveMuteToggle() - { - - } - - public override void SetReceiveVolume(ushort level) - { - - } - - public override void TransmitMuteOff() - { - - } - - public override void TransmitMuteOn() - { - - } - - public override void TransmitMuteToggle() - { - - } - - public override void SetTransmitVolume(ushort level) - { - - } - - public override void PrivacyModeOn() - { - - } - - public override void PrivacyModeOff() - { - - } - - public override void PrivacyModeToggle() - { - - } - } -} \ No newline at end of file diff --git a/Essentials Devices Common/Essentials Devices Common/VC/Cisco/Configuration.cs b/Essentials Devices Common/Essentials Devices Common/VC/Cisco/Configuration.cs deleted file mode 100644 index a88b9b70..00000000 --- a/Essentials Devices Common/Essentials Devices Common/VC/Cisco/Configuration.cs +++ /dev/null @@ -1,1895 +0,0 @@ -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/Status.cs b/Essentials Devices Common/Essentials Devices Common/VC/Cisco/Status.cs deleted file mode 100644 index ecf54edd..00000000 --- a/Essentials Devices Common/Essentials Devices Common/VC/Cisco/Status.cs +++ /dev/null @@ -1,872 +0,0 @@ -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/CiscoCodec.cs b/Essentials Devices Common/Essentials Devices Common/VC/CiscoCodec/CiscoCodec.cs new file mode 100644 index 00000000..048462a6 --- /dev/null +++ b/Essentials Devices Common/Essentials Devices Common/VC/CiscoCodec/CiscoCodec.cs @@ -0,0 +1,642 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Crestron.SimplSharp; +using Crestron.SimplSharp.Net.Https; +using Crestron.SimplSharp.CrestronXml; +using Crestron.SimplSharp.CrestronXml.Serialization; +using Newtonsoft.Json; +using Cisco_One_Button_To_Push; +using Cisco_SX80_Corporate_Phone_Book; + +using PepperDash.Core; +using PepperDash.Essentials.Core; + +namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco +{ + enum eCommandType { SessionStart, SessionEnd, Command, GetStatus, GetConfiguration }; + + public class CiscoCodec : VideoCodecBase + { + public IBasicCommunication Communication { get; private set; } + public CommunicationGather PortGather { get; private set; } + public CommunicationGather JsonGather { get; private set; } + + public StatusMonitorBase CommunicationMonitor { get; private set; } + + private CiscoOneButtonToPush CodecObtp; + + private Corporate_Phone_Book PhoneBook; + + private CiscoCodecConfiguration.RootObject CodecConfiguration; + + private CiscoCodecStatus.RootObject CodecStatus; + + protected override Func VolumeLevelFeedbackFunc + { + get + { + return () => CodecStatus.Status.Audio.Volume.IntValue; + } + } + + //private HttpsClient Client; + + //private HttpApiServer Server; + + //private int ServerPort; + + //private string CodecUrl; + + //private string HttpSessionId; + + //private string FeedbackRegistrationExpression; + + private string CliFeedbackRegistrationExpression; + + private CodecSyncState SyncState; + + private StringBuilder JsonMessage; + + private bool JsonFeedbackMessageIsIncoming; + + string Delimiter = "\r\n"; + + // Constructor for IBasicCommunication + public CiscoCodec(string key, string name, IBasicCommunication comm, int serverPort) + : base(key, name) + { + Communication = comm; + + SyncState = new CodecSyncState(key + "--sync"); + + PortGather = new CommunicationGather(Communication, "\r\n"); + PortGather.IncludeDelimiter = true; + PortGather.LineReceived += this.Port_LineReceived; + + //JsonGather = new CommunicationGather(Communication, "}\r\n\r\n"); + //JsonGather.IncludeDelimiter = true; + //JsonGather.LineReceived += new EventHandler(JsonGather_LineReceived); + + Communication.TextReceived += new EventHandler(Communication_TextReceived); + + //ServerPort = serverPort; + + CodecObtp = new CiscoOneButtonToPush(); + + PhoneBook = new Corporate_Phone_Book(); + + CodecConfiguration = new CiscoCodecConfiguration.RootObject(); + + CodecStatus = new CiscoCodecStatus.RootObject(); + + CodecStatus.Status.Audio.Volume.ValueChangedAction = VolumeLevelFeedback.FireUpdate; + + //Client = new HttpsClient(); + + //Server = new HttpApiServer(); + } + + /// + /// Starts the HTTP feedback server and syncronizes state of codec + /// + /// + public override bool CustomActivate() + { + CrestronConsole.AddNewConsoleCommand(SendText, "send" + Key, "", ConsoleAccessLevelEnum.AccessOperator); + + Communication.Connect(); + var socket = Communication as ISocketStatus; + if (socket != null) + { + socket.ConnectionChange += new EventHandler(socket_ConnectionChange); + } + Debug.Console(1, this, "Starting Cisco API Server"); + + //Server.Start(ServerPort); + + //Server.ApiRequest += new EventHandler(Server_ApiRequest); + + //CodecUrl = string.Format("http://{0}", (Communication as GenericSshClient).Hostname); + + CommunicationMonitor = new GenericCommunicationMonitor(this, Communication, 2000, 120000, 300000, "xStatus SystemUnit Software Version\r"); + DeviceManager.AddDevice(CommunicationMonitor); + + //Client = new HttpsClient(); + + //Client.Verbose = true; + //Client.KeepAlive = true; + + + // Temp feedback registration + + //FeedbackRegistrationExpression = + // "1" + + // string.Format("http://{0}:{1}/cisco/api", CrestronEthernetHelper.GetEthernetParameter(CrestronEthernetHelper.ETHERNET_PARAMETER_TO_GET.GET_CURRENT_IP_ADDRESS, 0), ServerPort) + + // "JSON" + + // "/Configuration" + + // "/Event/CallDisconnect" + + // "/Status/Call" + + // "" + + // "" + + // ""; + + string prefix = "xFeedback register "; + CliFeedbackRegistrationExpression = + prefix + "/Configuration" + Delimiter + + prefix + "/Status/Audio" + Delimiter + + prefix + "/Status/Call" + Delimiter + + prefix + "/Status/Cameras/SpeakerTrack" + Delimiter + + prefix + "/Status/RoomAnalytics" + Delimiter + + prefix + "/Status/Standby" + Delimiter + + prefix + "/Status/Video/Selfview" + Delimiter + + prefix + "/Bookings" + Delimiter + + prefix + "/Event/CallDisconnect" + Delimiter; + + //StartHttpsSession(); + + //CodecObtp.Initialize(); + + //CodecObtp.GetMeetings(); + + //PhoneBook.DownloadPhoneBook(Corporate_Phone_Book.ePhoneBookLocation.Corporate); + + return base.CustomActivate(); + } + + void socket_ConnectionChange(object sender, GenericSocketStatusChageEventArgs e) + { + // Reset sync status on disconnect + if (!e.Client.IsConnected) + SyncState.CodecDisconnected(); + } + + /// + /// Gathers responses from the codec (including the delimiter. Responses are checked to see if they contain JSON data and if so, the data is collected until a complete JSON + /// message is received before forwarding the message to be deserialized. + /// + /// + /// + void Port_LineReceived(object dev, GenericCommMethodReceiveTextArgs args) + { + if (Debug.Level == 1) + { + if(!JsonFeedbackMessageIsIncoming) + Debug.Console(1, this, "RX: '{0}'", args.Text); + } + + if (args.Text == "{" + Delimiter) // Check for the beginning of a new JSON message + { + JsonFeedbackMessageIsIncoming = true; + + Debug.Console(1, this, "Incoming JSON message..."); + + JsonMessage = new StringBuilder(); + } + else if (args.Text == "}" + Delimiter) // Check for the end of a JSON message + { + JsonFeedbackMessageIsIncoming = false; + + JsonMessage.Append(args.Text); + + Debug.Console(1, this, "Complete JSON Received:\n{0}", JsonMessage.ToString()); + + // Forward the complete message to be deserialized + DeserializeResponse(JsonMessage.ToString()); + return; + } + + if(JsonFeedbackMessageIsIncoming) + { + JsonMessage.Append(args.Text); + + //Debug.Console(1, this, "Building JSON:\n{0}", JsonMessage.ToString()); + return; + } + + if (!SyncState.InitialSyncComplete) + { + switch (args.Text.Trim()) + { + case "*r Login successful": + { + SendText("xPreferences outputmode json"); + break; + } + case "xPreferences outputmode json": + { + if(!SyncState.InitialStatusMessageWasReceived) + SendText("xStatus"); + break; + } + case "xFeedback register": + { + SyncState.FeedbackRegistered(); + break; + } + } + } + } + + void JsonGather_LineReceived(object sender, GenericCommMethodReceiveTextArgs e) + { + //Debug.Console(1, this, "JSON repsonse length: {0}", e.Text.Length); + + var startPos = e.Text.IndexOf("{"); + var json = e.Text.Substring(startPos, e.Text.Length - startPos); + + //Debug.Console(1, this, "First curly brace found at position {0}. Substring will start at position {1} and continue for {2} characters", startPos, startPos, e.Text.Length - startPos); + + Debug.Console(1, this, "JSON received:\n{0}", json); + + + DeserializeResponse(json); + + + } + + public void SendText(string command) + { + Debug.Console(1, this, "Sending: '{0}'", command); + Communication.SendText(command + "\x0d\x0a"); + } + + //private void StartHttpsSession() + //{ + // SendHttpCommand("", eCommandType.SessionStart); + //} + + //private void EndHttpsSession() + //{ + // SendHttpCommand("", eCommandType.SessionEnd); + //} + + //private void SendHttpCommand(string command, eCommandType commandType) + //{ + // //HttpsClientRequest request = new HttpsClientRequest(); + + // //string urlSuffix = null; + + // //Client.UserName = null; + // //Client.Password = null; + + // //Client.PeerVerification = false; + // //Client.HostVerification = false; + + // //request.RequestType = RequestType.Post; + + // //if(!string.IsNullOrEmpty(HttpSessionId)) + // // request.Header.SetHeaderValue("Cookie", HttpSessionId); + + // //switch (commandType) + // //{ + // // case eCommandType.Command: + // // { + // // urlSuffix = "/putxml"; + // // request.ContentString = command; + // // request.Header.SetHeaderValue("Content-Type", "text/xml"); + // // break; + // // } + // // case eCommandType.SessionStart: + // // { + + // // urlSuffix = "/xmlapi/session/begin"; + + // // Client.UserName = (Communication as GenericSshClient).Username; + // // Client.Password = (Communication as GenericSshClient).Password; + + // // break; + // // } + // // case eCommandType.SessionEnd: + // // { + // // urlSuffix = "/xmlapi/session/end"; + // // request.Header.SetHeaderValue("Cookie", HttpSessionId); + // // break; + // // } + // // case eCommandType.GetStatus: + // // { + // // request.RequestType = RequestType.Get; + // // request.Header.SetHeaderValue("Content-Type", "text/xml"); + // // urlSuffix = "/getxml?location=/Status"; + // // break; + // // } + // // case eCommandType.GetConfiguration: + // // { + // // request.RequestType = RequestType.Get; + // // request.Header.SetHeaderValue("Content-Type", "text/xml"); + // // urlSuffix = "/getxml?location=/Configuration"; + // // break; + // // } + // //} + + // //var requestUrl = CodecUrl + urlSuffix; + // //request.Header.RequestVersion = "HTTP/1.1"; + // //request.Url.Parse(requestUrl); + + // //Debug.Console(1, this, "Sending HTTP request to Cisco Codec at {0}\nHeader:\n{1}\nContent:\n{2}", requestUrl, request.Header, request.ContentString); + + // //Client.DispatchAsync(request, PostConnectionCallback); + //} + + //void PostConnectionCallback(HttpsClientResponse resp, HTTPS_CALLBACK_ERROR err) + //{ + // //try + // //{ + // // if (resp != null) + // // { + // // if (resp.Code == 200) + // // { + // // Debug.Console(1, this, "Http Post to Cisco Codec Successful. Code: {0}\nContent: {1}", resp.Code, resp.ContentString); + + // // if (resp.ContentString.IndexOf("") > 1) + // // { + // // // Get the initial configruation for sync purposes + // // SendHttpCommand("", eCommandType.GetConfiguration); + // // } + // // else + // // { + // // try + // // { + // // if (resp.ContentString.IndexOf("") > -1) + // // { + // // XmlReaderSettings settings = new XmlReaderSettings(); + + // // XmlReader reader = new XmlReader(resp.ContentString, settings); + + // // CodecConfiguration = CrestronXMLSerialization.DeSerializeObject(reader); + + // // //Debug.Console(1, this, "Product Name: {0} Software Version: {1} ApiVersion: {2}", CodecConfiguration.Configuration.Product, CodecConfiguration.Version, CodecConfiguration.ApiVersion); + + // // // Get the initial status for sync purposes + // // SendHttpCommand("", eCommandType.GetStatus); + // // } + // // else if (resp.ContentString.IndexOf("") > -1) + // // { + // // XmlReaderSettings settings = new XmlReaderSettings(); + + // // XmlReader reader = new XmlReader(resp.ContentString, settings); + + // // CodecStatus = CrestronXMLSerialization.DeSerializeObject(reader); + // // //Debug.Console(1, this, "Product Name: {0} Software Version: {1} ApiVersion: {2} Volume: {3}", CodecStatus.Product, CodecStatus.Version, CodecStatus.ApiVersion, CodecStatus.Audio.Volume); + // // } + // // } + // // catch (Exception ex) + // // { + // // Debug.Console(1, this, "Error Deserializing XML document from codec: {0}", ex); + // // } + // // } + // // } + // // else if (resp.Code == 204) + // // { + // // Debug.Console(1, this, "Response Code: {0}\nHeader:\n{1}Content:\n{1}", resp.Code, resp.Header, resp.ContentString); + + // // HttpSessionId = resp.Header.GetHeaderValue("Set-Cookie"); + // // //var chunks = HttpSessionId.Split(';'); + // // //HttpSessionId = chunks[0]; + // // //HttpSessionId = HttpSessionId.Substring(HttpSessionId.IndexOf("=") + 1); + + + // // // Register for feedbacks once we have a valid session + // // SendHttpCommand(FeedbackRegistrationExpression, eCommandType.Command); + // // } + // // else + // // { + // // Debug.Console(1, this, "Response Code: {0}\nHeader:\n{1}Content:\n{1}Err:\n{2}", resp.Code, resp.Header, resp.ContentString, err); + // // } + // // } + // // else + // // Debug.Console(1, this, "Null response received from server"); + // //} + // //catch (Exception e) + // //{ + // // Debug.Console(1, this, "Error Initializing HTTPS Client: {0}", e); + // //} + //} + + //void Server_ApiRequest(object sender, Crestron.SimplSharp.Net.Http.OnHttpRequestArgs e) + //{ + // Debug.Console(1, this, "Api Reqeust from Codec: {0}", e.Request.ContentString); + // e.Response.Code = 200; + // e.Response.ContentString = "OK"; + + // DeserializeResponse(e.Request.ContentString); + //} + + void DeserializeResponse(string response) + { + try + { + // Serializer settings. We want to ignore null values and mising members + JsonSerializerSettings settings = new JsonSerializerSettings(); + settings.NullValueHandling = NullValueHandling.Ignore; + settings.MissingMemberHandling = MissingMemberHandling.Ignore; + settings.ObjectCreationHandling = ObjectCreationHandling.Auto; + + if (response.IndexOf("\"Status\":{") > -1) + { + JsonConvert.PopulateObject(response, CodecStatus); + + if (!SyncState.InitialStatusMessageWasReceived) + { + SyncState.InitialStatusMessageReceived(); + if(!SyncState.InitialConfigurationMessageWasReceived) + SendText("xConfiguration"); + } + } + else if (response.IndexOf("\"Configuration\":{") > -1) + { + JsonConvert.PopulateObject(response, CodecConfiguration); + + if (!SyncState.InitialConfigurationMessageWasReceived) + { + SyncState.InitialConfigurationMessageReceived(); + if (!SyncState.FeedbackWasRegistered) + { + SendText(CliFeedbackRegistrationExpression); + } + } + + } + + } + catch (Exception ex) + { + Debug.Console(1, this, "Error Deserializing feedback from codec: {0}", ex); + } + } + + void Communication_TextReceived(object sender, GenericCommMethodReceiveTextArgs e) + { + //CodecObtp. + } + + public override void ExecuteSwitch(object selector) + { + throw new NotImplementedException(); + } + + protected override Func InCallFeedbackFunc { get { return () => false; } } + + protected override Func IncomingCallFeedbackFunc { get { return () => false; } } + + protected override Func TransmitMuteFeedbackFunc { get { return () => false; } } + + protected override Func ReceiveMuteFeedbackFunc { get { return () => false; } } + + protected override Func PrivacyModeFeedbackFunc { get { return () => false; } } + + public override void Dial(string s) + { + SendText(string.Format("xCommand Dial Number: {0}", s)); + } + + public override void EndCall() + { + //SendText(string.Format("xCommand Accept CallId: {0}", CodecStatus.Status.)); + + } + + public override void AcceptCall() + { + + } + + public override void RejectCall() + { + + } + + public override void SendDtmf(string s) + { + + } + + public override void StartSharing() + { + + } + + public override void StopSharing() + { + + } + + 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() + { + + } + } + + /// + /// Tracks the initial sycnronization state of the codec when making a connection + /// + public class CodecSyncState : IKeyed + { + public string Key { get; private set; } + + public bool InitialSyncComplete { get; private set; } + + public bool InitialStatusMessageWasReceived { get; private set; } + + public bool InitialConfigurationMessageWasReceived { get; private set; } + + public bool FeedbackWasRegistered { get; private set; } + + public CodecSyncState(string key) + { + Key = key; + CodecDisconnected(); + } + + public void InitialStatusMessageReceived() + { + InitialStatusMessageWasReceived = true; + Debug.Console(1, this, "Initial Codec Status Message Received."); + CheckSyncStatus(); + } + + public void InitialConfigurationMessageReceived() + { + InitialConfigurationMessageWasReceived = true; + Debug.Console(1, this, "Initial Codec Configuration Message Received."); + CheckSyncStatus(); + } + + public void FeedbackRegistered() + { + FeedbackWasRegistered = true; + Debug.Console(1, this, "Initial Codec Feedback Registration Successful."); + CheckSyncStatus(); + } + + public void CodecDisconnected() + { + InitialConfigurationMessageWasReceived = false; + InitialStatusMessageWasReceived = false; + FeedbackWasRegistered = false; + InitialSyncComplete = false; + } + + void CheckSyncStatus() + { + if (InitialConfigurationMessageWasReceived && InitialStatusMessageWasReceived && FeedbackWasRegistered) + { + InitialSyncComplete = true; + Debug.Console(1, this, "Initial Codec Sync Complete!"); + } + else + InitialSyncComplete = false; + } + } +} \ No newline at end of file diff --git a/Essentials Devices Common/Essentials Devices Common/VC/CiscoCodec/Configuration.cs b/Essentials Devices Common/Essentials Devices Common/VC/CiscoCodec/Configuration.cs new file mode 100644 index 00000000..75eed815 --- /dev/null +++ b/Essentials Devices Common/Essentials Devices Common/VC/CiscoCodec/Configuration.cs @@ -0,0 +1,1668 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Crestron.SimplSharp; + +namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco +{ + public class CiscoCodecConfiguration + { + public class DefaultVolume + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Mode + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Dereverberation + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Mode2 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class NoiseReduction + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class EchoControl + { + public Dereverberation Dereverberation { get; set; } + public Mode2 Mode { get; set; } + public NoiseReduction NoiseReduction { get; set; } + } + + public class Level + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Microphone + { + public string id { get; set; } + public Mode Mode { get; set; } + public EchoControl EchoControl { get; set; } + public Level Level { get; set; } + } + + public class Input + { + public List Microphone { get; set; } + } + + public class Enabled + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Mute + { + public Enabled Enabled { get; set; } + } + + public class Microphones + { + public Mute Mute { get; set; } + } + + public class Mode3 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class InternalSpeaker + { + public Mode3 Mode { get; set; } + } + + public class Mode4 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class OutputType + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Line + { + public string id { get; set; } + public Mode4 Mode { get; set; } + public OutputType OutputType { get; set; } + } + + public class Output + { + public InternalSpeaker InternalSpeaker { get; set; } + public List Line { get; set; } + } + + public class RingTone + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class RingVolume + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class SoundsAndAlerts + { + public RingTone RingTone { get; set; } + public RingVolume RingVolume { get; set; } + } + + public class Audio + { + public DefaultVolume DefaultVolume { get; set; } + public Input Input { get; set; } + public Microphones Microphones { get; set; } + public Output Output { get; set; } + public SoundsAndAlerts SoundsAndAlerts { get; set; } + } + + public class Framerate + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Camera + { + public Framerate Framerate { get; set; } + } + + public class Closeup + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Mode5 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class SpeakerTrack + { + public Closeup Closeup { get; set; } + public Mode5 Mode { get; set; } + } + + public class Cameras + { + public Camera Camera { get; set; } + public SpeakerTrack SpeakerTrack { get; set; } + } + + public class Delay + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Mode6 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Mute2 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class AutoAnswer + { + public Delay Delay { get; set; } + public Mode6 Mode { get; set; } + public Mute2 Mute { get; set; } + } + + public class Protocol + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Rate + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class DefaultCall + { + public Protocol Protocol { get; set; } + public Rate Rate { get; set; } + } + + public class DefaultTimeout + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class DoNotDisturb + { + public DefaultTimeout DefaultTimeout { get; set; } + } + + public class Mode7 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Encryption + { + public Mode7 Mode { get; set; } + } + + public class Mode8 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class FarEndControl + { + public Mode8 Mode { get; set; } + } + + public class MaxReceiveCallRate + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class MaxTotalReceiveCallRate + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class MaxTotalTransmitCallRate + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class MaxTransmitCallRate + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Mode9 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class MultiStream + { + public Mode9 Mode { get; set; } + } + + public class Conference + { + public AutoAnswer AutoAnswer { get; set; } + public DefaultCall DefaultCall { get; set; } + public DoNotDisturb DoNotDisturb { get; set; } + public Encryption Encryption { get; set; } + public FarEndControl FarEndControl { get; set; } + public MaxReceiveCallRate MaxReceiveCallRate { get; set; } + public MaxTotalReceiveCallRate MaxTotalReceiveCallRate { get; set; } + public MaxTotalTransmitCallRate MaxTotalTransmitCallRate { get; set; } + public MaxTransmitCallRate MaxTransmitCallRate { get; set; } + public MultiStream MultiStream { get; set; } + } + + public class LoginName + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Mode10 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Password + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Authentication + { + public LoginName LoginName { get; set; } + public Mode10 Mode { get; set; } + public Password Password { get; set; } + } + + public class Mode11 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class CallSetup + { + public Mode11 Mode { get; set; } + } + + public class KeySize + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Encryption2 + { + public KeySize KeySize { get; set; } + } + + public class Address + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Gatekeeper + { + public Address Address { get; set; } + } + + public class E164 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class ID + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class H323Alias + { + public E164 E164 { get; set; } + public ID ID { get; set; } + } + + public class Address2 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Mode12 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class NAT + { + public Address2 Address { get; set; } + public Mode12 Mode { get; set; } + } + + public class H323 + { + public Authentication Authentication { get; set; } + public CallSetup CallSetup { get; set; } + public Encryption2 Encryption { get; set; } + public Gatekeeper Gatekeeper { get; set; } + public H323Alias H323Alias { get; set; } + public NAT NAT { get; set; } + } + + public class Name + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Domain + { + public Name Name { get; set; } + } + + public class Address3 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Server + { + public string id { get; set; } + public Address3 Address { get; set; } + } + + public class DNS + { + public Domain Domain { get; set; } + public List Server { get; set; } + } + + public class AnonymousIdentity + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Md5 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Peap + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Tls + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Ttls + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Eap + { + public Md5 Md5 { get; set; } + public Peap Peap { get; set; } + public Tls Tls { get; set; } + public Ttls Ttls { get; set; } + } + + public class Identity + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Mode13 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Password2 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class TlsVerify + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class UseClientCertificate + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class IEEE8021X + { + public AnonymousIdentity AnonymousIdentity { get; set; } + public Eap Eap { get; set; } + public Identity Identity { get; set; } + public Mode13 Mode { get; set; } + public Password2 Password { get; set; } + public TlsVerify TlsVerify { get; set; } + public UseClientCertificate UseClientCertificate { get; set; } + } + + public class IPStack + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Address4 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Assignment + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Gateway + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class SubnetMask + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class IPv4 + { + public Address4 Address { get; set; } + public Assignment Assignment { get; set; } + public Gateway Gateway { get; set; } + public SubnetMask SubnetMask { get; set; } + } + + public class Address5 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Assignment2 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class DHCPOptions + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Gateway2 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class IPv6 + { + public Address5 Address { get; set; } + public Assignment2 Assignment { get; set; } + public DHCPOptions DHCPOptions { get; set; } + public Gateway2 Gateway { get; set; } + } + + public class MTU + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Audio2 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Data + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class ICMPv6 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class NTP + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Signalling + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Video + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Diffserv + { + public Audio2 Audio { get; set; } + public Data Data { get; set; } + public ICMPv6 ICMPv6 { get; set; } + public NTP NTP { get; set; } + public Signalling Signalling { get; set; } + public Video Video { get; set; } + } + + public class Mode14 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class QoS + { + public Diffserv Diffserv { get; set; } + public Mode14 Mode { get; set; } + } + + public class Allow + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class RemoteAccess + { + public Allow Allow { get; set; } + } + + public class Speed + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Mode15 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class VlanId + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Voice + { + public Mode15 Mode { get; set; } + public VlanId VlanId { get; set; } + } + + public class VLAN + { + public Voice Voice { get; set; } + } + + public class Network + { + public string id { get; set; } + public DNS DNS { get; set; } + public IEEE8021X IEEE8021X { get; set; } + public IPStack IPStack { get; set; } + public IPv4 IPv4 { get; set; } + public IPv6 IPv6 { get; set; } + public MTU MTU { get; set; } + public QoS QoS { get; set; } + public RemoteAccess RemoteAccess { get; set; } + public Speed Speed { get; set; } + public VLAN VLAN { get; set; } + } + + public class Mode16 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class CDP + { + public Mode16 Mode { get; set; } + } + + public class Mode17 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class H3232 + { + public Mode17 Mode { get; set; } + } + + public class Mode18 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class HTTP + { + public Mode18 Mode { get; set; } + } + + public class MinimumTLSVersion + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Server2 + { + public MinimumTLSVersion MinimumTLSVersion { get; set; } + } + + public class StrictTransportSecurity + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class VerifyClientCertificate + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class VerifyServerCertificate + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class HTTPS + { + public Server2 Server { get; set; } + public StrictTransportSecurity StrictTransportSecurity { get; set; } + public VerifyClientCertificate VerifyClientCertificate { get; set; } + public VerifyServerCertificate VerifyServerCertificate { get; set; } + } + + public class Mode19 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Address6 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Server3 + { + public string id { get; set; } + public Address6 Address { get; set; } + } + + public class NTP2 + { + public Mode19 Mode { get; set; } + public List Server { get; set; } + } + + public class Mode20 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class SIP + { + public Mode20 Mode { get; set; } + } + + public class CommunityName + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Address7 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Host + { + public string id { get; set; } + public Address7 Address { get; set; } + } + + public class Mode21 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class SystemContact + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class SystemLocation + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class SNMP + { + public CommunityName CommunityName { get; set; } + public List Host { get; set; } + public Mode21 Mode { get; set; } + public SystemContact SystemContact { get; set; } + public SystemLocation SystemLocation { get; set; } + } + + public class Mode22 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class SSH + { + public Mode22 Mode { get; set; } + } + + public class Mode23 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class UPnP + { + public Mode23 Mode { get; set; } + } + + public class WelcomeText + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class NetworkServices + { + public CDP CDP { get; set; } + public H3232 H323 { get; set; } + public HTTP HTTP { get; set; } + public HTTPS HTTPS { get; set; } + public NTP2 NTP { get; set; } + public SIP SIP { get; set; } + public SNMP SNMP { get; set; } + public SSH SSH { get; set; } + public UPnP UPnP { get; set; } + public WelcomeText WelcomeText { get; set; } + } + + public class Cameras2 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class ControlSystems + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class TouchPanels + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Profile + { + public Cameras2 Cameras { get; set; } + public ControlSystems ControlSystems { get; set; } + public TouchPanels TouchPanels { get; set; } + } + + public class Peripherals + { + public Profile Profile { get; set; } + } + + public class ID2 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Type + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class URL + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Server4 + { + public string id { get; set; } + public ID2 ID { get; set; } + public Type Type { get; set; } + public URL URL { get; set; } + } + + public class Phonebook + { + public List Server { get; set; } + } + + public class Connectivity + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Address8 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class AlternateAddress + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Domain2 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Path + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Protocol2 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class ExternalManager + { + public Address8 Address { get; set; } + public AlternateAddress AlternateAddress { get; set; } + public Domain2 Domain { get; set; } + public Path Path { get; set; } + public Protocol2 Protocol { get; set; } + } + + public class HttpMethod + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class LoginName2 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Mode24 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Password3 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Provisioning + { + public Connectivity Connectivity { get; set; } + public ExternalManager ExternalManager { get; set; } + public HttpMethod HttpMethod { get; set; } + public LoginName2 LoginName { get; set; } + public Mode24 Mode { get; set; } + public Password3 Password { get; set; } + } + + public class Mode25 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class CallControl + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class FromClients + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class ToClients + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class ContentShare + { + public FromClients FromClients { get; set; } + public ToClients ToClients { get; set; } + } + + public class Services + { + public CallControl CallControl { get; set; } + public ContentShare ContentShare { get; set; } + } + + public class Proximity + { + public Mode25 Mode { get; set; } + public Services Services { get; set; } + } + + public class PeopleCountOutOfCall + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class PeoplePresenceDetector + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class RoomAnalytics + { + public PeopleCountOutOfCall PeopleCountOutOfCall { get; set; } + public PeoplePresenceDetector PeoplePresenceDetector { get; set; } + } + + public class Password4 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class UserName + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Authentication2 + { + public Password4 Password { get; set; } + public UserName UserName { get; set; } + } + + public class DefaultTransport + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class DisplayName + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class DefaultCandidate + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Mode26 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Ice + { + public DefaultCandidate DefaultCandidate { get; set; } + public Mode26 Mode { get; set; } + } + + public class ListenPort + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Address9 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Proxy + { + public string id { get; set; } + public Address9 Address { get; set; } + } + + public class Password5 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Server5 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class UserName2 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Turn + { + public Password5 Password { get; set; } + public Server5 Server { get; set; } + public UserName2 UserName { get; set; } + } + + public class URI + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class SIP2 + { + public Authentication2 Authentication { get; set; } + public DefaultTransport DefaultTransport { get; set; } + public DisplayName DisplayName { get; set; } + public Ice Ice { get; set; } + public ListenPort ListenPort { get; set; } + public List Proxy { get; set; } + public Turn Turn { get; set; } + public URI URI { get; set; } + } + + public class BaudRate + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class LoginRequired + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Mode27 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class SerialPort + { + public BaudRate BaudRate { get; set; } + public LoginRequired LoginRequired { get; set; } + public Mode27 Mode { get; set; } + } + + public class BootAction + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Control + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Delay2 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class StandbyAction + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class WakeupAction + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Standby + { + public BootAction BootAction { get; set; } + public Control Control { get; set; } + public Delay2 Delay { get; set; } + public StandbyAction StandbyAction { get; set; } + public WakeupAction WakeupAction { get; set; } + } + + public class Name2 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class SystemUnit + { + public Name2 Name { get; set; } + } + + public class DateFormat + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class TimeFormat + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Zone + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Time + { + public DateFormat DateFormat { get; set; } + public TimeFormat TimeFormat { get; set; } + public Zone Zone { get; set; } + } + + public class Type2 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class ContactInfo + { + public Type2 Type { get; set; } + } + + public class Mode28 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class KeyTones + { + public Mode28 Mode { get; set; } + } + + public class Language + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Output2 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class OSD + { + public Output2 Output { get; set; } + } + + public class UserInterface + { + public ContactInfo ContactInfo { get; set; } + public KeyTones KeyTones { get; set; } + public Language Language { get; set; } + public OSD OSD { get; set; } + } + + public class Filter + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Group + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Admin + { + public Filter Filter { get; set; } + public Group Group { get; set; } + } + + public class Attribute + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class BaseDN + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Encryption3 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class MinimumTLSVersion2 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Mode29 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Address10 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Port + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Server6 + { + public Address10 Address { get; set; } + public Port Port { get; set; } + } + + public class VerifyServerCertificate2 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class LDAP + { + public Admin Admin { get; set; } + public Attribute Attribute { get; set; } + public BaseDN BaseDN { get; set; } + public Encryption3 Encryption { get; set; } + public MinimumTLSVersion2 MinimumTLSVersion { get; set; } + public Mode29 Mode { get; set; } + public Server6 Server { get; set; } + public VerifyServerCertificate2 VerifyServerCertificate { get; set; } + } + + public class UserManagement + { + public LDAP LDAP { get; set; } + } + + public class DefaultMainSource + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class CameraId + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Mode30 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class CameraControl + { + public CameraId CameraId { get; set; } + public Mode30 Mode { get; set; } + } + + public class InputSourceType + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Name3 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Visibility + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class PreferredResolution + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class PresentationSelection + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Quality + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Connector + { + public string id { get; set; } + public CameraControl CameraControl { get; set; } + public InputSourceType InputSourceType { get; set; } + public Name3 Name { get; set; } + public Visibility Visibility { get; set; } + public PreferredResolution PreferredResolution { get; set; } + public PresentationSelection PresentationSelection { get; set; } + public Quality Quality { get; set; } + } + + public class Input2 + { + public List Connector { get; set; } + } + + public class Monitors + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Mode31 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class CEC + { + public Mode31 Mode { get; set; } + } + + public class MonitorRole + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Resolution + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Connector2 + { + public string id { get; set; } + public CEC CEC { get; set; } + public MonitorRole MonitorRole { get; set; } + public Resolution Resolution { get; set; } + } + + public class Output3 + { + public List Connector { get; set; } + } + + public class DefaultSource + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Presentation + { + public DefaultSource DefaultSource { get; set; } + } + + public class FullscreenMode + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Mode32 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class OnMonitorRole + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class PIPPosition + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Default + { + public FullscreenMode FullscreenMode { get; set; } + public Mode32 Mode { get; set; } + public OnMonitorRole OnMonitorRole { get; set; } + public PIPPosition PIPPosition { get; set; } + } + + public class Duration + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class Mode33 + { + public string valueSpaceRef { get; set; } + public string Value { get; set; } + } + + public class OnCall + { + public Duration Duration { get; set; } + public Mode33 Mode { get; set; } + } + + public class Selfview + { + public Default Default { get; set; } + public OnCall OnCall { get; set; } + } + + public class Video2 + { + public DefaultMainSource DefaultMainSource { get; set; } + public Input2 Input { get; set; } + public Monitors Monitors { get; set; } + public Output3 Output { get; set; } + public Presentation Presentation { get; set; } + public Selfview Selfview { get; set; } + } + + public class Configuration + { + public Audio Audio { get; set; } + public Cameras Cameras { get; set; } + public Conference Conference { get; set; } + public H323 H323 { get; set; } + public List Network { get; set; } + public NetworkServices NetworkServices { get; set; } + public Peripherals Peripherals { get; set; } + public Phonebook Phonebook { get; set; } + public Provisioning Provisioning { get; set; } + public Proximity Proximity { get; set; } + public RoomAnalytics RoomAnalytics { get; set; } + public SIP2 SIP { get; set; } + public SerialPort SerialPort { get; set; } + public Standby Standby { get; set; } + public SystemUnit SystemUnit { get; set; } + public Time Time { get; set; } + public UserInterface UserInterface { get; set; } + public UserManagement UserManagement { get; set; } + public Video2 Video { get; set; } + } + + public class RootObject + { + public Configuration Configuration { 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/CiscoCodec/HttpApiServer.cs similarity index 94% rename from Essentials Devices Common/Essentials Devices Common/VC/Cisco/HttpApiServer.cs rename to Essentials Devices Common/Essentials Devices Common/VC/CiscoCodec/HttpApiServer.cs index 4f5f3fd5..4e25f732 100644 --- a/Essentials Devices Common/Essentials Devices Common/VC/Cisco/HttpApiServer.cs +++ b/Essentials Devices Common/Essentials Devices Common/VC/CiscoCodec/HttpApiServer.cs @@ -8,7 +8,7 @@ using Crestron.SimplSharp.Net.Http; using PepperDash.Core; -namespace PepperDash.Essentials.Devices.VideoCodec.Cisco +namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco { public class HttpApiServer { diff --git a/Essentials Devices Common/Essentials Devices Common/VC/CiscoCodec/Status.cs b/Essentials Devices Common/Essentials Devices Common/VC/CiscoCodec/Status.cs new file mode 100644 index 00000000..fb1070b4 --- /dev/null +++ b/Essentials Devices Common/Essentials Devices Common/VC/CiscoCodec/Status.cs @@ -0,0 +1,1529 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Crestron.SimplSharp; +using Crestron.SimplSharp.CrestronXml.Serialization; + +namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco +{ + public class CiscoCodecStatus + { + // Helper Classes for Proerties + public abstract class ValueProperty + { + /// + /// Triggered when Value is set + /// + public Action ValueChangedAction { get; set; } + + protected void OnValueChanged() + { + var a = ValueChangedAction; + if (a != null) + a(); + } + + } + + public class ConnectionStatus + { + public string Value { get; set; } + } + + public class Microphone + { + public string id { get; set; } + public ConnectionStatus ConnectionStatus { get; set; } + } + + public class Connectors + { + public List Microphone { get; set; } + } + + public class Input + { + public Connectors Connectors { get; set; } + } + + public class Mute : ValueProperty + { + public bool BoolValue { get; private set; } + + public string Value + { + set + { + // If the incoming value is "On" it sets the BoolValue true, otherwise sets it false + BoolValue = value == "On"; + OnValueChanged(); + } + } + } + + public class Microphones + { + public Mute Mute { get; set; } + } + + public class ConnectionStatus2 + { + public string Value { get; set; } + } + + public class DelayMs + { + public string Value { get; set; } + } + + public class Line + { + public string id { get; set; } + public ConnectionStatus2 ConnectionStatus { get; set; } + public DelayMs DelayMs { get; set; } + } + + public class Connectors2 + { + public List Line { get; set; } + } + + public class Output + { + public Connectors2 Connectors { get; set; } + } + + public class Volume : ValueProperty + { + string _Value; + + /// + /// Sets Value and triggers the action when set + /// + public string Value + { + get + { + return _Value; + } + set + { + _Value = value; + OnValueChanged(); + } + } + + /// + /// Converted value of _Value for use as feedback + /// + public int IntValue + { + get + { + if (!string.IsNullOrEmpty(_Value)) + return Convert.ToInt32(_Value); + else + return 0; + } + } + } + + public class VolumeMute : ValueProperty + { + public bool BoolValue { get; private set; } + + public string Value + { + set + { + // If the incoming value is "On" it sets the BoolValue true, otherwise sets it false + BoolValue = value == "On"; + OnValueChanged(); + } + } + } + + public class Audio + { + public Input Input { get; set; } + public Microphones Microphones { get; set; } // Can we have this setter fire the update on the CiscoCodec feedback? + public Output Output { get; set; } + public Volume Volume { get; set; } + public VolumeMute VolumeMute { get; set; } + + public Audio() + { + Volume = new Volume(); + } + } + + public class Id + { + public string Value { get; set; } + } + + public class Current + { + public Id Id { get; set; } + } + + public class Bookings + { + public Current Current { get; set; } + } + + public class Options + { + public string Value { get; set; } + } + + public class Capabilities + { + public Options Options { get; set; } + } + + public class Connected + { + public string Value { get; set; } + } + + public class Framerate + { + public string Value { get; set; } + } + + public class Manufacturer + { + public string Value { get; set; } + } + + public class Model + { + public string Value { get; set; } + } + + public class Pan + { + public string Value { get; set; } + } + + public class Tilt + { + public string Value { get; set; } + } + + public class Zoom + { + public string Value { get; set; } + } + + public class Position + { + public Pan Pan { get; set; } + public Tilt Tilt { get; set; } + public Zoom Zoom { get; set; } + } + + public class Camera + { + public string id { get; set; } + public Capabilities Capabilities { get; set; } + public Connected Connected { get; set; } + public Framerate Framerate { get; set; } + public Manufacturer Manufacturer { get; set; } + public Model Model { get; set; } + public Position Position { get; set; } + } + + public class Availability + { + public string Value { get; set; } + } + + public class Status2 + { + public string Value { get; set; } + } + + public class SpeakerTrack + { + public Availability Availability { get; set; } + public Status2 Status { get; set; } + } + + public class Cameras + { + public List Camera { get; set; } + public SpeakerTrack SpeakerTrack { get; set; } + } + + public class MaxActiveCalls + { + public string Value { get; set; } + } + + public class MaxAudioCalls + { + public string Value { get; set; } + } + + public class MaxCalls + { + public string Value { get; set; } + } + + public class MaxVideoCalls + { + public string Value { get; set; } + } + + public class Conference + { + public MaxActiveCalls MaxActiveCalls { get; set; } + public MaxAudioCalls MaxAudioCalls { get; set; } + public MaxCalls MaxCalls { get; set; } + public MaxVideoCalls MaxVideoCalls { get; set; } + } + + public class Capabilities2 + { + public Conference Conference { get; set; } + } + + public class CallId + { + public string Value { get; set; } + } + + public class ActiveSpeaker + { + public CallId CallId { get; set; } + } + + public class DoNotDisturb + { + public string Value { get; set; } + } + + public class Mode + { + public string Value { get; set; } + } + + public class Multipoint + { + public Mode Mode { get; set; } + } + + public class CallId2 + { + public string Value { get; set; } + } + + public class Mode2 + { + public string Value { get; set; } + } + + public class Mode3 + { + public string Value { get; set; } + } + + public class ReleaseFloorAvailability + { + public string Value { get; set; } + } + + public class RequestFloorAvailability + { + public string Value { get; set; } + } + + public class Whiteboard + { + public Mode3 Mode { get; set; } + public ReleaseFloorAvailability ReleaseFloorAvailability { get; set; } + public RequestFloorAvailability RequestFloorAvailability { get; set; } + } + + public class Presentation + { + public CallId2 CallId { get; set; } + public Mode2 Mode { get; set; } + public Whiteboard Whiteboard { get; set; } + } + + public class CallId3 + { + public string Value { get; set; } + } + + public class Mode4 + { + public string Value { get; set; } + } + + public class SpeakerLock + { + public CallId3 CallId { get; set; } + public Mode4 Mode { get; set; } + } + + public class Conference2 + { + public ActiveSpeaker ActiveSpeaker { get; set; } + public DoNotDisturb DoNotDisturb { get; set; } + public Multipoint Multipoint { get; set; } + public Presentation Presentation { get; set; } + public SpeakerLock SpeakerLock { get; set; } + } + + public class Description + { + public string Value { get; set; } + } + + public class Level + { + public string Value { get; set; } + } + + public class References + { + public string Value { get; set; } + } + + public class Type + { + public string Value { get; set; } + } + + public class Message + { + public string id { get; set; } + public Description Description { get; set; } + public Level Level { get; set; } + public References References { get; set; } + public Type Type { get; set; } + } + + public class Diagnostics + { + public List Message { get; set; } + } + + public class Conference3 + { + } + + public class Experimental + { + public Conference3 Conference { get; set; } + } + + public class Address + { + public string Value { get; set; } + } + + public class Port + { + public string Value { get; set; } + } + + public class Reason + { + public string Value { get; set; } + } + + public class Status3 + { + public string Value { get; set; } + } + + public class Gatekeeper + { + public Address Address { get; set; } + public Port Port { get; set; } + public Reason Reason { get; set; } + public Status3 Status { get; set; } + } + + public class Reason2 + { + public string Value { get; set; } + } + + public class Status4 + { + public string Value { get; set; } + } + + public class Mode5 + { + public Reason2 Reason { get; set; } + public Status4 Status { get; set; } + } + + public class H323 + { + public Gatekeeper Gatekeeper { get; set; } + public Mode5 Mode { get; set; } + } + + public class Expression + { + public string id { get; set; } + public string Value { get; set; } + } + + public class Format + { + public string Value { get; set; } + } + + public class URL + { + public string Value { get; set; } + } + + public class HttpFeedback + { + public string id { get; set; } + public List Expression { get; set; } + public Format Format { get; set; } + public URL URL { get; set; } + } + + public class MediaChannels + { + } + + public class Address2 + { + public string Value { get; set; } + } + + public class Capabilities3 + { + public string Value { get; set; } + } + + public class DeviceId + { + public string Value { get; set; } + } + + public class Duplex + { + public string Value { get; set; } + } + + public class Platform + { + public string Value { get; set; } + } + + public class PortID + { + public string Value { get; set; } + } + + public class PrimaryMgmtAddress + { + public string Value { get; set; } + } + + public class SysName + { + public string Value { get; set; } + } + + public class SysObjectID + { + public string Value { get; set; } + } + + public class VTPMgmtDomain + { + public string Value { get; set; } + } + + public class Version + { + public string Value { get; set; } + } + + public class VoIPApplianceVlanID + { + public string Value { get; set; } + } + + public class CDP + { + public Address2 Address { get; set; } + public Capabilities3 Capabilities { get; set; } + public DeviceId DeviceId { get; set; } + public Duplex Duplex { get; set; } + public Platform Platform { get; set; } + public PortID PortID { get; set; } + public PrimaryMgmtAddress PrimaryMgmtAddress { get; set; } + public SysName SysName { get; set; } + public SysObjectID SysObjectID { get; set; } + public VTPMgmtDomain VTPMgmtDomain { get; set; } + public Version Version { get; set; } + public VoIPApplianceVlanID VoIPApplianceVlanID { get; set; } + } + + public class Name + { + public string Value { get; set; } + } + + public class Domain + { + public Name Name { get; set; } + } + + public class Address3 + { + public string Value { get; set; } + } + + public class Server + { + public string id { get; set; } + public Address3 Address { get; set; } + } + + public class DNS + { + public Domain Domain { get; set; } + public List Server { get; set; } + } + + public class MacAddress + { + public string Value { get; set; } + } + + public class Speed + { + public string Value { get; set; } + } + + public class Ethernet + { + public MacAddress MacAddress { get; set; } + public Speed Speed { get; set; } + } + + public class Address4 + { + public string Value { get; set; } + } + + public class Gateway + { + public string Value { get; set; } + } + + public class SubnetMask + { + public string Value { get; set; } + } + + public class IPv4 + { + public Address4 Address { get; set; } + public Gateway Gateway { get; set; } + public SubnetMask SubnetMask { get; set; } + } + + public class Address5 + { + public string Value { get; set; } + } + + public class Gateway2 + { + public string Value { get; set; } + } + + public class IPv6 + { + public Address5 Address { get; set; } + public Gateway2 Gateway { get; set; } + } + + public class VlanId + { + public string Value { get; set; } + } + + public class Voice + { + public VlanId VlanId { get; set; } + } + + public class VLAN + { + public Voice Voice { get; set; } + } + + public class Network + { + public string id { get; set; } + public CDP CDP { get; set; } + public DNS DNS { get; set; } + public Ethernet Ethernet { get; set; } + public IPv4 IPv4 { get; set; } + public IPv6 IPv6 { get; set; } + public VLAN VLAN { get; set; } + } + + public class CurrentAddress + { + public string Value { get; set; } + } + + public class Address6 + { + public string Value { get; set; } + } + + public class Server2 + { + public string id { get; set; } + public Address6 Address { get; set; } + } + + public class Status5 + { + public string Value { get; set; } + } + + public class NTP + { + public CurrentAddress CurrentAddress { get; set; } + public List Server { get; set; } + public Status5 Status { get; set; } + } + + public class NetworkServices + { + public NTP NTP { get; set; } + } + + public class HardwareInfo + { + public string Value { get; set; } + } + + public class ID2 + { + public string Value { get; set; } + } + + public class Name2 + { + public string Value { get; set; } + } + + public class SoftwareInfo + { + public string Value { get; set; } + } + + public class Status6 + { + public string Value { get; set; } + } + + public class Type2 + { + public string Value { get; set; } + } + + public class UpgradeStatus + { + public string Value { get; set; } + } + + public class ConnectedDevice + { + public string id { get; set; } + public HardwareInfo HardwareInfo { get; set; } + public ID2 ID { get; set; } + public Name2 Name { get; set; } + public SoftwareInfo SoftwareInfo { get; set; } + public Status6 Status { get; set; } + public Type2 Type { get; set; } + public UpgradeStatus UpgradeStatus { get; set; } + } + + public class Peripherals + { + public List ConnectedDevice { get; set; } + } + + public class Enabled + { + public string Value { get; set; } + } + + public class LastLoggedInUserId + { + public string Value { get; set; } + } + + public class LoggedIn + { + public string Value { get; set; } + } + + public class ExtensionMobility + { + public Enabled Enabled { get; set; } + public LastLoggedInUserId LastLoggedInUserId { get; set; } + public LoggedIn LoggedIn { get; set; } + } + + public class CUCM + { + public ExtensionMobility ExtensionMobility { get; set; } + } + + public class CompletedAt + { + public string Value { get; set; } + } + + public class URL2 + { + public string Value { get; set; } + } + + public class VersionId + { + public string Value { get; set; } + } + + public class Current2 + { + public CompletedAt CompletedAt { get; set; } + public URL2 URL { get; set; } + public VersionId VersionId { get; set; } + } + + public class LastChange + { + public string Value { get; set; } + } + + public class Message2 + { + public string Value { get; set; } + } + + public class Phase + { + public string Value { get; set; } + } + + public class SessionId + { + public string Value { get; set; } + } + + public class Status7 + { + public string Value { get; set; } + } + + public class URL3 + { + public string Value { get; set; } + } + + public class VersionId2 + { + public string Value { get; set; } + } + + public class UpgradeStatus2 + { + public LastChange LastChange { get; set; } + public Message2 Message { get; set; } + public Phase Phase { get; set; } + public SessionId SessionId { get; set; } + public Status7 Status { get; set; } + public URL3 URL { get; set; } + public VersionId2 VersionId { get; set; } + } + + public class Software + { + public Current2 Current { get; set; } + public UpgradeStatus2 UpgradeStatus { get; set; } + } + + public class Status8 + { + public string Value { get; set; } + } + + public class Provisioning + { + public CUCM CUCM { get; set; } + public Software Software { get; set; } + public Status8 Status { get; set; } + } + + public class Availability2 + { + public string Value { get; set; } + } + + public class Services + { + public Availability2 Availability { get; set; } + } + + public class Proximity + { + public Services Services { get; set; } + } + + public class Current3 + { + public string Value { get; set; } + } + + public class PeopleCount + { + public Current3 Current { get; set; } + } + + public class PeoplePresence + { + public string Value { get; set; } + } + + public class RoomAnalytics + { + public PeopleCount PeopleCount { get; set; } + public PeoplePresence PeoplePresence { get; set; } + } + + public class Authentication + { + public string Value { get; set; } + } + + public class DisplayName + { + public string Value { get; set; } + } + + public class Mode6 + { + public string Value { get; set; } + } + + public class URI + { + public string Value { get; set; } + } + + public class CallForward + { + public DisplayName DisplayName { get; set; } + public Mode6 Mode { get; set; } + public URI URI { get; set; } + } + + public class MessagesWaiting + { + public string Value { get; set; } + } + + public class URI2 + { + public string Value { get; set; } + } + + public class Mailbox + { + public MessagesWaiting MessagesWaiting { get; set; } + public URI2 URI { get; set; } + } + + public class Address7 + { + public string Value { get; set; } + } + + public class Status9 + { + public string Value { get; set; } + } + + public class Proxy + { + public string id { get; set; } + public Address7 Address { get; set; } + public Status9 Status { get; set; } + } + + public class Reason3 + { + public string Value { get; set; } + } + + public class Status10 + { + public string Value { get; set; } + } + + public class URI3 + { + public string Value { get; set; } + } + + public class Registration + { + public string id { get; set; } + public Reason3 Reason { get; set; } + public Status10 Status { get; set; } + public URI3 URI { get; set; } + } + + public class Secure + { + public string Value { get; set; } + } + + public class Verified + { + public string Value { get; set; } + } + + public class SIP + { + public Authentication Authentication { get; set; } + public CallForward CallForward { get; set; } + public Mailbox Mailbox { get; set; } + public List Proxy { get; set; } + public List Registration { get; set; } + public Secure Secure { get; set; } + public Verified Verified { get; set; } + } + + public class Mode7 + { + public string Value { get; set; } + } + + public class FIPS + { + public Mode7 Mode { get; set; } + } + + public class CallHistory + { + public string Value { get; set; } + } + + public class Configurations + { + public string Value { get; set; } + } + + public class DHCP + { + public string Value { get; set; } + } + + public class InternalLogging + { + public string Value { get; set; } + } + + public class LocalPhonebook + { + public string Value { get; set; } + } + + public class Persistency + { + public CallHistory CallHistory { get; set; } + public Configurations Configurations { get; set; } + public DHCP DHCP { get; set; } + public InternalLogging InternalLogging { get; set; } + public LocalPhonebook LocalPhonebook { get; set; } + } + + public class Security + { + public FIPS FIPS { get; set; } + public Persistency Persistency { get; set; } + } + + public class State + { + public string Value { get; set; } + } + + public class Standby + { + public State State { get; set; } + } + + public class CompatibilityLevel + { + public string Value { get; set; } + } + + public class SerialNumber + { + public string Value { get; set; } + } + + public class Module + { + public CompatibilityLevel CompatibilityLevel { get; set; } + public SerialNumber SerialNumber { get; set; } + } + + public class Hardware + { + public Module Module { get; set; } + } + + public class ProductId + { + public string Value { get; set; } + } + + public class ProductPlatform + { + public string Value { get; set; } + } + + public class ProductType + { + public string Value { get; set; } + } + + public class DisplayName2 + { + public string Value { get; set; } + } + + public class Name3 + { + public string Value { get; set; } + } + + public class Encryption + { + public string Value { get; set; } + } + + public class MultiSite + { + public string Value { get; set; } + } + + public class RemoteMonitoring + { + public string Value { get; set; } + } + + public class OptionKeys + { + public Encryption Encryption { get; set; } + public MultiSite MultiSite { get; set; } + public RemoteMonitoring RemoteMonitoring { get; set; } + } + + public class ReleaseDate + { + public string Value { get; set; } + } + + public class Version2 + { + public string Value { get; set; } + } + + public class Software2 + { + public DisplayName2 DisplayName { get; set; } + public Name3 Name { get; set; } + public OptionKeys OptionKeys { get; set; } + public ReleaseDate ReleaseDate { get; set; } + public Version2 Version { get; set; } + } + + public class NumberOfActiveCalls + { + public string Value { get; set; } + } + + public class NumberOfInProgressCalls + { + public string Value { get; set; } + } + + public class NumberOfSuspendedCalls + { + public string Value { get; set; } + } + + public class State2 + { + public NumberOfActiveCalls NumberOfActiveCalls { get; set; } + public NumberOfInProgressCalls NumberOfInProgressCalls { get; set; } + public NumberOfSuspendedCalls NumberOfSuspendedCalls { get; set; } + } + + public class Uptime + { + public string Value { get; set; } + } + + public class SystemUnit + { + public Hardware Hardware { get; set; } + public ProductId ProductId { get; set; } + public ProductPlatform ProductPlatform { get; set; } + public ProductType ProductType { get; set; } + public Software2 Software { get; set; } + public State2 State { get; set; } + public Uptime Uptime { get; set; } + } + + public class SystemTime + { + public DateTime Value { get; set; } + } + + public class Time + { + public SystemTime SystemTime { get; set; } + } + + public class Number + { + public string Value { get; set; } + } + + public class ContactMethod + { + public string id { get; set; } + public Number Number { get; set; } + } + + public class Name4 + { + public string Value { get; set; } + } + + public class ContactInfo + { + public List ContactMethod { get; set; } + public Name4 Name { get; set; } + } + + public class UserInterface + { + public ContactInfo ContactInfo { get; set; } + } + + public class PIPPosition + { + public string Value { get; set; } + } + + public class ActiveSpeaker2 + { + public PIPPosition PIPPosition { get; set; } + } + + public class Connected2 + { + public string Value { get; set; } + } + + public class SignalState + { + public string Value { get; set; } + } + + public class SourceId + { + public string Value { get; set; } + } + + public class Type3 + { + public string Value { get; set; } + } + + public class Connector + { + public string id { get; set; } + public Connected2 Connected { get; set; } + public SignalState SignalState { get; set; } + public SourceId SourceId { get; set; } + public Type3 Type { get; set; } + } + + public class MainVideoSource + { + public string Value { get; set; } + } + + public class ConnectorId + { + public string Value { get; set; } + } + + public class FormatStatus + { + public string Value { get; set; } + } + + public class FormatType + { + public string Value { get; set; } + } + + public class MediaChannelId + { + public string Value { get; set; } + } + + public class Height + { + public string Value { get; set; } + } + + public class RefreshRate + { + public string Value { get; set; } + } + + public class Width + { + public string Value { get; set; } + } + + public class Resolution + { + public Height Height { get; set; } + public RefreshRate RefreshRate { get; set; } + public Width Width { get; set; } + } + + public class Source + { + public string id { get; set; } + public ConnectorId ConnectorId { get; set; } + public FormatStatus FormatStatus { get; set; } + public FormatType FormatType { get; set; } + public MediaChannelId MediaChannelId { get; set; } + public Resolution Resolution { get; set; } + } + + public class Input2 + { + public List Connector { get; set; } + public MainVideoSource MainVideoSource { get; set; } + public List Source { get; set; } + } + + public class Local + { + public string Value { get; set; } + } + + public class LayoutFamily + { + public Local Local { get; set; } + } + + public class Layout + { + public LayoutFamily LayoutFamily { get; set; } + } + + public class Monitors + { + public string Value { get; set; } + } + + public class Connected3 + { + public string Value { get; set; } + } + + public class Name5 + { + public string Value { get; set; } + } + + public class PreferredFormat + { + public string Value { get; set; } + } + + public class ConnectedDevice2 + { + public Name5 Name { get; set; } + public PreferredFormat PreferredFormat { get; set; } + } + + public class MonitorRole + { + public string Value { get; set; } + } + + public class Height2 + { + public string Value { get; set; } + } + + public class RefreshRate2 + { + public string Value { get; set; } + } + + public class Width2 + { + public string Value { get; set; } + } + + public class Resolution2 + { + public Height2 Height { get; set; } + public RefreshRate2 RefreshRate { get; set; } + public Width2 Width { get; set; } + } + + public class Type4 + { + public string Value { get; set; } + } + + public class Connector2 + { + public string id { get; set; } + public Connected3 Connected { get; set; } + public ConnectedDevice2 ConnectedDevice { get; set; } + public MonitorRole MonitorRole { get; set; } + public Resolution2 Resolution { get; set; } + public Type4 Type { get; set; } + } + + public class Output2 + { + public List Connector { get; set; } + } + + public class PIPPosition2 + { + public string Value { get; set; } + } + + public class Presentation2 + { + public PIPPosition2 PIPPosition { get; set; } + } + + public class FullscreenMode + { + public string Value { get; set; } + } + + public class Mode8 + { + public string Value { get; set; } + } + + public class OnMonitorRole + { + public string Value { get; set; } + } + + public class PIPPosition3 + { + public string Value { get; set; } + } + + public class Selfview + { + public FullscreenMode FullscreenMode { get; set; } + public Mode8 Mode { get; set; } + public OnMonitorRole OnMonitorRole { get; set; } + public PIPPosition3 PIPPosition { get; set; } + } + + public class Video + { + public ActiveSpeaker2 ActiveSpeaker { get; set; } + public Input2 Input { get; set; } + public Layout Layout { get; set; } + public Monitors Monitors { get; set; } + public Output2 Output { get; set; } + public Presentation2 Presentation { get; set; } + public Selfview Selfview { get; set; } + } + + public class Status + { + public Audio Audio { get; set; } + public Bookings Bookings { get; set; } + public Cameras Cameras { get; set; } + public Capabilities2 Capabilities { get; set; } + public Conference2 Conference { get; set; } + public Diagnostics Diagnostics { get; set; } + public Experimental Experimental { get; set; } + public H323 H323 { get; set; } + public List HttpFeedback { get; set; } + public MediaChannels MediaChannels { get; set; } + public List Network { get; set; } + public NetworkServices NetworkServices { get; set; } + public Peripherals Peripherals { get; set; } + public Provisioning Provisioning { get; set; } + public Proximity Proximity { get; set; } + public RoomAnalytics RoomAnalytics { get; set; } + public SIP SIP { get; set; } + public Security Security { get; set; } + public Standby Standby { get; set; } + public SystemUnit SystemUnit { get; set; } + public Time Time { get; set; } + public UserInterface UserInterface { get; set; } + public Video Video { get; set; } + + public Status() + { + Audio = new Audio(); + } + } + + public class RootObject + { + public Status Status { get; set; } + + public RootObject() + { + Status = new Status(); + } + } + } +} diff --git a/Essentials Devices Common/Essentials Devices Common/VC/MockVC/MockVC.cs b/Essentials Devices Common/Essentials Devices Common/VC/MockVC/MockVC.cs index 29b5832c..a6033b0d 100644 --- a/Essentials Devices Common/Essentials Devices Common/VC/MockVC/MockVC.cs +++ b/Essentials Devices Common/Essentials Devices Common/VC/MockVC/MockVC.cs @@ -1,231 +1,245 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Crestron.SimplSharp; - -using PepperDash.Core; -using PepperDash.Essentials.Core; - -namespace PepperDash.Essentials.Devices.Common.VideoCodec -{ - public class MockVC : VideoCodecBase - { - public MockVC(string key, string name) - : base(key, name) - { - - } - - protected override Func InCallFeedbackFunc - { - get { return () => _InCall; } - } - bool _InCall; - - protected override Func IncomingCallFeedbackFunc - { - get { return () => _IncomingCall; } - } - bool _IncomingCall; - - protected override Func TransmitMuteFeedbackFunc - { - get { return () => _TransmitMute; } - } - bool _TransmitMute; - - protected override Func ReceiveMuteFeedbackFunc - { - get { return () => _ReceiveMute; } - } - bool _ReceiveMute; - - protected override Func PrivacyModeFeedbackFunc - { - get { return () => _PrivacyModeIsOn; } - } - bool _PrivacyModeIsOn; - - /// - /// Dials, yo! - /// - public override void Dial(string s) - { - Debug.Console(1, this, "Dial: {0}", s); - - _InCall = true; - InCallFeedback.FireUpdate(); - } - - /// - /// Makes horrible tones go out on the wire! - /// - /// - public void SendDTMF(string s) - { - Debug.Console(1, this, "SendDTMF: {0}", s); - } - - /// - /// - /// - public override void EndCall() - { - Debug.Console(1, this, "EndCall"); - _InCall = false; - InCallFeedback.FireUpdate(); - } - - /// - /// For a call from the test methods below - /// - public override void AcceptCall() - { - Debug.Console(1, this, "AcceptCall"); - } - - /// - /// For a call from the test methods below - /// - public override void RejectCall() - { - Debug.Console(1, this, "RejectCall"); - } - - - /// - /// Called by routing to make it happen - /// - /// - public override void ExecuteSwitch(object selector) - { - Debug.Console(1, this, "ExecuteSwitch"); - - } - - /// - /// - /// - public override void ReceiveMuteOff() - { - Debug.Console(1, this, "ReceiveMuteOff"); - - if (!_ReceiveMute) - return; - _ReceiveMute = false; - ReceiveMuteIsOnFeedback.FireUpdate(); - } - - /// - /// - /// - public override void ReceiveMuteOn() - { - Debug.Console(1, this, "ReceiveMuteOn"); - if (_ReceiveMute) - return; - ReceiveMuteIsOnFeedback.FireUpdate(); - } - - /// - /// - /// - public override void ReceiveMuteToggle() - { - Debug.Console(1, this, "ReceiveMuteToggle"); - - _ReceiveMute = !_ReceiveMute; - ReceiveMuteIsOnFeedback.FireUpdate(); - } - - /// - /// - /// - /// - public override void SetReceiveVolume(ushort level) - { - Debug.Console(1, this, "SetReceiveVolume: {0}", level); - - } - - /// - /// - /// - public override void TransmitMuteOff() - { - Debug.Console(1, this, "TransmitMuteOff"); - - if (!_TransmitMute) - return; - _TransmitMute = false; - TransmitMuteIsOnFeedback.FireUpdate(); - } - - /// - /// - /// - public override void TransmitMuteOn() - { - Debug.Console(1, this, "TransmitMuteOn"); - if (_TransmitMute) - return; - TransmitMuteIsOnFeedback.FireUpdate(); - } - - public override void TransmitMuteToggle() - { - _TransmitMute = !_TransmitMute; - Debug.Console(1, this, "TransmitMuteToggle: {0}", _TransmitMute); - TransmitMuteIsOnFeedback.FireUpdate(); - } - - public override void SetTransmitVolume(ushort level) - { - Debug.Console(1, this, "SetTransmitVolume: {0}", level); - } - - public override void PrivacyModeOn() - { - Debug.Console(1, this, "PrivacyMuteOn"); - if (_PrivacyModeIsOn) - return; - _PrivacyModeIsOn = true; - PrivacyModeIsOnFeedback.FireUpdate(); - - } - - public override void PrivacyModeOff() - { - Debug.Console(1, this, "PrivacyMuteOff"); - if (!_PrivacyModeIsOn) - return; - _PrivacyModeIsOn = false; - PrivacyModeIsOnFeedback.FireUpdate(); - } - - public override void PrivacyModeToggle() - { - _PrivacyModeIsOn = !_PrivacyModeIsOn; - Debug.Console(1, this, "PrivacyMuteToggle: {0}", _PrivacyModeIsOn); - PrivacyModeIsOnFeedback.FireUpdate(); - } - - //******************************************************** - // SIMULATION METHODS - - public void TestIncomingCall(string url) - { - Debug.Console(1, this, "TestIncomingCall"); - - _IncomingCall = true; - IncomingCallFeedback.FireUpdate(); - } - - public void TestFarEndHangup() - { - Debug.Console(1, this, "TestFarEndHangup"); - - } - } +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Crestron.SimplSharp; + +using PepperDash.Core; +using PepperDash.Essentials.Core; + +namespace PepperDash.Essentials.Devices.Common.VideoCodec +{ + public class MockVC : VideoCodecBase + { + public MockVC(string key, string name) + : base(key, name) + { + + } + + protected override Func InCallFeedbackFunc + { + get { return () => _InCall; } + } + bool _InCall; + + protected override Func IncomingCallFeedbackFunc + { + get { return () => _IncomingCall; } + } + bool _IncomingCall; + + protected override Func TransmitMuteFeedbackFunc + { + get { return () => _TransmitMute; } + } + bool _TransmitMute; + + protected override Func ReceiveMuteFeedbackFunc + { + get { return () => _ReceiveMute; } + } + bool _ReceiveMute; + + protected override Func PrivacyModeFeedbackFunc + { + get { return () => _PrivacyModeIsOn; } + } + bool _PrivacyModeIsOn; + + protected override Func VolumeLevelFeedbackFunc + { + get { throw new NotImplementedException(); } + } + + /// + /// Dials, yo! + /// + public override void Dial(string s) + { + Debug.Console(1, this, "Dial: {0}", s); + + _InCall = true; + InCallFeedback.FireUpdate(); + } + + /// + /// + /// + public override void EndCall() + { + Debug.Console(1, this, "EndCall"); + _InCall = false; + InCallFeedback.FireUpdate(); + } + + /// + /// For a call from the test methods below + /// + public override void AcceptCall() + { + Debug.Console(1, this, "AcceptCall"); + } + + /// + /// For a call from the test methods below + /// + public override void RejectCall() + { + Debug.Console(1, this, "RejectCall"); + } + + /// + /// Makes horrible tones go out on the wire! + /// + /// + public override void SendDtmf(string s) + { + Debug.Console(1, this, "SendDTMF: {0}", s); + } + + public override void StartSharing() + { + + } + + public override void StopSharing() + { + + } + + /// + /// Called by routing to make it happen + /// + /// + public override void ExecuteSwitch(object selector) + { + Debug.Console(1, this, "ExecuteSwitch"); + + } + + /// + /// + /// + public override void ReceiveMuteOff() + { + Debug.Console(1, this, "ReceiveMuteOff"); + + if (!_ReceiveMute) + return; + _ReceiveMute = false; + ReceiveMuteIsOnFeedback.FireUpdate(); + } + + /// + /// + /// + public override void ReceiveMuteOn() + { + Debug.Console(1, this, "ReceiveMuteOn"); + if (_ReceiveMute) + return; + ReceiveMuteIsOnFeedback.FireUpdate(); + } + + /// + /// + /// + public override void ReceiveMuteToggle() + { + Debug.Console(1, this, "ReceiveMuteToggle"); + + _ReceiveMute = !_ReceiveMute; + ReceiveMuteIsOnFeedback.FireUpdate(); + } + + /// + /// + /// + /// + public override void SetReceiveVolume(ushort level) + { + Debug.Console(1, this, "SetReceiveVolume: {0}", level); + + } + + /// + /// + /// + public override void TransmitMuteOff() + { + Debug.Console(1, this, "TransmitMuteOff"); + + if (!_TransmitMute) + return; + _TransmitMute = false; + TransmitMuteIsOnFeedback.FireUpdate(); + } + + /// + /// + /// + public override void TransmitMuteOn() + { + Debug.Console(1, this, "TransmitMuteOn"); + if (_TransmitMute) + return; + TransmitMuteIsOnFeedback.FireUpdate(); + } + + public override void TransmitMuteToggle() + { + _TransmitMute = !_TransmitMute; + Debug.Console(1, this, "TransmitMuteToggle: {0}", _TransmitMute); + TransmitMuteIsOnFeedback.FireUpdate(); + } + + public override void SetTransmitVolume(ushort level) + { + Debug.Console(1, this, "SetTransmitVolume: {0}", level); + } + + public override void PrivacyModeOn() + { + Debug.Console(1, this, "PrivacyMuteOn"); + if (_PrivacyModeIsOn) + return; + _PrivacyModeIsOn = true; + PrivacyModeIsOnFeedback.FireUpdate(); + + } + + public override void PrivacyModeOff() + { + Debug.Console(1, this, "PrivacyMuteOff"); + if (!_PrivacyModeIsOn) + return; + _PrivacyModeIsOn = false; + PrivacyModeIsOnFeedback.FireUpdate(); + } + + public override void PrivacyModeToggle() + { + _PrivacyModeIsOn = !_PrivacyModeIsOn; + Debug.Console(1, this, "PrivacyMuteToggle: {0}", _PrivacyModeIsOn); + PrivacyModeIsOnFeedback.FireUpdate(); + } + + //******************************************************** + // SIMULATION METHODS + + public void TestIncomingCall(string url) + { + Debug.Console(1, this, "TestIncomingCall"); + + _IncomingCall = true; + IncomingCallFeedback.FireUpdate(); + } + + public void TestFarEndHangup() + { + Debug.Console(1, this, "TestFarEndHangup"); + + } + } } \ No newline at end of file diff --git a/Essentials Devices Common/Essentials Devices Common/VC/VideoCodecBase.cs b/Essentials Devices Common/Essentials Devices Common/VC/VideoCodecBase.cs index c844cfbb..68de18e1 100644 --- a/Essentials Devices Common/Essentials Devices Common/VC/VideoCodecBase.cs +++ b/Essentials Devices Common/Essentials Devices Common/VC/VideoCodecBase.cs @@ -9,7 +9,7 @@ using PepperDash.Essentials.Core; namespace PepperDash.Essentials.Devices.Common.VideoCodec { - public abstract class VideoCodecBase : Device, IRoutingSinkWithSwitching, IUsageTracking, IHasDialer, ICodecAudio + public abstract class VideoCodecBase : Device, IRoutingSinkWithSwitching, IUsageTracking, IHasDialer, IHasSharing, IBasicVolumeWithFeedback //, ICodecAudio { #region IUsageTracking Members @@ -32,6 +32,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec abstract protected Func ReceiveMuteFeedbackFunc { get; } abstract protected Func PrivacyModeFeedbackFunc { get; } + abstract protected Func VolumeLevelFeedbackFunc { get; } + public VideoCodecBase(string key, string name) : base(key, name) { @@ -41,6 +43,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec TransmitMuteIsOnFeedback = new BoolFeedback(TransmitMuteFeedbackFunc); PrivacyModeIsOnFeedback = new BoolFeedback(PrivacyModeFeedbackFunc); + VolumeLevelFeedback = new IntFeedback(VolumeLevelFeedbackFunc); + InputPorts = new RoutingPortCollection(); InCallFeedback.OutputChange += new EventHandler(InCallFeedback_OutputChange); @@ -56,11 +60,15 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec UsageTracker.EndDeviceUsage(); } } + #region IHasDialer Members public abstract void Dial(string s); public abstract void EndCall(); public abstract void AcceptCall(); public abstract void RejectCall(); + public abstract void SendDtmf(string s); + + #endregion public virtual List Feedbacks { @@ -101,5 +109,56 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec public BoolFeedback PrivacyModeIsOnFeedback { get; private set; } #endregion + + #region IHasSharing Members + + public abstract void StartSharing(); + public abstract void StopSharing(); + + public StringFeedback SharingSourceFeedback { get; private set; } + + #endregion + + #region IBasicVolumeWithFeedback Members + + public BoolFeedback MuteFeedback { get; private set; } + + public void MuteOff() + { + + } + + public void MuteOn() + { + + } + + public void SetVolume(ushort level) + { + + } + + public IntFeedback VolumeLevelFeedback { get; private set; } + + #endregion + + #region IBasicVolumeControls Members + + public void MuteToggle() + { + + } + + public void VolumeDown(bool pressRelease) + { + + } + + public void VolumeUp(bool pressRelease) + { + + } + + #endregion } } \ No newline at end of file diff --git a/Essentials/PepperDashEssentials/ControlSystem.cs b/Essentials/PepperDashEssentials/ControlSystem.cs index 9e995b5e..f33d6198 100644 --- a/Essentials/PepperDashEssentials/ControlSystem.cs +++ b/Essentials/PepperDashEssentials/ControlSystem.cs @@ -57,17 +57,6 @@ namespace PepperDash.Essentials //PortalSync = new PepperDashPortalSyncClient(); - - // CODEC TESTING - //GenericSshClient TestCodecClient = new GenericSshClient("TestCodec-1--SshClient", "10.11.50.135", 22, "crestron", "2H3Zu&OvgXp6"); - - //PepperDash.Essentials.Devices.VideoCodec.Cisco.CiscoCodec TestCodec = - // new PepperDash.Essentials.Devices.VideoCodec.Cisco.CiscoCodec("TestCodec-1", "Cisco Spark Room Kit", TestCodecClient, 8080); - - //TestCodec.CustomActivate(); - - // CODEC TESTING - Debug.Console(0, "Starting Essentials load from configuration"); ConfigReader.LoadConfig2(); LoadDevices(); @@ -137,6 +126,16 @@ namespace PepperDash.Essentials else Debug.Console(0, "WARNING: Cannot load unknown device type '{0}', key '{1}'.", devConf.Type, devConf.Key); } + + // CODEC TESTING + GenericSshClient TestCodecClient = new GenericSshClient("TestCodec-1--SshClient", "10.11.50.135", 22, "crestron", "2H3Zu&OvgXp6"); + + PepperDash.Essentials.Devices.Common.VideoCodec.Cisco.CiscoCodec TestCodec = + new PepperDash.Essentials.Devices.Common.VideoCodec.Cisco.CiscoCodec("TestCodec-1", "Cisco Spark Room Kit", TestCodecClient, 8080); + + TestCodec.CustomActivate(); + + // CODEC TESTING } /// diff --git a/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs b/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs index f95f3670..b3525e22 100644 --- a/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs +++ b/Essentials/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs @@ -8,7 +8,7 @@ using Crestron.SimplSharpPro.DeviceSupport; using PepperDash.Core; using PepperDash.Essentials; using PepperDash.Essentials.Core; -using PepperDash.Essentials.Core.SmartObjects; +using PepperDash.Essentials.Core.SmartObjects; using PepperDash.Essentials.Devices.Common.VideoCodec; namespace PepperDash.Essentials.UIDrivers.VC