Biblioteca cliente de números de teléfono de Comunicación de Azure para .NET: versión 1.1.0
Los números de teléfono de comunicación de Azure administran números de teléfono para Azure Communication Services.
Código | fuente | Documentación del productoMuestras
Introducción
Instalar el paquete
Instale la biblioteca cliente de números de teléfono de Comunicación de Azure para .NET con NuGet:
dotnet add package Azure.Communication.PhoneNumbers
Prerrequisitos
Necesita una suscripción de Azure y un recurso de Communication Service para usar este paquete.
Para crear un servicio de comunicación, puede usar Azure Portal, la Azure PowerShell o la biblioteca cliente de administración de .NET.
Conceptos clave
Este SDK proporciona funcionalidad para administrar direct offer
y direct routing
números fácilmente.
Los direct offer
números vienen en dos tipos: Geográfico y Gratuito. Los planes de teléfono geográficos son planes de teléfono asociados a una ubicación, cuyos códigos de área de números de teléfono están asociados al código de área de una ubicación geográfica. Toll-Free planes de teléfono son planes de teléfono no asociados. Por ejemplo, en estados Unidos, los números gratuitos pueden tener códigos de área como 800 o 888.
Se administran mediante PhoneNumbersClient
La direct routing
característica permite conectar la infraestructura de telefonía existente a ACS.
La configuración se administra mediante , SipRoutingClient
que proporciona métodos para configurar troncos SIP y reglas de enrutamiento de voz, con el fin de controlar correctamente las llamadas para la subred de telefonía.
Autenticar el cliente
Los clientes se pueden autenticar mediante la cadena de conexión adquirida desde un recurso de comunicación de Azure en Azure Portal.
// 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);
Los clientes también tienen la opción de autenticarse con la autenticación de Azure Active Directory. Para más información sobre este tema, consulte Identidad de 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 teléfono
Introducción a los tipos de números de teléfono
Los números de teléfono vienen en dos tipos: geográfico y gratuito. Los planes de teléfono geográficos son planes de teléfono asociados a una ubicación, cuyos códigos de área de números de teléfono están asociados al código de área de una ubicación geográfica. Toll-Free planes de teléfono son planes de teléfono no asociados. Por ejemplo, en estados Unidos, los números gratuitos pueden tener códigos de área como 800 o 888.
Todos los planes de teléfono geográficos dentro del mismo país se agrupan en un grupo de planes de teléfono con un tipo de número de teléfono geográfico. Todos los planes telefónicos Toll-Free dentro del mismo país se agrupan en un grupo de planes telefónicos.
Buscar, comprar y liberar números de teléfono
Los números de teléfono se pueden buscar a través de la API de creación de búsquedas proporcionando un código de área, cantidad de números de teléfono, tipo de aplicación, tipo de número de teléfono y funcionalidades. La cantidad proporcionada de números de teléfono se reservará durante diez minutos y se puede comprar en este momento. Si no se compra la búsqueda, los números de teléfono estarán disponibles para otros después de diez minutos. Si se compra la búsqueda, los números de teléfono se adquieren para los recursos de Azure.
Los números de teléfono también se pueden publicar mediante la API de versión.
Cliente de enrutamiento SIP
La característica de enrutamiento directo permite conectar la infraestructura de telefonía proporcionada por el cliente a los recursos de comunicación de Azure. Para configurar correctamente la configuración de enrutamiento, el cliente debe proporcionar la configuración del tronco SIP y las reglas de enrutamiento SIP para las llamadas. El cliente de enrutamiento SIP proporciona la interfaz necesaria para establecer esta configuración.
Cuando se realiza una llamada, el sistema intenta hacer coincidir el número de destino con patrones de número regex de rutas definidas. Se seleccionará la primera ruta para que coincida con el número. El orden de coincidencia de regex es el mismo que el orden de las rutas en la configuración, por lo que el orden de las rutas importa. Una vez que se hace coincidir una ruta, la llamada se enruta al primer tronco de la lista de troncos de la ruta. Si el tronco no está disponible, se selecciona el siguiente tronco de la lista.
Seguridad para subprocesos
Garantizamos que todos los métodos de instancia de cliente son seguros para subprocesos e independientes entre sí (instrucciones). Esto garantiza que la recomendación de reutilizar instancias de cliente siempre es segura, incluso entre subprocesos.
Conceptos adicionales
Opciones | de cliente Acceso a la respuesta | Operaciones | de larga duraciónControl de errores | Diagnóstico | Burla | Duración del cliente
Ejemplos
PhoneNumbersClient
Crear un phoneNumbersClient
Para crear una nuevaPhoneNumbersClient
, necesita una cadena de conexión al recurso Azure Communication Services que puede obtener de Azure Portal una vez que haya creado el recurso.
Puede establecer connectionString
en función de una variable de entorno, una configuración o cualquier forma que funcione para la aplicación.
// Get a connection string to our Azure Communication resource.
var connectionString = "<connection_string>";
var client = new PhoneNumbersClient(connectionString);
Buscar números de teléfono
Los números de teléfono deben buscarse para poder comprarse. La búsqueda es una operación de larga duración que puede iniciarse mediante StartSearchAvailablePhoneNumbers
una función que devuelve un SearchAvailablePhoneNumbersOperation
objeto . SearchAvailablePhoneNumbersOperation
se puede usar para actualizar el estado de la operación y para comprobar si hay integridad.
var capabilities = new PhoneNumberCapabilities(calling: PhoneNumberCapabilityType.None, sms: PhoneNumberCapabilityType.Outbound);
var searchOperation = await client.StartSearchAvailablePhoneNumbersAsync(countryCode, PhoneNumberType.TollFree, PhoneNumberAssignmentType.Application, capabilities);
await searchOperation.WaitForCompletionAsync();
Compra de números de teléfono
Los números de teléfono se pueden adquirir mediante la compra de una búsqueda.
var purchaseOperation = await client.StartPurchasePhoneNumbersAsync(searchOperation.Value.SearchId);
await purchaseOperation.WaitForCompletionResponseAsync();
Enumerar números de teléfono comprados
Puede enumerar todos los números de teléfono que se han comprado para el recurso.
var purchasedPhoneNumbers = client.GetPurchasedPhoneNumbersAsync();
await foreach (var phoneNumber in purchasedPhoneNumbers)
{
Console.WriteLine($"Phone number: {phoneNumber.PhoneNumber}, monthly cost: {phoneNumber.Cost}");
}
Liberar números de teléfono
Si ya no necesita un número de teléfono, puede liberarlo.
var purchasedPhoneNumber = "<purchased_phone_number>";
var releaseOperation = await client.StartReleasePhoneNumberAsync(purchasedPhoneNumber);
await releaseOperation.WaitForCompletionResponseAsync();
await WaitForCompletionResponseAsync(releaseOperation);
SipRoutingClient
Recuperación de troncos SIP y rutas
Obtenga la lista de troncos o rutas configurados actualmente.
var trunksResponse = await client.GetTrunksAsync();
var routesResponse = await client.GetRoutesAsync();
Reemplazar troncos SIP y rutas
Reemplace la lista de troncos o rutas configurados actualmente.
// 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);
Administración de un único tronco
Los troncos SIP se pueden administrar por separado mediante para SipRoutingClient
recuperar, establecer o eliminar un único tronco.
Recuperación de un único tronco
// Get trunk object, based on it's FQDN.
var fqdnToRetrieve = "<fqdn>";
var trunkResponse = await client.GetTrunkAsync(fqdnToRetrieve);
Establecer tronco único
// 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 tronco único
// Deletes trunk with supplied FQDN.
var fqdnToDelete = "<fqdn>";
await client.DeleteTrunkAsync(fqdnToDelete);
Solución de problemas
Pasos siguientes
Más información sobre la administración de números de teléfono
Más información sobre el enrutamiento directo
Contribuciones
Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución. Para obtener más información, visite cla.microsoft.com.
Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.
Azure SDK for .NET