Inicio rápido: Obtención y administración de números de teléfono

Importante

Las capacidades disponibles (PSTN/SMS, entrada y salida) dependen del país en el que se opere (la ubicación de la dirección de facturación de Azure), el caso de uso y el tipo de número de teléfono que se haya seleccionado. Estas funcionalidades varían según el país debido a los requisitos normativos. Para más información, visite la documentación de Idoneidad de la suscripción.

Importante

Para pedidos de gran volumen o en caso de que el número de teléfono deseado no esté disponible, visite esta página para obtener más ayuda.

Prerrequisitos

Instalación

Adición de la extensión

Agregue la extensión Azure Communication Services para la CLI de Azure mediante el comando az extension.

az extension add --name communication

Inicio de sesión en la CLI de Azure

Deberá iniciar sesión en la CLI de Azure. Para iniciar sesión, ejecute el comando az login desde el terminal y proporcione sus credenciales.

Operations

Enumeración de los números de teléfono comprados

Ejecute el siguiente comando para recuperar todos los números de teléfono comprados.

az communication phonenumber list --connection-string "<yourConnectionString>"

Realice este reemplazo en el código:

  • Reemplace <yourConnectionString> por la cadena de conexión.

Obtención de los detalles del número de teléfono comprado

Ejecute el siguiente comando para obtener los detalles de un número de teléfono comprado.

az communication phonenumber show --phonenumber <purchasedPhoneNumber> --connection-string "<yourConnectionString>"

Haga estas sustituciones en el código:

  • Reemplace <purchasedPhoneNumber> por un número de teléfono habilitado para SMS asociado al recurso de Communication Services.
  • Reemplace <yourConnectionString> por la cadena de conexión.

(Opcional) Uso de operaciones de números de teléfono de la CLI de Azure sin pasar una cadena de conexión

Puede configurar la variable de entorno AZURE_COMMUNICATION_CONNECTION_STRING para usar operaciones de números de teléfono de la CLI de Azure sin tener que usar --connection_string para pasar la cadena de conexión. Para configurar una variable de entorno, abra una ventana de consola y seleccione el sistema operativo en las pestañas siguientes. Reemplace <yourConnectionString> por la cadena de conexión real.

Abra una ventana de consola y escriba el siguiente comando:

setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"

Después de agregar la variable de entorno, puede que tenga que reiniciar todos los programas en ejecución que necesiten leer la variable de entorno, incluida la ventana de consola. Por ejemplo, si usa Visual Studio como editor, reinícielo antes de ejecutar el ejemplo.

Prerrequisitos

Obtención de un número de teléfono

Para empezar a aprovisionar números, vaya al recurso de Communication Services en Azure Portal.

Captura de pantalla que muestra la página principal de un recurso de Communication Services.

Búsqueda de los números de teléfono disponibles

Vaya a la hoja Phone Numbers (Números de teléfono) en el menú de recursos.

Captura de pantalla que muestra la página de teléfonos de un recurso de Communication Services.

Presione el botón Obtener para iniciar el asistente. El asistente de la hoja Phone numbers (Números de teléfono) le guiará por una serie de preguntas que le ayudarán a elegir el número de teléfono que mejor se adapte a su escenario.

En primer lugar, deberá elegir el valor de País o región donde desea aprovisionar el número de teléfono. Después de seleccionar el país o la región, deberá seleccionar el valor de Use case (Caso de uso) que mejor se adapte a sus necesidades.

Captura de pantalla que muestra la vista para obtener números de teléfono.

Selección de las características de los números de teléfono

La configuración del número de teléfono se divide en dos pasos:

  1. Selección del tipo del tipo de número.
  2. Selección de las funcionalidades del número.

Puede seleccionar entre dos tipos de números de teléfono: Local y Gratuito. Después de seleccionar un tipo de número, puede elegir las características.

En nuestro ejemplo, hemos seleccionado un tipo de número Gratuito con las características Hacer llamadas y Send and receive SMS (Enviar y recibir SMS).

Captura de pantalla que muestra la vista para seleccionar características.

Desde aquí, haga clic en el botón Next: Numbers (Siguiente: números) en la parte inferior de la página para personalizar los números de teléfono que le gustaría aprovisionar.

Personalización de los números de teléfono

En la página Numbers (Números), personalizará los números de teléfono que le gustaría aprovisionar.

Captura de pantalla que muestra la página para la selección de números.

Nota

En este inicio rápido se muestra el flujo de personalización del tipo Número gratuito. La experiencia puede ser ligeramente diferente si ha elegido el tipo de número Local, pero el resultado final será el mismo.

Elija el valor de Código de área de la lista de códigos de área disponibles y escriba la cantidad que desea aprovisionar y, a continuación, haga clic en Buscar para buscar números que cumplan los requisitos seleccionados. Los números de teléfono que satisfagan sus necesidades se mostrarán junto con el costo mensual.

Captura de pantalla que muestra la página para la selección de números con números reservados.

Nota

La disponibilidad depende del tipo de número, la ubicación y las características que haya seleccionado. Los números se reservan durante un breve período de tiempo antes de que expire la transacción. Si la transacción expira, tendrá que volver a seleccionar los números.

Para ver el resumen de la compra y realizar el pedido, haga clic en el botón Next: Summary (Siguiente: resumen) situado en la parte inferior de la página.

Compra de números de teléfono

En la página de resumen se revisará el tipo de número, las características, los números de teléfono y el costo mensual total para aprovisionar los números de teléfono.

Nota

Los precios que se muestran son los cargos periódicos mensuales que cubren el costo por conceder el número de teléfono seleccionado. Los costos de pago por uso, que se incurren al realizar o recibir llamadas, no se incluyen en esta vista. Los costos de lista están disponibles aquí. Estos costos dependen del tipo de número y de la ubicación del número a llamar. Por ejemplo, precio por minuto para una llamada de un número regional de Seattle a un número regional de Nueva York y una llamada del mismo número a un número de teléfono móvil del Reino Unido puede ser diferente.

Finalmente, haga clic en Place order (Realizar pedido) situado en la parte inferior de la página para confirmar.

Captura de pantalla que muestra la página de resumen con el tipo de número, las características, los números de teléfono y el costo mensual total.

Busque los números de teléfono en Azure Portal

En Azure Portal, vaya al recurso de Azure Communication Services:

Captura de pantalla que muestra la página principal de un recurso de Communication Services.

Seleccione la hoja Números de teléfono en el menú para administrar los números de teléfono.

Captura de pantalla que muestra la página de números de teléfono de un recurso de Communication Services.

Nota

Los números aprovisionados pueden tardar unos minutos en mostrarse en esta página.

Actualización de las funcionalidades del número de teléfono

En la página Números de teléfono puede seleccionar un número de teléfono para configurarlo.

Captura de pantalla que muestra la página de actualización de características.

Seleccione las características de las opciones disponibles y haga clic en Guardar para aplicar la selección.

Descarte de un número de teléfono

En la página Números puede descartar números de teléfono.

Captura de pantalla que muestra la página para descartar números de teléfono.

Seleccione el número de teléfono que desea descartar y haga clic en el botón Release (Descartar).

Nota

Busque el código finalizado de este inicio rápido en GitHub

Requisitos previos

Comprobación de requisitos previos

  • En una ventana de terminal o de comandos, ejecute dotnet para comprobar que la biblioteca cliente de .NET esté instalada.

Instalación

Creación de una aplicación de C#

En una ventana de consola (por ejemplo, cmd, PowerShell o Bash), use el comando dotnet new para crear una nueva aplicación de consola con el nombre PhoneNumbersQuickstart. Este comando crea un sencillo proyecto "Hola mundo" de C# con un solo archivo de origen: Program.cs.

dotnet new console -o PhoneNumbersQuickstart

Cambie el directorio a la carpeta de la aplicación recién creada y use el comando dotnet build para compilar la aplicación.

cd PhoneNumbersQuickstart
dotnet build

Instalar el paquete

Mientras sigue en el directorio de aplicaciones, instale el paquete de la biblioteca cliente de PhoneNumbers de Azure Communication Services para .NET con el comando dotnet add package.

dotnet add package Azure.Communication.PhoneNumbers --version 1.0.0

Agregue la directiva using a la parte superior de Program.cs para incluir el espacio de nombres.

using System;
using System.Linq;
using System.Threading.Tasks;
using Azure.Communication.PhoneNumbers;

Actualice la signatura de función Main para que sea asincrónica.

static async Task Main(string[] args)
{
  ...
}

Autenticar el cliente

Los clientes de PhoneNumbers se pueden autenticar mediante la cadena de conexión adquirida de los recursos de Azure Communication Services en [Azure Portal][azure_portal].

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

Los clientes de PhoneNumbers también tienen la opción de autenticarse con la autenticación de Azure Active Directory. Con esta opción, las variables de entorno AZURE_CLIENT_SECRETAZURE_CLIENT_ID y AZURE_TENANT_ID deben configurarse para la autenticación.

// Get an endpoint to our Azure Communication Services resource.
var endpoint = new Uri("<endpoint_url>");
TokenCredential tokenCredential = new DefaultAzureCredential();
client = new PhoneNumbersClient(endpoint, tokenCredential);

Administración de números de teléfono

Búsqueda de los números de teléfono disponibles

Para adquirir números de teléfono, primero debe buscar los que están disponibles. Para buscar números de teléfono, proporcione el código de área, el tipo de asignación, las funcionalidades del número de teléfono, el tipo de número de teléfono y la cantidad. Tenga en cuenta que proporcionar el código de área para el tipo de número de teléfono gratuito es opcional.

var capabilities = new PhoneNumberCapabilities(calling:PhoneNumberCapabilityType.None, sms:PhoneNumberCapabilityType.Outbound);
var searchOptions = new PhoneNumberSearchOptions { AreaCode = "833", Quantity = 1 };

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

Compra de números de teléfono

El resultado de la búsqueda de números de teléfono es un valor de PhoneNumberSearchResult. Este valor contiene el valor de SearchId, que se puede pasar a la API de compra de números de para obtener los números en la búsqueda. Tenga en cuenta que, al llamar a la API de compra de números de teléfono, se realizará un cargo a su cuenta de Azure.

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

Obtención de números de teléfono

Después de comprar un número, puede recuperarlo del cliente.

var getPhoneNumberResponse = await client.GetPurchasedPhoneNumberAsync("+14255550123");
Console.WriteLine($"Phone number: {getPhoneNumberResponse.Value.PhoneNumber}, country code: {getPhoneNumberResponse.Value.CountryCode}");

También puede recuperar todos los números de teléfono comprados.

var purchasedPhoneNumbers = client.GetPurchasedPhoneNumbersAsync();
await foreach (var purchasedPhoneNumber in purchasedPhoneNumbers)
{
    Console.WriteLine($"Phone number: {purchasedPhoneNumber.PhoneNumber}, country code: {purchasedPhoneNumber.CountryCode}");
}

Actualización de las funcionalidades del número de teléfono

Con un número comprado, puede actualizar las funcionalidades.

var updateCapabilitiesOperation = await client.StartUpdateCapabilitiesAsync("+14255550123", calling: PhoneNumberCapabilityType.Outbound, sms: PhoneNumberCapabilityType.InboundOutbound);
await updateCapabilitiesOperation.WaitForCompletionAsync();

Descarte de un número de teléfono

Puede liberar los números de teléfono comprados.

var releaseOperation = await client.StartReleasePhoneNumberAsync("+14255550123");
await releaseOperation.WaitForCompletionResponseAsync();

Ejecución del código

Ejecute la aplicación desde el directorio de la aplicación con el comando dotnet run.

dotnet run

Código de ejemplo

Puede descargar la aplicación de ejemplo de GitHub.

Nota

Busque el código finalizado de este inicio rápido en GitHub

Requisitos previos

Instalación

Creación de una aplicación Java

Abra el terminal o la ventana de comandos. Vaya al directorio en el que quiere crear la aplicación Java. Ejecute el siguiente comando para generar el proyecto de Java a partir de la plantilla maven-archetype-quickstart.

mvn archetype:generate -DgroupId=com.communication.quickstart -DartifactId=communication-quickstart -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

Observará que la tarea "generar" creó un directorio con el mismo nombre que el objeto artifactId. En este directorio, el directorio src/main/java contiene el código fuente del proyecto, el directorio src/test/java directory contiene el origen de la prueba y el archivo pom.xml es el modelo de objetos del proyecto o POM.

Instalar el paquete

Abra el archivo pom.xml en el editor de texto. Agregue los siguientes elementos de dependencia al grupo de dependencias.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-common</artifactId>
    <version>1.0.0</version>
</dependency>

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-communication-phonenumbers</artifactId>
    <version>1.0.0</version>
</dependency>

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>1.2.3</version>
</dependency>

Instalación del marco de la aplicación

Desde el directorio del proyecto:

  1. Vaya al directorio /src/main/java/com/communication/quickstart.
  2. Abra el archivo App.java en el editor.
  3. Reemplace la instrucción System.out.println("Hello world!");.
  4. Agregue directivas import.

Use el código siguiente para empezar:

import com.azure.communication.phonenumbers.*;
import com.azure.communication.phonenumbers.models.*;
import com.azure.core.http.rest.*;
import com.azure.core.util.Context;
import com.azure.core.util.polling.LongRunningOperationStatus;
import com.azure.core.util.polling.PollResponse;
import com.azure.core.util.polling.SyncPoller;
import com.azure.identity.*;
import java.io.*;

public class App
{
    public static void main( String[] args ) throws IOException
    {
        System.out.println("Azure Communication Services - Phone Numbers Quickstart");
        // Quickstart code goes here
    }
}

Autenticación del cliente de números de teléfono

PhoneNumberClientBuilder está habilitado para usar la autenticación de Azure Active Directory

// You can find your endpoint and access key from your resource in the Azure portal
String endpoint = "https://<RESOURCE_NAME>.communication.azure.com";

PhoneNumbersClient phoneNumberClient = new PhoneNumbersClientBuilder()
    .endpoint(endpoint)
    .credential(new DefaultAzureCredentialBuilder().build())
    .buildClient();

Como alternativa, también es posible usar el punto de conexión y la clave de acceso del recurso de comunicación para la autenticación.

// You can find your connection string from your resource in the Azure portal
String connectionString = "endpoint=https://<RESOURCE_NAME>.communication.azure.com/;accesskey=<ACCESS_KEY>";

PhoneNumbersClient phoneNumberClient = new PhoneNumbersClientBuilder()
    .connectionString(connectionString)
    .buildClient();

Administración de números de teléfono

Búsqueda de los números de teléfono disponibles

Para comprar números de teléfono, primero debe buscar los números de teléfono disponibles. Para buscar números de teléfono, proporcione el código de área, el tipo de asignación, las funcionalidades del número de teléfono, el tipo de número de teléfono y la cantidad. Tenga en cuenta que proporcionar el código de área para el tipo de número de teléfono gratuito es opcional.

 PhoneNumberCapabilities capabilities = new PhoneNumberCapabilities()
    .setCalling(PhoneNumberCapabilityType.INBOUND)
    .setSms(PhoneNumberCapabilityType.INBOUND_OUTBOUND);
PhoneNumberSearchOptions searchOptions = new PhoneNumberSearchOptions().setAreaCode("833").setQuantity(1);

SyncPoller<PhoneNumberOperation, PhoneNumberSearchResult> poller = phoneNumberClient
    .beginSearchAvailablePhoneNumbers("US", PhoneNumberType.TOLL_FREE, PhoneNumberAssignmentType.APPLICATION, capabilities, searchOptions, Context.NONE);
PollResponse<PhoneNumberOperation> response = poller.waitForCompletion();
String searchId = "";

if (LongRunningOperationStatus.SUCCESSFULLY_COMPLETED == response.getStatus()) {
    PhoneNumberSearchResult searchResult = poller.getFinalResult();
    searchId = searchResult.getSearchId();
    System.out.println("Searched phone numbers: " + searchResult.getPhoneNumbers());
    System.out.println("Search expires by: " + searchResult.getSearchExpiresBy());
    System.out.println("Phone number costs:" + searchResult.getCost().getAmount());
}

Compra de números de teléfono

El resultado de la búsqueda de números de teléfono es un valor de PhoneNumberSearchResult. Este valor contiene el valor de searchId, que se puede pasar a la API de compra de números de para obtener los números en la búsqueda. Tenga en cuenta que, al llamar a la API de compra de números de teléfono, se realizará un cargo a su cuenta de Azure.

PollResponse<PhoneNumberOperation> purchaseResponse = phoneNumberClient.beginPurchasePhoneNumbers(searchId, Context.NONE).waitForCompletion();
System.out.println("Purchase phone numbers operation is: " + purchaseResponse.getStatus());

Obtención de números de teléfono

Después de comprar un número, puede recuperarlo del cliente.

PurchasedPhoneNumber phoneNumber = phoneNumberClient.getPurchasedPhoneNumber("+14255550123");
System.out.println("Phone Number Country Code: " + phoneNumber.getCountryCode());

También puede recuperar todos los números de teléfono comprados.

PagedIterable<PurchasedPhoneNumber> phoneNumbers = phoneNumberClient.listPurchasedPhoneNumbers(Context.NONE);
PurchasedPhoneNumber phoneNumber = phoneNumbers.iterator().next();
System.out.println("Phone Number Country Code: " + phoneNumber.getCountryCode());

Actualización de las funcionalidades del número de teléfono

Con un número comprado, puede actualizar las funcionalidades.

PhoneNumberCapabilities capabilities = new PhoneNumberCapabilities();
capabilities
    .setCalling(PhoneNumberCapabilityType.INBOUND)
    .setSms(PhoneNumberCapabilityType.INBOUND_OUTBOUND);

SyncPoller<PhoneNumberOperation, PurchasedPhoneNumber> poller = phoneNumberClient.beginUpdatePhoneNumberCapabilities("+18001234567", capabilities, Context.NONE);
PollResponse<PhoneNumberOperation> response = poller.waitForCompletion();
if (LongRunningOperationStatus.SUCCESSFULLY_COMPLETED == response.getStatus()) {
    PurchasedPhoneNumber phoneNumber = poller.getFinalResult();
    System.out.println("Phone Number Calling capabilities: " + phoneNumber.getCapabilities().getCalling()); //Phone Number Calling capabilities: inbound
    System.out.println("Phone Number SMS capabilities: " + phoneNumber.getCapabilities().getSms()); //Phone Number SMS capabilities: inbound+outbound
}

Liberación de números de teléfono

Puede liberar los números de teléfono comprados.

PollResponse<PhoneNumberOperation> releaseResponse =
    phoneNumberClient.beginReleasePhoneNumber("+14255550123", Context.NONE).waitForCompletion();
System.out.println("Release phone number operation is: " + releaseResponse.getStatus());

Ejecución del código

Navegue hasta el directorio que contiene el archivo pom.xml y compile el proyecto mediante el siguiente comando mvn.

mvn compile

A continuación, compile el paquete.

mvn package

Ejecute el siguiente comando mvn para ejecutar la aplicación.

mvn exec:java -Dexec.mainClass="com.communication.quickstart.App" -Dexec.cleanupDaemonThreads=false

La salida de la aplicación describe cada acción que se completa:

Azure Communication Services - Phone Numbers Quickstart

Searched phone numbers: [+18001234567]

Purchase phone numbers operation is: SUCCESSFULLY_COMPLETED

Phone Number Country Code: US

Phone Number Calling capabilities: inbound

Phone Number SMS capabilities: inbound

Release phone number operation is: SUCCESSFULLY_COMPLETED

Nota

Busque el código finalizado de este inicio rápido en GitHub

Requisitos previos

Instalación

Creación de una nueva aplicación de Python

Abra la ventana de comandos o el terminal, cree un directorio para la aplicación y vaya hasta él.

mkdir phone-numbers-quickstart && cd phone-numbers-quickstart

Use un editor de texto para crear un archivo denominado phone_numbers_sample.py en el directorio raíz del proyecto y agregue el siguiente código. En las siguientes secciones se agregará el resto de código del inicio rápido.

import os
from azure.communication.phonenumbers import PhoneNumbersClient

try:
   print('Azure Communication Services - Phone Numbers Quickstart')
   # Quickstart code goes here
except Exception as ex:
   print('Exception:')
   print(ex)

Instalar el paquete

Mientras sigue en el directorio de aplicaciones, instale el paquete de la biblioteca cliente de administración de Azure Communication Services para Python con el comando pip install.

pip install azure-communication-phonenumbers

Autenticación del cliente de números de teléfono

PhoneNumbersClient está habilitado para usar la autenticación de Azure Active Directory. El uso del objeto DefaultAzureCredential es la forma más fácil de empezar a trabajar con Azure Active Directory y puede instalarlo mediante el comando pip install.

pip install azure-identity

La creación de un objeto DefaultAzureCredential requiere que tenga AZURE_CLIENT_ID, AZURE_CLIENT_SECRET y AZURE_TENANT_ID ya establecidos como variables de entorno con sus valores correspondientes en la aplicación de Azure AD registrada.

Para obtener información rápida sobre cómo obtener estas variables de entorno, puede seguir el artículo Inicio rápido de configuración de entidades de servicio desde la CLI.

Una vez que haya instalado la biblioteca azure-identity, podemos seguir con la autenticación del cliente.

import os
from azure.communication.phonenumbers import PhoneNumbersClient
from azure.identity import DefaultAzureCredential

# You can find your endpoint from your resource in the Azure portal
endpoint = 'https://<RESOURCE_NAME>.communication.azure.com'
try:
    print('Azure Communication Services - Phone Numbers Quickstart')
    credential = DefaultAzureCredential()
    phone_numbers_client = PhoneNumbersClient(endpoint, credential)
except Exception as ex:
    print('Exception:')
    print(ex)

Como alternativa, también es posible usar el punto de conexión y la clave de acceso del recurso de comunicación para la autenticación.

import os
from azure.communication.phonenumbers import PhoneNumbersClient

# You can find your connection string from your resource in the Azure portal
connection_string = 'https://<RESOURCE_NAME>.communication.azure.com/;accesskey=<YOUR_ACCESS_KEY>'
try:
    print('Azure Communication Services - Phone Numbers Quickstart')
    phone_numbers_client = PhoneNumbersClient.from_connection_string(connection_string)
except Exception as ex:
    print('Exception:')
    print(ex)

Functions

Una vez que se ha autenticado PhoneNumbersClient, podemos empezar a trabajar en las diferentes funciones que puede hacer.

Búsqueda de los números de teléfono disponibles

Para comprar números de teléfono, primero debe buscar los números de teléfono disponibles. Para buscar números de teléfono, proporcione el código de área, el tipo de asignación, las funcionalidades de número de teléfono, el tipo de número de teléfono y la cantidad (el valor predeterminado está establecido en 1). Tenga en cuenta que proporcionar el código de área para el tipo de número de teléfono gratuito es opcional.

import os
from azure.communication.phonenumbers import PhoneNumbersClient, PhoneNumberCapabilityType, PhoneNumberAssignmentType, PhoneNumberType, PhoneNumberCapabilities
from azure.identity import DefaultAzureCredential

# You can find your endpoint from your resource in the Azure portal
endpoint = 'https://<RESOURCE_NAME>.communication.azure.com'
try:
    print('Azure Communication Services - Phone Numbers Quickstart')
    credential = DefaultAzureCredential()
    phone_numbers_client = PhoneNumbersClient(endpoint, credential)
    capabilities = PhoneNumberCapabilities(
        calling = PhoneNumberCapabilityType.INBOUND,
        sms = PhoneNumberCapabilityType.INBOUND_OUTBOUND
    )
    search_poller = phone_numbers_client.begin_search_available_phone_numbers(
        "US",
        PhoneNumberType.TOLL_FREE,
        PhoneNumberAssignmentType.APPLICATION,
        capabilities,
        polling = True
    )
    search_result = search_poller.result()
    print ('Search id: ' + search_result.search_id)
    phone_number_list = search_result.phone_numbers
    print('Reserved phone numbers:')
    for phone_number in phone_number_list:
        print(phone_number)

except Exception as ex:
    print('Exception:')
    print(ex)

Compra de números de teléfono

El resultado de la búsqueda de números de teléfono es un valor de PhoneNumberSearchResult. Este valor contiene el valor de searchId, que se puede pasar a la API de compra de números de para obtener los números en la búsqueda. Tenga en cuenta que, al llamar a la API de compra de números de teléfono, se realizará un cargo a su cuenta de Azure.

import os
from azure.communication.phonenumbers import (
    PhoneNumbersClient,
    PhoneNumberCapabilityType,
    PhoneNumberAssignmentType,
    PhoneNumberType,
    PhoneNumberCapabilities
)
from azure.identity import DefaultAzureCredential

# You can find your endpoint from your resource in the Azure portal
endpoint = 'https://<RESOURCE_NAME>.communication.azure.com'
try:
    print('Azure Communication Services - Phone Numbers Quickstart')
    credential = DefaultAzureCredential()
    phone_numbers_client = PhoneNumbersClient(endpoint, credential)
    capabilities = PhoneNumberCapabilities(
        calling = PhoneNumberCapabilityType.INBOUND,
        sms = PhoneNumberCapabilityType.INBOUND_OUTBOUND
    )
    search_poller = phone_numbers_client.begin_search_available_phone_numbers(
        "US",
        PhoneNumberType.TOLL_FREE,
        PhoneNumberAssignmentType.APPLICATION,
        capabilities,
        area_code="833",
        polling = True
    )
    search_result = poller.result()
    print ('Search id: ' + search_result.search_id)
    phone_number_list = search_result.phone_numbers
    print('Reserved phone numbers:')
    for phone_number in phone_number_list:
        print(phone_number)

    purchase_poller = phone_numbers_client.begin_purchase_phone_numbers(search_result.search_id, polling = True)
    purchase_poller.result()
    print("The status of the purchase operation was: " + purchase_poller.status())
except Exception as ex:
    print('Exception:')
    print(ex)

Obtención de los números de teléfono comprados

Después de comprar un número, puede recuperarlo del cliente.

purchased_phone_number_information = phone_numbers_client.get_purchased_phone_number("+18001234567")
print('Phone number: ' + purchased_phone_number_information.phone_number)
print('Country code: ' + purchased_phone_number_information.country_code)

También puede recuperar todos los números de teléfono comprados.

purchased_phone_numbers = phone_numbers_client.list_purchased_phone_numbers()
print('Purchased phone numbers:')
for purchased_phone_number in purchased_phone_numbers:
    print(purchased_phone_number.phone_number)

Actualización de las funcionalidades del número de teléfono

Puede actualizar las funcionalidades de un número de teléfono anteriormente comprado.

update_poller = phone_numbers_client.begin_update_phone_number_capabilities(
    "+18001234567",
    PhoneNumberCapabilityType.OUTBOUND,
    PhoneNumberCapabilityType.OUTBOUND,
    polling = True
)
update_poller.result()
print('Status of the operation: ' + update_poller.status())

Liberación de números de teléfono

Puede liberar los números de teléfono comprados.

release_poller = phone_numbers_client.begin_release_phone_number("+18001234567")
release_poller.result()
print('Status of the operation: ' + release_poller.status())

Ejecución del código

Desde un símbolo del sistema de la consola, vaya al directorio que contiene el archivo phone_numbers_sample.py y ejecute el siguiente comando de Python para ejecutar la aplicación.

python phone_numbers_sample.py

Nota

Busque el código finalizado de este inicio rápido en GitHub

Requisitos previos

Comprobación de requisitos previos

  • En una ventana de terminal o de comandos, ejecute node --version para comprobar que Node.js está instalado.

Instalación

Creación de una nueva aplicación Node.js

En primer lugar, abra la ventana de comandos o de terminal, cree un nuevo directorio para la aplicación y navegue hasta este.

mkdir phone-numbers-quickstart && cd phone-numbers-quickstart

Ejecute npm init -y para crear un archivo package.json con la configuración predeterminada.

npm init -y

Cree un archivo llamado phone-numbers-quickstart.js en la raíz del directorio que acaba de crear. Agréguele el siguiente fragmento de código:

async function main() {
    // quickstart code will here
}

main();

Instalar el paquete

Use el comando npm install para instalar la biblioteca cliente de números de teléfono de Azure Communication Services para JavaScript.

npm install @azure/communication-phone-numbers --save

La opción --save agrega la biblioteca como dependencia en el archivo package.json.

Autenticar el cliente

Importe la clase PhoneNumbersClient desde la biblioteca cliente y cree una instancia con la cadena de conexión. El código siguiente recupera la cadena de conexión para el recurso de una variable de entorno denominada COMMUNICATION_SERVICES_CONNECTION_STRING. Aprenda a administrar la cadena de conexión del recurso.

Agregue el código siguiente en la parte superior de phone-numbers-quickstart.js:

const { PhoneNumbersClient } = require('@azure/communication-phone-numbers');

// This code demonstrates how to fetch your connection string
// from an environment variable.
const connectionString = process.env['COMMUNICATION_SERVICES_CONNECTION_STRING'];

// Instantiate the phone numbers client
const phoneNumbersClient = new PhoneNumbersClient(connectionString);

Administración de números de teléfono

Búsqueda de los números de teléfono disponibles

Para adquirir números de teléfono, primero debe buscar los que están disponibles. Para buscar números de teléfono, proporcione el código de área, el tipo de asignación, las funcionalidades del número de teléfono, el tipo de número de teléfono y la cantidad. Tenga en cuenta que para el tipo de número de teléfono gratuito, el código de área es opcional.

Agregue el siguiente fragmento de código a la función main:

/**
 * Search for Available Phone Number
 */

// Create search request
const searchRequest = {
    countryCode: "US",
    phoneNumberType: "tollFree",
    assignmentType: "application",
    capabilities: {
      sms: "outbound",
      calling: "none"
    },
    areaCode: "833",
    quantity: 1
  };

const searchPoller = await phoneNumbersClient.beginSearchAvailablePhoneNumbers(searchRequest);

// The search is underway. Wait to receive searchId.
const { searchId, phoneNumbers } = await searchPoller.pollUntilDone();
const phoneNumber = phoneNumbers[0];

console.log(`Found phone number: ${phoneNumber}`);
console.log(`searchId: ${searchId}`);

Compra de un número de teléfono

El resultado de la búsqueda de números de teléfono es PhoneNumberSearchResult. Este valor contiene el valor de searchId, que se puede pasar a la API de compra de números de para obtener los números en la búsqueda. Tenga en cuenta que, al llamar a la API de compra de números de teléfono, se realizará un cargo a su cuenta de Azure.

Agregue el siguiente fragmento de código a la función main:

/**
 * Purchase Phone Number
 */

const purchasePoller = await phoneNumbersClient.beginPurchasePhoneNumbers(searchId);

// Purchase is underway.
await purchasePoller.pollUntilDone();
console.log(`Successfully purchased ${phoneNumber}`);

Actualización de las funcionalidades del número de teléfono

Ahora que ha comprado un número de teléfono, agregue el código siguiente para actualizar sus funcionalidades:

/**
 * Update Phone Number Capabilities
 */

// Create update request.
// This will update phone number to send and receive sms, but only send calls.
const updateRequest = {
  sms: "inbound+outbound",
  calling: "outbound"
};

const updatePoller = await phoneNumbersClient.beginUpdatePhoneNumberCapabilities(
  phoneNumber,
  updateRequest
);

// Update is underway.
await updatePoller.pollUntilDone();
console.log("Phone number updated successfully.");

Obtención de los números de teléfono comprados

Una vez comprado, puede recuperar el número del cliente. Agregue el código siguiente a la función mainpara obtener el número de teléfono que acaba de comprar:

/**
 * Get Purchased Phone Number
 */

const { capabilities } = await phoneNumbersClient.getPurchasedPhoneNumber(phoneNumber);
console.log("These capabilities:", capabilities, "should be the same as these:", updateRequest, ".");

También puede recuperar todos los números de teléfono comprados.

const purchasedPhoneNumbers = await phoneNumbersClient.listPurchasedPhoneNumbers();

for await (const purchasedPhoneNumber of purchasedPhoneNumbers) {
  console.log(`Phone number: ${purchasedPhoneNumber.phoneNumber}, country code: ${purchasedPhoneNumber.countryCode}.`);
}

Descarte de un número de teléfono

Ahora puede descartar el número de teléfono comprado. Agregue el siguiente fragmento de código a la función main:

/**
 * Release Purchased Phone Number
 */

const releasePoller = await phoneNumbersClient.beginReleasePhoneNumber(phoneNumber);

// Release is underway.
await releasePoller.pollUntilDone();
console.log("Successfully release phone number.");

Ejecución del código

Use el comando node para ejecutar el código que agregó al archivo phone-numbers-quickstart.js.

node phone-numbers-quickstart.js

Solución de problemas

Preguntas y problemas comunes:

  • Si se libera un número de teléfono, este no se liberará ni se podrá volver a comprar hasta el final del período de facturación.

  • Si se elimina un recurso de Communication Services, los números de teléfono asociados a ese recurso se liberarán automáticamente al mismo tiempo.

Pasos siguientes

En esta guía de inicio rápido, ha aprendido a hacer lo siguiente:

  • Comprar un número de teléfono
  • Administrar el número de teléfono
  • Liberar un número de teléfono