Bibliothèque cliente numéros de téléphone Azure Communication pour .NET - version 1.1.0

Azure Communication Phone Numbers gère les numéros de téléphone pour Azure Communication Services.

| Code source | Documentation produitÉchantillons

Prise en main

Installer le package

Installez la bibliothèque cliente Numéros de téléphone Azure Communication pour .NET avec NuGet :

dotnet add package Azure.Communication.PhoneNumbers

Prérequis

Vous avez besoin d’un abonnement Azure et d’une ressource Communication Service pour utiliser ce package.

Pour créer un service communication, vous pouvez utiliser le portail Azure, le Azure PowerShell ou la bibliothèque de client de gestion .NET.

Concepts clés

Ce Kit de développement logiciel (SDK) fournit des fonctionnalités permettant de gérer facilement les direct offer nombres et direct routing .

Les direct offer nombres sont de deux types : Géographique et Gratuit. Les forfaits téléphoniques géographiques sont des forfaits téléphoniques associés à un emplacement, dont les indicatifs régionaux des numéros de téléphone sont associés à l’indicatif régional d’un emplacement géographique. Toll-Free forfaits téléphoniques sont des forfaits téléphoniques qui ne sont pas associés à l’emplacement. Par exemple, aux États-Unis, les numéros gratuits peuvent être fournis avec des indicatifs régionaux tels que 800 ou 888. Ils sont gérés à l’aide du PhoneNumbersClient

La direct routing fonctionnalité permet de connecter votre infrastructure de téléphonie existante à ACS. La configuration est gérée à l’aide de SipRoutingClient, qui fournit des méthodes pour configurer des jonctions SIP et des règles de routage vocal, afin de gérer correctement les appels pour votre sous-réseau de téléphonie.

Authentifier le client

Les clients peuvent être authentifiés à l’aide de la chaîne de connexion acquise à partir d’une ressource de communication Azure dans le portail 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);

Les clients ont également la possibilité de s’authentifier avec l’authentification Azure Active Directory. Pour plus d’informations sur ce sujet, consultez Identité 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);

Client numéros de téléphone

Vue d’ensemble des types de numéros de téléphone

Les numéros de téléphone sont de deux types : Géographique et Gratuit. Les forfaits téléphoniques géographiques sont des forfaits téléphoniques associés à un emplacement, dont les indicatifs régionaux des numéros de téléphone sont associés à l’indicatif régional d’un emplacement géographique. Toll-Free forfaits téléphoniques sont des forfaits téléphoniques qui ne sont pas associés à l’emplacement. Par exemple, aux États-Unis, les numéros gratuits peuvent être fournis avec des indicatifs régionaux tels que 800 ou 888.

Tous les forfaits téléphoniques géographiques dans le même pays sont regroupés dans un groupe de forfaits téléphoniques avec un type de numéro de téléphone géographique. Tous les Toll-Free forfaits téléphoniques dans le même pays sont regroupés dans un groupe de forfaits téléphoniques.

Recherche, achat et publication de numéros de téléphone

Les numéros de téléphone peuvent être recherchés via l’API de création de recherche en fournissant un indicatif régional, une quantité de numéros de téléphone, un type d’application, un type de numéro de téléphone et des fonctionnalités. La quantité de numéros de téléphone fournie sera réservée pendant dix minutes et peut être achetée dans ce délai. Si la recherche n’est pas achetée, les numéros de téléphone seront disponibles pour d’autres personnes au bout de dix minutes. Si la recherche est achetée, les numéros de téléphone sont acquis pour les ressources Azure.

Les numéros de téléphone peuvent également être publiés à l’aide de l’API de mise en production.

Client de routage SIP

La fonctionnalité de routage direct permet de connecter l’infrastructure de téléphonie fournie par le client à Azure Communication Resources. Pour configurer correctement la configuration du routage, le client doit fournir la configuration de jonction SIP et les règles de routage SIP pour les appels. Le client de routage SIP fournit l’interface nécessaire pour définir cette configuration.

Lorsqu’un appel est effectué, le système tente de faire correspondre le numéro de destination avec les modèles de numéros regex des itinéraires définis. Le premier itinéraire correspondant au nombre est sélectionné. L’ordre de correspondance regex est identique à l’ordre des itinéraires dans la configuration, donc l’ordre des itinéraires est important. Une fois qu’un itinéraire est mis en correspondance, l’appel est acheminé vers la première jonction de la liste des jonctions de l’itinéraire. Si la jonction n’est pas disponible, la jonction suivante dans la liste est sélectionnée.

Sécurité des threads

Nous garantissons que toutes les méthodes de instance client sont thread-safe et indépendantes les unes des autres (instructions). Cela garantit que la recommandation de réutilisation des instances clientes est toujours sécurisée, même entre les threads.

Concepts supplémentaires

Options | du client Accès à la réponse | Opérations | de longue duréeGestion des défaillances | Diagnostics | Moqueur | Durée de vie du client

Exemples

PhoneNumbersClient

Création d’un PhoneNumbersClient

Pour créer un nouveauPhoneNumbersClient, vous avez besoin d’une chaîne de connexion à la ressource Azure Communication Services que vous pouvez obtenir à partir du portail Azure une fois que vous avez créé la ressource.

Vous pouvez définir connectionString en fonction d’une variable d’environnement, d’un paramètre de configuration ou de n’importe quelle manière qui fonctionne pour votre application.

// Get a connection string to our Azure Communication resource.
var connectionString = "<connection_string>";
var client = new PhoneNumbersClient(connectionString);

Rechercher des numéros de téléphone

Les numéros de téléphone doivent faire l’objet d’une recherche avant de pouvoir être achetés. La recherche est une opération de longue durée qui peut être démarrée par StartSearchAvailablePhoneNumbers une fonction qui retourne un SearchAvailablePhoneNumbersOperation objet. SearchAvailablePhoneNumbersOperationpeut être utilisé pour mettre à jour status de l’opération et pour case activée pour l’exhaustivité.

var capabilities = new PhoneNumberCapabilities(calling: PhoneNumberCapabilityType.None, sms: PhoneNumberCapabilityType.Outbound);

var searchOperation = await client.StartSearchAvailablePhoneNumbersAsync(countryCode, PhoneNumberType.TollFree, PhoneNumberAssignmentType.Application, capabilities);
await searchOperation.WaitForCompletionAsync();

Acheter des numéros de téléphone

Les numéros de téléphone peuvent être acquis via l’achat d’une recherche.

var purchaseOperation = await client.StartPurchasePhoneNumbersAsync(searchOperation.Value.SearchId);
await purchaseOperation.WaitForCompletionResponseAsync();

Liste des numéros de téléphone achetés

Vous pouvez répertorier tous les numéros de téléphone achetés pour votre ressource.

var purchasedPhoneNumbers = client.GetPurchasedPhoneNumbersAsync();

await foreach (var phoneNumber in purchasedPhoneNumbers)
{
    Console.WriteLine($"Phone number: {phoneNumber.PhoneNumber}, monthly cost: {phoneNumber.Cost}");
}

Numéros de téléphone de publication

Si vous n’avez plus besoin d’un numéro de téléphone, vous pouvez le libérer.

var purchasedPhoneNumber = "<purchased_phone_number>";
var releaseOperation = await client.StartReleasePhoneNumberAsync(purchasedPhoneNumber);
await releaseOperation.WaitForCompletionResponseAsync();
await WaitForCompletionResponseAsync(releaseOperation);

SipRoutingClient

Récupérer des jonctions et des itinéraires SIP

Obtenez la liste des jonctions ou itinéraires actuellement configurés.

var trunksResponse = await client.GetTrunksAsync();
var routesResponse = await client.GetRoutesAsync();

Remplacer des jonctions et des itinéraires SIP

Remplacez la liste des jonctions ou itinéraires actuellement configurés.

// 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);

Gérer une jonction unique

Les jonctions SIP peuvent être gérées séparément à l’aide de pour SipRoutingClient récupérer, définir ou supprimer une seule jonction.

Récupérer une jonction unique

// Get trunk object, based on it's FQDN.
var fqdnToRetrieve = "<fqdn>";
var trunkResponse = await client.GetTrunkAsync(fqdnToRetrieve);

Définir une jonction unique

// 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);

Supprimer une jonction unique

// Deletes trunk with supplied FQDN.
var fqdnToDelete = "<fqdn>";
await client.DeleteTrunkAsync(fqdnToDelete);

Dépannage

Étapes suivantes

En savoir plus sur la gestion des numéros de téléphone

En savoir plus sur le routage direct

Contribution

Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez réellement, les droits d’utilisation de votre contribution. Pour plus d’informations, visitez cla.microsoft.com.

Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.