Updated getters for SIP URI and phone number to use correct status properties. Updates to xConfiguration and xStatus classes to address differences between Spark and Spark Plus

This commit is contained in:
Neil Dorin
2017-10-24 11:56:28 -06:00
parent 17fd9488f2
commit 90c12a97fa
4 changed files with 65 additions and 17 deletions

View File

@@ -42,14 +42,16 @@ namespace PepperDash.Essentials.Devices.Common.Codec
public void AddFoldersToDirectory(List<DirectoryItem> folders)
{
DirectoryResults.AddRange(folders);
if(folders != null)
DirectoryResults.AddRange(folders);
SortDirectory();
}
public void AddContactsToDirectory(List<DirectoryItem> contacts)
{
DirectoryResults.AddRange(contacts);
if(contacts != null)
DirectoryResults.AddRange(contacts);
SortDirectory();
}

View File

@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using Crestron.SimplSharp;
using Crestron.SimplSharp.Net.Https;
using Crestron.SimplSharp.CrestronXml;
@@ -368,8 +369,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
prefix + "/Status/Video/Selfview" + Delimiter +
prefix + "/Status/Video/Layout" + Delimiter +
prefix + "/Bookings" + Delimiter +
prefix + "/Event/CallDisconnect" + Delimiter;// +
//prefix + "/Event/Bookings" + Delimiter;
prefix + "/Event/CallDisconnect" + Delimiter +
prefix + "/Event/Bookings" + Delimiter;
return base.CustomActivate();
}
@@ -662,13 +663,14 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
}
else if (response.IndexOf("\"Event\":{") > -1)
{
// Event Message
if (response.IndexOf("\"CallDisconnect\":{") > -1)
{
CiscoCodecEvents.RootObject eventReceived = new CiscoCodecEvents.RootObject();
CiscoCodecEvents.RootObject eventReceived = new CiscoCodecEvents.RootObject();
JsonConvert.PopulateObject(response, eventReceived);
JsonConvert.PopulateObject(response, eventReceived);
EvalutateEvent(eventReceived);
EvalutateDisconnectEvent(eventReceived);
}
}
else if (response.IndexOf("\"CommandResponse\":{") > -1)
{
@@ -760,7 +762,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
/// Evaluates an event received from the codec
/// </summary>
/// <param name="eventReceived"></param>
void EvalutateEvent(CiscoCodecEvents.RootObject eventReceived)
void EvalutateDisconnectEvent(CiscoCodecEvents.RootObject eventReceived)
{
if (eventReceived.Event.CallDisconnect != null)
{
@@ -1286,18 +1288,30 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
{
get
{
if (CodecConfiguration.Configuration.H323.H323Alias.E164 != null)
return CodecConfiguration.Configuration.H323.H323Alias.E164.Value;
if (CodecStatus.Status.SIP.Registration.Count > 0)
{
var match = Regex.Match(CodecStatus.Status.SIP.Registration[0].URI.Value, "\\d+"); // extract numbers only
if (match.Success)
{
Debug.Console(1, "Unable to extract phone number from string: '{0}'", CodecStatus.Status.SIP.Registration[0].URI.Value);
return match.Groups[1].Value;
}
else
return string.Empty;
}
else
{
Debug.Console(1, "Unable to extract phone number. No SIP Registration items found");
return string.Empty;
}
}
}
public override string SipUri
{
get
{
if (CodecConfiguration.Configuration.H323.H323Alias.ID != null)
return CodecConfiguration.Configuration.H323.H323Alias.ID.Value;
if (CodecStatus.Status.SIP.AlternateURI.Primary.URI.Value != null)
return CodecStatus.Status.SIP.AlternateURI.Primary.URI.Value;
else
return string.Empty;
}

View File

@@ -239,7 +239,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
public class Cameras
{
public List<Camera> Camera { get; set; }
//public List<Camera> Camera { get; set; }
public SpeakerTrack SpeakerTrack { get; set; }
}

View File

@@ -313,12 +313,12 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
public class Cameras
{
public List<Camera> Camera { get; set; }
//public List<Camera> Camera { get; set; }
public SpeakerTrack SpeakerTrack { get; set; }
public Cameras()
{
Camera = new List<Camera>();
//Camera = new List<Camera>();
SpeakerTrack = new SpeakerTrack();
}
}
@@ -1109,6 +1109,26 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
}
}
public class Primary
{
public URI URI { get; set; }
public Primary()
{
URI = new URI();
}
}
public class AlternateURI
{
public Primary Primary { get; set; }
public AlternateURI()
{
Primary = new Primary();
}
}
public class Authentication
{
public string Value { get; set; }
@@ -1190,6 +1210,11 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
public Reason3 Reason { get; set; }
public Status10 Status { get; set; }
public URI3 URI { get; set; }
public Registration()
{
URI = new URI3();
}
}
public class Secure
@@ -1204,6 +1229,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
public class SIP
{
public AlternateURI AlternateURI { get; set; }
public Authentication Authentication { get; set; }
public CallForward CallForward { get; set; }
public Mailbox Mailbox { get; set; }
@@ -1211,6 +1237,12 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
public List<Registration> Registration { get; set; }
public Secure Secure { get; set; }
public Verified Verified { get; set; }
public SIP()
{
AlternateURI = new AlternateURI();
Registration = new List<Registration>();
}
}
public class Mode7