From acd9e885cc454009b112836741fa515cc8772e23 Mon Sep 17 00:00:00 2001
From: Deantwo <2676134+Deantwo@users.noreply.github.com>
Date: Tue, 21 Jan 2020 10:47:48 +0100
Subject: [PATCH 1/3] Extended AsteriskVersion Enum
Added an "Unknown" option.
Added Asterisk version up to 17.
Added a "Newer" option.
---
.../Asterisk.NET/Manager/AsteriskVersion.cs | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/Asterisk.2013/Asterisk.NET/Manager/AsteriskVersion.cs b/Asterisk.2013/Asterisk.NET/Manager/AsteriskVersion.cs
index 7877fdc..a3e00b4 100644
--- a/Asterisk.2013/Asterisk.NET/Manager/AsteriskVersion.cs
+++ b/Asterisk.2013/Asterisk.NET/Manager/AsteriskVersion.cs
@@ -1,7 +1,11 @@
namespace AsterNET.Manager
{
+ ///
+ /// Asterisk Version
+ ///
public enum AsteriskVersion
{
+ Unknown = 0,
ASTERISK_1_0 = 10,
ASTERISK_1_2 = 12,
ASTERISK_1_4 = 14,
@@ -10,6 +14,11 @@ namespace AsterNET.Manager
ASTERISK_10 = 100,
ASTERISK_11 = 110,
ASTERISK_12 = 120,
- ASTERISK_13 = 130
+ ASTERISK_13 = 130,
+ ASTERISK_14 = 140,
+ ASTERISK_15 = 150,
+ ASTERISK_16 = 160,
+ ASTERISK_17 = 170,
+ ASTERISK_Newer = 999
}
-}
\ No newline at end of file
+}
From 3adadb1c6355754c6928c63c43ac0e919253ef86 Mon Sep 17 00:00:00 2001
From: Deantwo <2676134+Deantwo@users.noreply.github.com>
Date: Tue, 21 Jan 2020 12:33:47 +0100
Subject: [PATCH 2/3] Added new AsteriskVersions to determineVersion()
Added up to Asterisk v17.
Added an attempt at getting newer versions too.
---
.../Asterisk.NET/Manager/ManagerConnection.cs | 104 +++++++++++-------
1 file changed, 66 insertions(+), 38 deletions(-)
diff --git a/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs b/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs
index daf82bb..e94bd2c 100644
--- a/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs
+++ b/Asterisk.2013/Asterisk.NET/Manager/ManagerConnection.cs
@@ -167,7 +167,7 @@ namespace AsterNET.Manager
/// Default Slow Reconnect interval in milliseconds.
private int reconnectIntervalMax = 10000;
- public char[] VAR_DELIMITER = { '|' };
+ public char[] VAR_DELIMITER = { '|' };
#endregion
@@ -1646,43 +1646,68 @@ namespace AsterNET.Manager
if (m.Groups.Count >= 2)
{
version = m.Groups[1].Value;
- if (version.StartsWith("1.4."))
- {
- VAR_DELIMITER = new char[] { '|' };
- return AsteriskVersion.ASTERISK_1_4;
- }
- else if (version.StartsWith("1.6."))
- {
- VAR_DELIMITER = new char[] { '|' };
- return Manager.AsteriskVersion.ASTERISK_1_6;
- }
- else if (version.StartsWith("1.8."))
- {
- VAR_DELIMITER = new char[] { '|' };
- return Manager.AsteriskVersion.ASTERISK_1_8;
- }
- else if (version.StartsWith("10."))
- {
- VAR_DELIMITER = new char[] { '|' };
- return Manager.AsteriskVersion.ASTERISK_10;
- }
- else if (version.StartsWith("11."))
- {
- VAR_DELIMITER = new char[] { ',' };
- return Manager.AsteriskVersion.ASTERISK_11;
- }
- else if (version.StartsWith("12."))
- {
- VAR_DELIMITER = new char[] { ',' };
- return Manager.AsteriskVersion.ASTERISK_12;
- }
- else if (version.StartsWith("13."))
- {
- VAR_DELIMITER = new char[] { ',' };
- return Manager.AsteriskVersion.ASTERISK_13;
- }
- else
- throw new ManagerException("Unknown Asterisk version " + version);
+ if (version.StartsWith("1.4."))
+ {
+ VAR_DELIMITER = new char[] { '|' };
+ return AsteriskVersion.ASTERISK_1_4;
+ }
+ else if (version.StartsWith("1.6."))
+ {
+ VAR_DELIMITER = new char[] { '|' };
+ return Manager.AsteriskVersion.ASTERISK_1_6;
+ }
+ else if (version.StartsWith("1.8."))
+ {
+ VAR_DELIMITER = new char[] { '|' };
+ return Manager.AsteriskVersion.ASTERISK_1_8;
+ }
+ else if (version.StartsWith("10."))
+ {
+ VAR_DELIMITER = new char[] { '|' };
+ return Manager.AsteriskVersion.ASTERISK_10;
+ }
+ else if (version.StartsWith("11."))
+ {
+ VAR_DELIMITER = new char[] { ',' };
+ return Manager.AsteriskVersion.ASTERISK_11;
+ }
+ else if (version.StartsWith("12."))
+ {
+ VAR_DELIMITER = new char[] { ',' };
+ return Manager.AsteriskVersion.ASTERISK_12;
+ }
+ else if (version.StartsWith("13."))
+ {
+ VAR_DELIMITER = new char[] { ',' };
+ return Manager.AsteriskVersion.ASTERISK_13;
+ }
+ else if (version.StartsWith("14."))
+ {
+ VAR_DELIMITER = new char[] { ',' };
+ return Manager.AsteriskVersion.ASTERISK_14;
+ }
+ else if (version.StartsWith("15."))
+ {
+ VAR_DELIMITER = new char[] { ',' };
+ return Manager.AsteriskVersion.ASTERISK_15;
+ }
+ else if (version.StartsWith("16."))
+ {
+ VAR_DELIMITER = new char[] { ',' };
+ return Manager.AsteriskVersion.ASTERISK_16;
+ }
+ else if (version.StartsWith("17."))
+ {
+ VAR_DELIMITER = new char[] { ',' };
+ return Manager.AsteriskVersion.ASTERISK_17;
+ }
+ else if (version.IndexOf('.') >= 2)
+ {
+ VAR_DELIMITER = new char[] { ',' };
+ return Manager.AsteriskVersion.ASTERISK_Newer;
+ }
+ else
+ throw new ManagerException("Unknown Asterisk version " + version);
}
}
}
@@ -1697,7 +1722,10 @@ namespace AsterNET.Manager
string line1;
line1 = (string)showVersionFilesResult[0];
if (line1 != null && line1.StartsWith("File"))
+ {
+ VAR_DELIMITER = new char[] { '|' };
return AsteriskVersion.ASTERISK_1_2;
+ }
}
}
return AsteriskVersion.ASTERISK_1_0;
From efc6a4d025a192b47fd4ab154da27484256bc8cb Mon Sep 17 00:00:00 2001
From: Deantwo <2676134+Deantwo@users.noreply.github.com>
Date: Tue, 21 Jan 2020 12:34:57 +0100
Subject: [PATCH 3/3] Fixed possible Regex error
---
Asterisk.2013/Asterisk.NET/Common.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Asterisk.2013/Asterisk.NET/Common.cs b/Asterisk.2013/Asterisk.NET/Common.cs
index e88a0ef..cfc8e43 100644
--- a/Asterisk.2013/Asterisk.NET/Common.cs
+++ b/Asterisk.2013/Asterisk.NET/Common.cs
@@ -18,7 +18,7 @@ namespace AsterNET
/// Line separator
public const string LINE_SEPARATOR = "\r\n";
- public static Regex ASTERISK_VERSION = new Regex( "^Asterisk\\s+\\D*([0-9]+.[0-9]+.[0-9]+|[1-9][0-9]-r[0-9]+|[0-9]+.[0-9]+-cert[0-9]).*$",
+ public static Regex ASTERISK_VERSION = new Regex( "^Asterisk\\s+\\D*([0-9]+\\.[0-9]+\\.[0-9]+|[1-9][0-9]-r[0-9]+|[0-9]+\\.[0-9]+-cert[0-9]).*$",
RegexOptions.Compiled | RegexOptions.IgnoreCase );
public static Regex SHOW_VERSION_FILES_PATTERN = new Regex("^([\\S]+)\\s+Revision: ([0-9\\.]+)");