Biblioteca de cliente Números de Telefone de Comunicação do Azure para .NET – versão 1.1.0
Os Números de Telefone de Comunicação do Azure estão a gerir números de telefone para Azure Communication Services.
Código fonte | Documentação do | produto Exemplos
Introdução
Instalar o pacote
Instale a biblioteca de cliente Números de Telefone de Comunicação do Azure para .NET com NuGet:
dotnet add package Azure.Communication.PhoneNumbers
Pré-requisitos
Precisa de uma subscrição do Azure e de um Recurso do Serviço de Comunicação para utilizar este pacote.
Para criar um novo Serviço de Comunicação, pode utilizar o Portal do Azure, o Azure PowerShell ou a biblioteca de cliente de gestão .NET.
Conceitos-chave
Este SDK fornece funcionalidades para gerir direct offer
e direct routing
números facilmente.
Os direct offer
números são apresentados em dois tipos: Geográfico e Gratuito. Os planos de telefone geográficos são planos de telefone associados a uma localização, cujos códigos de área de números de telefone estão associados ao código de área de uma localização geográfica. Toll-Free planos telefónicos são planos telefónicos não associados à localização. Por exemplo, nos EUA, os números gratuitos podem ser fornecidos com códigos de área como 800 ou 888.
São geridos com o PhoneNumbersClient
A direct routing
funcionalidade permite ligar a sua infraestrutura de telefonia existente ao ACS.
A configuração é gerida com o SipRoutingClient
, que fornece métodos para configurar calções SIP e regras de encaminhamento de voz, de modo a processar corretamente as chamadas para a sua sub-rede de telefonia.
Autenticar o cliente
Os clientes podem ser autenticados através da cadeia de ligação adquirida a partir de recursos de comunicação do Azure no portal do Azure.
// Get a connection string to our Azure Communication resource.
var connectionString = "<connection_string>";
var client = new PhoneNumbersClient(connectionString);
// Get a connection string to Azure Communication resource.
var connectionString = "<connection_string>";
var client = new SipRoutingClient(connectionString);
Os clientes também têm a opção de autenticar com a Autenticação do Azure Active Directory. Para obter mais informações sobre este tópico, veja Identidade do Azure.
// Get an endpoint to our Azure Communication resource.
var endpoint = new Uri("<endpoint_url>");
TokenCredential tokenCredential = new DefaultAzureCredential();
client = new PhoneNumbersClient(endpoint, tokenCredential);
// Get an endpoint to our Azure Communication resource.
var endpoint = new Uri("<endpoint_url>");
TokenCredential tokenCredential = new DefaultAzureCredential();
client = new SipRoutingClient(endpoint, tokenCredential);
Cliente de números de telefone
Descrição geral dos tipos de número de telefone
Os números de telefone são apresentados em dois tipos: Geográfico e Gratuito. Os planos de telefone geográficos são planos de telefone associados a uma localização, cujos códigos de área de números de telefone estão associados ao código de área de uma localização geográfica. Toll-Free planos telefónicos são planos telefónicos não associados à localização. Por exemplo, nos EUA, os números gratuitos podem ser fornecidos com códigos de área como 800 ou 888.
Todos os planos de telefone geográfico no mesmo país estão agrupados num grupo de planos telefónicos com um tipo de número de telefone Geográfico. Todos os Toll-Free planos telefónicos no mesmo país estão agrupados num grupo de planos telefónicos.
Procurar, comprar e libertar números de telefone
Os números de telefone podem ser pesquisados através da API de criação de pesquisa ao fornecer um código de área, quantidade de números de telefone, tipo de aplicação, tipo de número de telefone e capacidades. A quantidade fornecida de números de telefone será reservada durante dez minutos e poderá ser comprada dentro deste período de tempo. Se a pesquisa não for comprada, os números de telefone ficarão disponíveis para outras pessoas após dez minutos. Se a pesquisa for comprada, os números de telefone são adquiridos para os recursos do Azure.
Os números de telefone também podem ser lançados com a API de versão.
Cliente de encaminhamento SIP
A funcionalidade de encaminhamento direto permite ligar a infraestrutura de telefonia fornecida pelo cliente aos Recursos de Comunicação do Azure. Para configurar corretamente a configuração de encaminhamento, o cliente tem de fornecer as regras de configuração do tronco do SIP e de encaminhamento SIP para chamadas. O cliente de encaminhamento SIP fornece a interface necessária para definir esta configuração.
Quando uma chamada é efetuada, o sistema tenta corresponder o número de destino com padrões de número regex de rotas definidas. Será selecionada a primeira rota para corresponder ao número. A ordem da correspondência regex é igual à ordem das rotas na configuração, pelo que a ordem das rotas é importante. Assim que uma rota for correspondida, a chamada é encaminhada para o primeiro tronco na lista de troncos da rota. Se o porta-malas não estiver disponível, o próximo porta-malas na lista está selecionado.
Segurança de threads
Garantimos que todos os métodos de instância de cliente são seguros para threads e independentes uns dos outros (orientação). Isto garante que a recomendação de reutilização de instâncias de cliente é sempre segura, mesmo entre threads.
Conceitos adicionais
Opções de | cliente Aceder à resposta | Operações de execução prolongada | Lidar com falhas | Diagnósticos | A gozar | Duração do cliente
Exemplos
PhoneNumbersClient
Criar um PhoneNumbersClient
Para criar um novoPhoneNumbersClient
, precisa de uma cadeia de ligação para o recurso Azure Communication Services que pode obter a partir do Portal do Azure depois de criar o recurso.
Pode definir connectionString
com base numa variável de ambiente, numa definição de configuração ou em qualquer forma que funcione para a sua aplicação.
// Get a connection string to our Azure Communication resource.
var connectionString = "<connection_string>";
var client = new PhoneNumbersClient(connectionString);
Procurar números de telefone
Os números de telefone têm de ser procurados antes de poderem ser comprados. A pesquisa é uma operação de execução prolongada que pode ser iniciada por StartSearchAvailablePhoneNumbers
função que devolve um SearchAvailablePhoneNumbersOperation
objeto. SearchAvailablePhoneNumbersOperation
pode ser utilizado para atualizar o estado da operação e para verificar a conclusão.
var capabilities = new PhoneNumberCapabilities(calling: PhoneNumberCapabilityType.None, sms: PhoneNumberCapabilityType.Outbound);
var searchOperation = await client.StartSearchAvailablePhoneNumbersAsync(countryCode, PhoneNumberType.TollFree, PhoneNumberAssignmentType.Application, capabilities);
await searchOperation.WaitForCompletionAsync();
Comprar números de telefone
Os números de telefone podem ser adquiridos através da compra de uma pesquisa.
var purchaseOperation = await client.StartPurchasePhoneNumbersAsync(searchOperation.Value.SearchId);
await purchaseOperation.WaitForCompletionResponseAsync();
Listar números de telefone comprados
Pode listar todos os números de telefone que foram comprados para o recurso.
var purchasedPhoneNumbers = client.GetPurchasedPhoneNumbersAsync();
await foreach (var phoneNumber in purchasedPhoneNumbers)
{
Console.WriteLine($"Phone number: {phoneNumber.PhoneNumber}, monthly cost: {phoneNumber.Cost}");
}
Libertar números de telefone
Se já não precisar de um número de telefone, pode lançá-lo.
var purchasedPhoneNumber = "<purchased_phone_number>";
var releaseOperation = await client.StartReleasePhoneNumberAsync(purchasedPhoneNumber);
await releaseOperation.WaitForCompletionResponseAsync();
await WaitForCompletionResponseAsync(releaseOperation);
SipRoutingClient
Obter porta-malas e rotas SIP
Obtenha a lista de trajetos ou rotas atualmente configurados.
var trunksResponse = await client.GetTrunksAsync();
var routesResponse = await client.GetRoutesAsync();
Substituir os porta-malas e rotas do SIP
Substitua a lista de trajetos ou rotas atualmente configurados.
// The service will not allow trunks that are used in any of the routes to be deleted, therefore first set the routes as empty list, and then update the routes.
var newTrunks = "<new_trunks_list>";
var newRoutes = "<new_routes_list>";
await client.SetRoutesAsync(new List<SipTrunkRoute>());
await client.SetTrunksAsync(newTrunks);
await client.SetRoutesAsync(newRoutes);
Gerir um único tronco
Os troncos SIP podem ser geridos separadamente ao utilizar o SipRoutingClient
para obter, definir ou eliminar um único tronco.
Obter um único tronco
// Get trunk object, based on it's FQDN.
var fqdnToRetrieve = "<fqdn>";
var trunkResponse = await client.GetTrunkAsync(fqdnToRetrieve);
Definir um único tronco
// Set function will either modify existing item or add new item to the collection.
// The trunk is matched based on it's FQDN.
var trunkToSet = "<trunk_to_set>";
await client.SetTrunkAsync(trunkToSet);
Eliminar um único tronco
// Deletes trunk with supplied FQDN.
var fqdnToDelete = "<fqdn>";
await client.DeleteTrunkAsync(fqdnToDelete);
Resolução de problemas
Passos seguintes
Leia mais sobre a gestão de números de telefone
Leia mais sobre o encaminhamento direto
Contribuir
Agradecemos todas as contribuições e sugestões para este projeto. A maioria das contribuições requerem que celebre um Contrato de Licença de Contribuição (CLA) no qual se declare que tem o direito de conceder e que, na verdade, concede-nos os direitos para utilizar a sua contribuição. Para obter detalhes, visite cla.microsoft.com.
Este projeto adotou o Microsoft Open Source Code of Conduct (Código de Conduta do Microsoft Open Source). Para obter mais informações, consulte as FAQ do Código de Conduta ou o contacto opencode@microsoft.com com quaisquer perguntas ou comentários adicionais.
Azure SDK for .NET