Merge pull request #221 from AsterNET/NewAsteriskVersions

Fixes to determining Asterisk version
This commit is contained in:
Deantwo 2021-04-23 10:42:11 +02:00 committed by GitHub
commit aa16f17769
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 78 additions and 41 deletions

View file

@ -18,7 +18,7 @@ namespace AsterNET
/// <summary>Line separator</summary> /// <summary>Line separator</summary>
public const string LINE_SEPARATOR = "\r\n"; 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 ); RegexOptions.Compiled | RegexOptions.IgnoreCase );
public static Regex SHOW_VERSION_FILES_PATTERN = new Regex("^([\\S]+)\\s+Revision: ([0-9\\.]+)"); public static Regex SHOW_VERSION_FILES_PATTERN = new Regex("^([\\S]+)\\s+Revision: ([0-9\\.]+)");

View file

@ -1,7 +1,11 @@
namespace AsterNET.Manager namespace AsterNET.Manager
{ {
/// <summary>
/// Asterisk Version
/// </summary>
public enum AsteriskVersion public enum AsteriskVersion
{ {
Unknown = 0,
ASTERISK_1_0 = 10, ASTERISK_1_0 = 10,
ASTERISK_1_2 = 12, ASTERISK_1_2 = 12,
ASTERISK_1_4 = 14, ASTERISK_1_4 = 14,
@ -10,6 +14,11 @@ namespace AsterNET.Manager
ASTERISK_10 = 100, ASTERISK_10 = 100,
ASTERISK_11 = 110, ASTERISK_11 = 110,
ASTERISK_12 = 120, ASTERISK_12 = 120,
ASTERISK_13 = 130 ASTERISK_13 = 130,
ASTERISK_14 = 140,
ASTERISK_15 = 150,
ASTERISK_16 = 160,
ASTERISK_17 = 170,
ASTERISK_Newer = 999
} }
} }

View file

@ -1681,6 +1681,31 @@ namespace AsterNET.Manager
VAR_DELIMITER = new char[] { ',' }; VAR_DELIMITER = new char[] { ',' };
return Manager.AsteriskVersion.ASTERISK_13; 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 else
throw new ManagerException("Unknown Asterisk version " + version); throw new ManagerException("Unknown Asterisk version " + version);
} }
@ -1697,9 +1722,12 @@ namespace AsterNET.Manager
string line1; string line1;
line1 = (string)showVersionFilesResult[0]; line1 = (string)showVersionFilesResult[0];
if (line1 != null && line1.StartsWith("File")) if (line1 != null && line1.StartsWith("File"))
{
VAR_DELIMITER = new char[] { '|' };
return AsteriskVersion.ASTERISK_1_2; return AsteriskVersion.ASTERISK_1_2;
} }
} }
}
return AsteriskVersion.ASTERISK_1_0; return AsteriskVersion.ASTERISK_1_0;
} }