From 133dc71252cb0c85b51543fe81400b1ded17d9bd Mon Sep 17 00:00:00 2001 From: Dan Ryan Date: Tue, 14 Apr 2026 23:09:55 -0700 Subject: [PATCH] Long dead vendors removed, closes #514 --- Messaging/Program.cs | 1 - Messaging/appsettings.json | 1 - NumberSearch.DataAccess/Models/PhoneNumber.cs | 2 - .../Controllers/SearchController.cs | 2 +- NumberSearch.Mvc/Models/MvcConfiguration.cs | 8 -- NumberSearch.Mvc/appsettings.Development.json | 1 - NumberSearch.Mvc/appsettings.json | 8 -- .../Controllers/HomeController.cs | 2 +- NumberSearch.Ops/Models/OpsConfig.cs | 6 - NumberSearch.Ops/appsettings.Development.json | 1 - NumberSearch.Ops/appsettings.json | 6 - NumberSearch.Tests/Functional.cs | 3 - NumberSearch.Tests/Ingest.cs | 29 +--- NumberSearch.Tests/Integration.cs | 128 ------------------ azure-pipelines-linux-ingest.yml | 2 - azure-pipelines-linux-ops.yml | 4 - azure-pipelines-linux.yml | 8 -- azure-pipelines.yml | 4 - 18 files changed, 3 insertions(+), 213 deletions(-) diff --git a/Messaging/Program.cs b/Messaging/Program.cs index d10b2db8..6a9d9fe8 100644 --- a/Messaging/Program.cs +++ b/Messaging/Program.cs @@ -2605,7 +2605,6 @@ public class Connectionstrings public string PostgresqlProd { get; set; } = string.Empty; public string BulkVSUsername { get; set; } = string.Empty; public string BulkVSPassword { get; set; } = string.Empty; - public string TeleAPI { get; set; } = string.Empty; public string PComNetUsername { get; set; } = string.Empty; public string PComNetPassword { get; set; } = string.Empty; public string PComNetIncomingToken { get; set; } = string.Empty; diff --git a/Messaging/appsettings.json b/Messaging/appsettings.json index 559ec129..e7ee1145 100644 --- a/Messaging/appsettings.json +++ b/Messaging/appsettings.json @@ -9,7 +9,6 @@ "PostgresqlProd": "", "BulkVSUsername": "", "BulkVSPassword": "", - "TeleAPI": "", "PComNetUsername": "", "PComNetPassword": "", "PComNetIncomingToken": "", diff --git a/NumberSearch.DataAccess/Models/PhoneNumber.cs b/NumberSearch.DataAccess/Models/PhoneNumber.cs index f0969bd9..d5c20425 100644 --- a/NumberSearch.DataAccess/Models/PhoneNumber.cs +++ b/NumberSearch.DataAccess/Models/PhoneNumber.cs @@ -15,8 +15,6 @@ public enum IngestProvider BulkVS, TeliMessage, FirstPointCom, - Peerless, - Call48, IntegrationTest } diff --git a/NumberSearch.Mvc/Controllers/SearchController.cs b/NumberSearch.Mvc/Controllers/SearchController.cs index 8c220843..1ee95d1d 100644 --- a/NumberSearch.Mvc/Controllers/SearchController.cs +++ b/NumberSearch.Mvc/Controllers/SearchController.cs @@ -17,7 +17,7 @@ public class SearchController(MvcConfiguration mvcConfiguration) : Controller private readonly MvcConfiguration _configuration = mvcConfiguration; /// - /// This is the default route in this app. It's a search page that allows you to query the TeleAPI for phone numbers. + /// This is the default route in this app. It's a search page that allows you to query for available phone numbers. /// /// A complete or partial phone number. /// diff --git a/NumberSearch.Mvc/Models/MvcConfiguration.cs b/NumberSearch.Mvc/Models/MvcConfiguration.cs index 3b3023b1..7a13f062 100644 --- a/NumberSearch.Mvc/Models/MvcConfiguration.cs +++ b/NumberSearch.Mvc/Models/MvcConfiguration.cs @@ -2,9 +2,6 @@ { public class MvcConfiguration { - public string TeleAPI { get; set; } = string.Empty; - public string CallFlow { get; set; } = string.Empty; - public string ChannelGroup { get; set; } = string.Empty; public string PComNetUsername { get; set; } = string.Empty; public string PComNetPassword { get; set; } = string.Empty; public string BulkVSAPIKEY { get; set; } = string.Empty; @@ -17,10 +14,7 @@ public class MvcConfiguration public string SmtpPassword { get; set; } = string.Empty; public string MicrosoftClientId { get; set; } = string.Empty; public string MicrosoftClientSecret { get; set; } = string.Empty; - public string PeerlessAPIKey { get; set; } = string.Empty; public string InvoiceNinjaToken { get; set; } = string.Empty; - public string Data247Username { get; set; } = string.Empty; - public string Data247Password { get; set; } = string.Empty; public string EmailOrders { get; set; } = string.Empty; public string EmailDan { get; set; } = string.Empty; public string EmailTom { get; set; } = string.Empty; @@ -28,8 +22,6 @@ public class MvcConfiguration public string AzureStorageAccount { get; set; } = string.Empty; public string TeleDynamicsUsername { get; set; } = string.Empty; public string TeleDynamicsPassword { get; set; } = string.Empty; - public string Call48Username { get; set; } = string.Empty; - public string Call48Password { get; set; } = string.Empty; public string CallWithUsAPIKEY { get; set; } = string.Empty; public string FusionPBXUsername { get; set; } = string.Empty; public string FusionPBXPassword { get; set; } = string.Empty; diff --git a/NumberSearch.Mvc/appsettings.Development.json b/NumberSearch.Mvc/appsettings.Development.json index f80da32d..99f05034 100644 --- a/NumberSearch.Mvc/appsettings.Development.json +++ b/NumberSearch.Mvc/appsettings.Development.json @@ -7,7 +7,6 @@ } }, "ConnectionStrings": { - "TeleAPI": "", "PComNetUsername": "", "PComNetPassword": "", "BulkVSAPIKEY": "", diff --git a/NumberSearch.Mvc/appsettings.json b/NumberSearch.Mvc/appsettings.json index 3408852c..5de4c1a2 100644 --- a/NumberSearch.Mvc/appsettings.json +++ b/NumberSearch.Mvc/appsettings.json @@ -1,8 +1,5 @@ { "ConnectionStrings": { - "TeleAPI": "", - "CallFlow": "", - "ChannelGroup": "", "PComNetUsername": "", "PComNetPassword": "", "PComNetIncomingToken": "", @@ -18,10 +15,7 @@ "SmtpPassword": "", "MicrosoftClientId": "", "MicrosoftClientSecret": "", - "PeerlessAPIKey": "", "InvoiceNinjaToken": "", - "Data247Username": "", - "Data247Password": "", "EmailOrders": "", "EmailDan": "", "EmailTom": "", @@ -29,8 +23,6 @@ "AzureStorageAccount": "", "TeleDynamicsUsername": "", "TeleDynamicsPassword": "", - "Call48Username": "", - "Call48Password": "", "CallWithUsAPIKEY": "", "MessagingAPISecret": "", "OpsUsername": "", diff --git a/NumberSearch.Ops/Controllers/HomeController.cs b/NumberSearch.Ops/Controllers/HomeController.cs index 144a1e65..dad6c3e7 100644 --- a/NumberSearch.Ops/Controllers/HomeController.cs +++ b/NumberSearch.Ops/Controllers/HomeController.cs @@ -473,7 +473,7 @@ public async Task Ingests(int cycle, string ingestedFrom, string } /// - /// This is the default route in this app. It's a search page that allows you to query the TeleAPI for phone numbers. + /// This is the default route in this app. It's a search page that allows you to query for available phone numbers. /// /// A complete or partial phone number. /// A view of nothing, or the result of the query. diff --git a/NumberSearch.Ops/Models/OpsConfig.cs b/NumberSearch.Ops/Models/OpsConfig.cs index ded9f326..580e301a 100644 --- a/NumberSearch.Ops/Models/OpsConfig.cs +++ b/NumberSearch.Ops/Models/OpsConfig.cs @@ -2,9 +2,6 @@ { public class OpsConfig { - public string TeleAPI { get; set; } = string.Empty; - public string CallFlow { get; set; } = string.Empty; - public string ChannelGroup { get; set; } = string.Empty; public string PComNetUsername { get; set; } = string.Empty; public string PComNetPassword { get; set; } = string.Empty; public string BulkVSAPIKEY { get; set; } = string.Empty; @@ -17,10 +14,7 @@ public class OpsConfig public string SmtpPassword { get; set; } = string.Empty; public string MicrosoftClientId { get; set; } = string.Empty; public string MicrosoftClientSecret { get; set; } = string.Empty; - public string PeerlessAPIKey { get; set; } = string.Empty; public string InvoiceNinjaToken { get; set; } = string.Empty; - public string Data247Username { get; set; } = string.Empty; - public string Data247Password { get; set; } = string.Empty; public string EmailOrders { get; set; } = string.Empty; public string EmailDan { get; set; } = string.Empty; public string EmailTom { get; set; } = string.Empty; diff --git a/NumberSearch.Ops/appsettings.Development.json b/NumberSearch.Ops/appsettings.Development.json index f80da32d..99f05034 100644 --- a/NumberSearch.Ops/appsettings.Development.json +++ b/NumberSearch.Ops/appsettings.Development.json @@ -7,7 +7,6 @@ } }, "ConnectionStrings": { - "TeleAPI": "", "PComNetUsername": "", "PComNetPassword": "", "BulkVSAPIKEY": "", diff --git a/NumberSearch.Ops/appsettings.json b/NumberSearch.Ops/appsettings.json index e221f2e7..ebb5149e 100644 --- a/NumberSearch.Ops/appsettings.json +++ b/NumberSearch.Ops/appsettings.json @@ -7,9 +7,6 @@ } }, "ConnectionStrings": { - "TeleAPI": "", - "CallFlow": "", - "ChannelGroup": "", "PComNetUsername": "", "PComNetPassword": "", "BulkVSAPIKEY": "", @@ -22,10 +19,7 @@ "SmtpPassword": "", "MicrosoftClientId": "", "MicrosoftClientSecret": "", - "PeerlessAPIKey": "", "InvoiceNinjaToken": "", - "Data247Username": "", - "Data247Password": "", "EmailOrders": "", "EmailDan": "", "EmailTom": "", diff --git a/NumberSearch.Tests/Functional.cs b/NumberSearch.Tests/Functional.cs index 6ee0ab33..e629f892 100644 --- a/NumberSearch.Tests/Functional.cs +++ b/NumberSearch.Tests/Functional.cs @@ -10,7 +10,6 @@ namespace NumberSearch.Tests { public class Functional : IClassFixture> { - //private readonly Guid token; //private readonly ITestOutputHelper output; //private readonly IConfiguration configuration; protected readonly HttpClient _client; @@ -27,8 +26,6 @@ public class Functional : IClassFixture> // configuration = config; - // token = Guid.Parse(config.GetConnectionString("TeleAPI")); - // _client = factory.CreateClient(); //} diff --git a/NumberSearch.Tests/Ingest.cs b/NumberSearch.Tests/Ingest.cs index da01b986..c973cc2c 100644 --- a/NumberSearch.Tests/Ingest.cs +++ b/NumberSearch.Tests/Ingest.cs @@ -14,7 +14,6 @@ namespace NumberSearch.Tests { public class FunctionalIngest { - private readonly Guid token; private readonly ITestOutputHelper output; private readonly Credentials pComNetCredentials; private readonly string bulkVSKey; @@ -22,10 +21,7 @@ public class FunctionalIngest private readonly string bulkVSUsername; private readonly string bulkVSPassword; private readonly string postgresql; - private readonly string peerlessAPIKey; private readonly string invoiceNinjaToken; - private readonly string call48Username; - private readonly string call48Password; private readonly IConfiguration configuration; private readonly IngestConfiguration ingestConfiguration; @@ -50,12 +46,8 @@ public FunctionalIngest(ITestOutputHelper output) bulkVSSecret = config.GetConnectionString("BulkVSAPISecret"); bulkVSUsername = config.GetConnectionString("BulkVSUsername"); bulkVSPassword = config.GetConnectionString("BulkVSPassword"); - token = Guid.Parse(config.GetConnectionString("TeleAPI")); postgresql = config.GetConnectionString("PostgresqlProd"); - peerlessAPIKey = config.GetConnectionString("PeerlessAPIKey"); invoiceNinjaToken = config.GetConnectionString("InvoiceNinjaToken"); - call48Username = config.GetConnectionString("Call48Username"); - call48Password = config.GetConnectionString("Call48Password"); var appConfig = new IngestConfiguration { @@ -200,20 +192,6 @@ public void CategorizeNumbers() // //Assert // } - // This test is slow too. - //[Fact] - //public async Task OwnedTeleMessage() - //{ - // // Arrange - - // // Act - // var results = await Owned.TeleMessageAsync(token).ConfigureAwait(false); - - // // Assert - // Assert.NotNull(results); - // output.WriteLine(results.Count().ToString()); - //} - //[Fact] //public async Task UpdateBulkVSPortRequestStatusesAsync() //{ @@ -221,11 +199,6 @@ public void CategorizeNumbers() // await PortRequests.UpdateStatusesBulkVSAsync(configuration); //} - //[Fact] - //public async Task Call48Get360Test() - //{ - // // Update the statuses of all the active port requests with BulkVS. - // _ = await Provider.Call48Async(call48Username,call48Password, PhoneNumbersNA.AreaCode.States.ToArray().Where(x => x.State == "Oregon" || x.State == "Washington").ToArray(), postgresql); - //} + } } \ No newline at end of file diff --git a/NumberSearch.Tests/Integration.cs b/NumberSearch.Tests/Integration.cs index 93d15e9e..37ac8212 100644 --- a/NumberSearch.Tests/Integration.cs +++ b/NumberSearch.Tests/Integration.cs @@ -68,10 +68,7 @@ public Integration(ITestOutputHelper output) invoiceNinjaToken = config.GetConnectionString("InvoiceNinjaToken"); _teleDynamicsUsername = config.GetConnectionString("TeleDynamicsUsername"); _teleDynamicsPassword = config.GetConnectionString("TeleDynamicsPassword"); - //_call48Username = config.GetConnectionString("Call48Username"); - //_call48Password = config.GetConnectionString("Call48Password"); //_callWithUsAPIkey = config.GetConnectionString("CallWithUsAPIKEY"); - //_peerlessApiKey = config.GetConnectionString("PeerlessAPIKey"); } // Takes 6 seconds to run @@ -563,21 +560,6 @@ public async Task CreateAndUpdateBillingClientByIdAsync() // //output.WriteLine(JsonSerializer.Serialize(result)); //} - // We are no longer using data 24/7 for cnam lookups. - //[Fact] - //public async Task LIDBLookupAsync() - //{ - // // Arrange - // string phoneNumber = "14257808879"; - - // // Act - // var result = await LIDBLookup.GetAsync(phoneNumber, _data247username, _data247password); - - // // Assert - // Assert.NotNull(result); - // output.WriteLine(JsonSerializer.Serialize(result)); - //} - [Fact] public async Task RateCenterLookupAsync() { @@ -993,116 +975,6 @@ public async Task BulkVSRESTGetPortRequestsAsync() output.WriteLine(JsonSerializer.Serialize(result)); } - //[Fact] - //public async Task Call48LoginTestAsync() - //{ - // // Act - // var result = await Login.LoginAsync(_call48Username, _call48Password); - - // Assert.NotNull(result); - // Assert.NotNull(result.data.token); - // Assert.True(result.code == 200); - // output.WriteLine(JsonSerializer.Serialize(result)); - //} - - //[Fact] - //public async Task Call48LocalNumberLookupTestAsync() - //{ - // // Act - // var result = await Login.LoginAsync(_call48Username, _call48Password); - - // var results = await Search.GetLocalNumbersAsync("WA", string.Empty, "206", string.Empty, result.data.token); - - // if (results is null || !results.data.result.Any()) - // { - // results = await Search.GetLocalNumbersAsync("WA", string.Empty, "425", string.Empty, result.data.token); - // } - - // Assert.NotEmpty(results.data.result); - // output.WriteLine(results.data.result.Length.ToString()); - // foreach (var number in results.data.result) - // { - // Assert.False(string.IsNullOrWhiteSpace(number.number)); - // Assert.True(number.state == "WA"); - // Assert.False(string.IsNullOrWhiteSpace(number.ratecenter)); - // output.WriteLine(JsonSerializer.Serialize(number)); - // } - - //} - - //[Fact] - //public async Task Call48GetNumbersTestAsync() - //{ - // // Act - // var cred = await Login.LoginAsync(_call48Username, _call48Password); - - // var results = await Search.GetAsync("OR", 541, cred.data.token); - - // if (results is null || !results.Any()) - // { - // results = await Search.GetAsync("WA", 425, cred.data.token); - // } - - // Assert.NotEmpty(results); - // output.WriteLine(results.Count().ToString()); - // foreach (var result in results) - // { - // Assert.True(result.NPA > 99); - // Assert.True(result.NXX > 99); - // // XXXX can be 0001 which as an int is 1. - // Assert.True(result.XXXX > 0); - // Assert.False(string.IsNullOrWhiteSpace(result.DialedNumber)); - // // Reenabled these after June 2020 starts. - // //Assert.False(string.IsNullOrWhiteSpace(result.City)); - // //Assert.False(string.IsNullOrWhiteSpace(result.State)); - // Assert.False(string.IsNullOrWhiteSpace(result.IngestedFrom)); - // output.WriteLine(JsonSerializer.Serialize(result)); - // } - //} - - //[Fact] - //public async Task Call48GetRatecentersTestAsync() - //{ - // // Act - // var cred = await Login.LoginAsync(_call48Username, _call48Password); - - // var results = await Ratecenter.GetAllRatecentersAsync(PhoneNumbersNA.AreaCode.States.ToArray(), cred.data.token); - - // Assert.NotEmpty(results); - // output.WriteLine(results.Length.ToString()); - // foreach (var result in results) - // { - // Assert.NotEmpty(result.Ratecenters); - // output.WriteLine(JsonSerializer.Serialize(result)); - // } - - //} - - // Disabled so as not to purchase a bunch of numbers by accident. - //[Fact] - //public async Task Call48PurchaseLocalNumberTestAsync() - //{ - // // Act - // var cred = await Login.LoginAsync(_call48Username, _call48Password); - - // var results = await Search.GetAsync("WA", 206, cred.data.token); - - // Assert.NotEmpty(results); - // output.WriteLine(results.Count().ToString()); - // var number = results.FirstOrDefault(); - - // var checkExist = await Search.GetLocalNumbersAsync(string.Empty, number.State, number.NPA.ToString(), number.NXX.ToString(), cred.data.token); - - // var numberToPurchase = checkExist.data.result.Where(x => x.did.Replace("-", string.Empty) == number.DialedNumber).FirstOrDefault(); - // output.WriteLine(JsonSerializer.Serialize(numberToPurchase)); - - // var purchaseOrder = await Purchase.PurchasePhoneNumberAsync(checkExist.data.loc, numberToPurchase, cred.data.token); - // output.WriteLine(JsonSerializer.Serialize(purchaseOrder)); - - // Assert.NotNull(purchaseOrder); - // Assert.True(purchaseOrder.code == 200); - //} - [Fact] public async Task GetCarrierByOCNAsync() { diff --git a/azure-pipelines-linux-ingest.yml b/azure-pipelines-linux-ingest.yml index 4dd2433e..049b4f28 100644 --- a/azure-pipelines-linux-ingest.yml +++ b/azure-pipelines-linux-ingest.yml @@ -11,13 +11,11 @@ pool: variables: buildConfiguration: 'Release' - ConnectionStrings.TeleAPI: $(TeleAPI) ConnectionStrings.SmtpUsername: $(SmtpUsername) ConnectionStrings.SmtpPassword: $(SmtpPassword) ConnectionStrings.PostgresqlProd: $(PostgresqlProd) ConnectionStrings.PComNetUsername: $(PComNetUsername) ConnectionStrings.PComNetPassword: $(PComNetPassword) - ConnectionStrings.PeerlessAPIKey: $(PeerlessAPIKey) ConnectionStrings.BulkVSAPISecret: $(BulkVSAPISecret) ConnectionStrings.BulkVSAPIKEY: $(BulkVSAPIKEY) ConnectionStrings.InvoiceNinjaToken: $(InvoiceNinjaToken) diff --git a/azure-pipelines-linux-ops.yml b/azure-pipelines-linux-ops.yml index 149192a9..0d06cde3 100644 --- a/azure-pipelines-linux-ops.yml +++ b/azure-pipelines-linux-ops.yml @@ -11,16 +11,12 @@ pool: variables: buildConfiguration: 'Release' - ConnectionStrings.TeleAPI: $(TeleAPI) ConnectionStrings.SmtpUsername: $(SmtpUsername) ConnectionStrings.SmtpPassword: $(SmtpPassword) ConnectionStrings.PostgresqlProd: $(PostgresqlProd) ConnectionStrings.PComNetUsername: $(PComNetUsername) ConnectionStrings.PComNetPassword: $(PComNetPassword) - ConnectionStrings.PeerlessAPIKey: $(PeerlessAPIKey) ConnectionStrings.BulkVSAPISecret: $(BulkVSAPISecret) - ConnectionStrings.ChannelGroup: $(ChannelGroup) - ConnectionStrings.CallFlow: $(CallFlow) ConnectionStrings.BulkVSAPIKEY: $(BulkVSAPIKEY) ConnectionStrings.MicrosoftClientSecret: $(MicrosoftClientSecret) ConnectionStrings.MicrosoftClientId: $(MicrosoftClientId) diff --git a/azure-pipelines-linux.yml b/azure-pipelines-linux.yml index 7de01295..1b1a0e30 100644 --- a/azure-pipelines-linux.yml +++ b/azure-pipelines-linux.yml @@ -11,25 +11,19 @@ pool: variables: buildConfiguration: 'Release' - ConnectionStrings.TeleAPI: $(TeleAPI) ConnectionStrings.SmtpUsername: $(SmtpUsername) ConnectionStrings.SmtpPassword: $(SmtpPassword) ConnectionStrings.PostgresqlProd: $(PostgresqlProd) ConnectionStrings.PComNetUsername: $(PComNetUsername) ConnectionStrings.PComNetPassword: $(PComNetPassword) ConnectionStrings.PComNetIncomingToken: $(PComNetIncomingToken) - ConnectionStrings.PeerlessAPIKey: $(PeerlessAPIKey) ConnectionStrings.BulkVSAPISecret: $(BulkVSAPISecret) - ConnectionStrings.ChannelGroup: $(ChannelGroup) - ConnectionStrings.CallFlow: $(CallFlow) ConnectionStrings.BulkVSAPIKEY: $(BulkVSAPIKEY) ConnectionStrings.BulkVSUsername: $(BulkVSUsername) ConnectionStrings.BulkVSPassword: $(BulkVSPassword) ConnectionStrings.MicrosoftClientSecret: $(MicrosoftClientSecret) ConnectionStrings.MicrosoftClientId: $(MicrosoftClientId) ConnectionStrings.InvoiceNinjaToken: $(InvoiceNinjaToken) - ConnectionStrings.Data247Username: $(Data247Username) - ConnectionStrings.Data247Password: $(Data247Password) ConnectionStrings.EmailOrders: $(EmailOrders) ConnectionStrings.EmailDan: $(EmailDan) ConnectionStrings.EmailTom: $(EmailTom) @@ -39,8 +33,6 @@ variables: ConnectionStrings.AzureStorageAccount: $(AzureStorageAccount) ConnectionStrings.TeleDynamicsUsername: $(TeleDynamicsUsername) ConnectionStrings.TeleDynamicsPassword: $(TeleDynamicsPassword) - ConnectionStrings.Call48Username: $(Call48Username) - ConnectionStrings.Call48Password: $(Call48Password) ConnectionStrings.CallWithUsAPIKEY: $(CallWithUsAPIKEY) ConnectionStrings.MessagingAPISecret: $(MessagingAPISecret) ConnectionStrings.DOSpacesAccessKey: $(DOSpacesAccessKey) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 07946eab..b6f9a2d2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -12,15 +12,11 @@ pool: variables: buildConfiguration: 'Release' - ConnectionStrings.TeleAPI: $(TeleAPI) ConnectionStrings.SmtpUsername: $(SmtpUsername) ConnectionStrings.SmtpPassword: $(SmtpPassword) ConnectionStrings.PostgresqlProd: $(PostgresqlProd) ConnectionStrings.PComNetUsername: $(PComNetUsername) ConnectionStrings.PComNetPassword: $(PComNetPassword) - ConnectionStrings.PeerlessAPIKey: $(PeerlessAPIKey) - ConnectionStrings.ChannelGroup: $(ChannelGroup) - ConnectionStrings.CallFlow: $(CallFlow) ConnectionStrings.BulkVSAPISecret: $(BulkVSAPISecret) ConnectionStrings.BulkVSAPIKEY: $(BulkVSAPIKEY) ConnectionStrings.InvoiceNinjaToken: $(InvoiceNinjaToken)