Biblioteca cliente de Administración de comunicaciones de Azure para JavaScript: versión 1.0.0-beta.3
La biblioteca de administración se usa para administrar usuarios y tokens para Azure Communication Services. Esta biblioteca también proporciona funcionalidades para la administración de números de teléfono.
Los números de teléfono adquiridos pueden tener muchas funcionalidades, según el país, el tipo de número y el plan de teléfono. Algunos ejemplos de funcionalidades son el uso entrante y saliente de SMS, el uso entrante y saliente de RTC. Los números de teléfono también se pueden asignar a un bot a través de una dirección URL de webhook.
Introducción
Requisitos previos
- Una suscripción de Azure.
- Un recurso de Communication Services existente. Si necesita crear el recurso, puede usar Azure Portal o la CLI de Azure.
Instalación de
npm install @azure/communication-administration
Conceptos clave
Clientes
El paquete de administración expone dos clientes.
CommunicationIdentityClient
Proporciona métodos para administrar usuarios y sus tokens.
PhoneNumberAdministrationClient
Proporciona métodos para administrar los planes de teléfono y los números.
Introducción a los planes telefónicos
Los planes telefónicos vienen en dos tipos; Geográfico y gratuito. Los planes telefónicos 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 con el 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 telefónicos 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 Toll-Free planes telefónicos dentro del mismo país se agrupan en un grupo de planes telefónicos.
Búsqueda y adquisición de números
Los números de teléfono se pueden buscar a través de la API de creación de búsqueda proporcionando un identificador de plan de teléfono, un código de área y una cantidad de números de teléfono. La cantidad proporcionada de números de teléfono se reservará durante diez minutos. Esta búsqueda de números de teléfono se puede cancelar o comprar. Si se cancela la búsqueda, los números de teléfono estarán disponibles para otros usuarios. Si se compra la búsqueda, los números de teléfono se adquieren para los recursos de Azure.
Configuración y asignación de números
Los números de teléfono se pueden asignar a una dirección URL de devolución de llamada a través de la API de configuración de números. Como parte de la configuración, necesitará un número de teléfono adquirido, una dirección URL de devolución de llamada y un identificador de aplicación.
Ejemplos
Authentication
Puede obtener una clave o una cadena de conexión del recurso de Communication Services en Azure Portal. Una vez que tenga una clave, puede autenticar CommunicationIdentityClient
y PhoneNumberAdministrationClient
con cualquiera de los métodos siguientes:
Crear KeyCredential
con AzureKeyCredential
antes de inicializar el cliente
import { AzureKeyCredential } from "@azure/core-auth";
import { CommunicationIdentityClient } from "@azure/communication-administration";
const credential = new AzureKeyCredential(KEY);
const client = new CommunicationIdentityClient(HOST, credential);
Uso de una cadena de conexión
import { PhoneNumberAdministrationClient } from "@azure/communication-administration";
const connectionString = `endpoint=HOST;accessKey=KEY`;
const client = new CommunicationIdentityClient(connectionString);
Si usa una clave para inicializar el cliente, también deberá proporcionar el punto de conexión adecuado. Puede obtener este punto de conexión del recurso de Communication Services en Azure Portal.
Uso
CommunicationIdentityClient
Creación de una instancia de CommunicationIdentityClient
import { CommunicationIdentityClient } from "@azure/communication-administration";
const client = new CommunicationIdentityClient(CONNECTION_STRING);
Creación de un nuevo usuario
Use el createUser
método para crear un nuevo usuario.
const user = await client.createUser();
Creación y actualización de un token de usuario
Use el issueToken
método para emitir o actualizar un token para un usuario existente. El método también toma una lista de ámbitos de token de comunicación. Entre las opciones de ámbito se incluyen:
-
chat
(Chat) -
pstn
(Red telefónica conmutada pública) -
voip
(Voz sobre IP)
let { token } = await client.issueToken(user, ["chat"]);
Para actualizar el token de usuario, emita otro token con el mismo usuario.
{ token } = await client.issueToken(user, ["chat"]);
Revocar tokens para un usuario
Use el revokeTokens
método para revocar todos los tokens emitidos de un usuario.
await client.revokeTokens(user);
revokeTokens
toma un segundo argumento opcional, tokensValidFrom
. Si se proporciona esta fecha, revokeTokens
revocará todos los tokens emitidos antes de ella. De lo contrario, se revocarán todos los tokens.
Eliminar un usuario
Use el deleteUser
método para eliminar un usuario.
await client.deleteUser(user);
PhoneNumberAdministrationClient
Creación de una instancia de PhoneNumberAdministrationClient
import { CommunicationIdentityClient } from "@azure/communication-administration";
const client = new CommunicationIdentityClient(CONNECTION_STRING);
Obtención de países
Use el listSupportedCountries
método para obtener una lista de los países admitidos.
const countries = await client.listSupportedCountries();
for await (const country of countries) {
console.log(`Country code: ${country.countryCode}`);
console.log(`Country name: ${country.localizedName}`);
}
Obtención de grupos de planes de teléfono
Los grupos de planes telefónicos vienen en dos tipos, Geográfico y Gratuito. Use el listPhonePlanGroups
método para obtenerlos.
const countryCode = "US";
const phonePlanGroups = await client.listPhonePlanGroups(countryCode);
for await (const phonePlanGroup of phonePlanGroups) {
console.log(`Phone plan group id: ${phonePlanGroup.phonePlanGroupId}`);
}
Obtención de opciones de ubicación
En el caso de los planes telefónicos geográficos, puede consultar las ubicaciones geográficas disponibles. Las opciones de ubicaciones se estructuran como la jerarquía geográfica de un país. Por ejemplo, Estados Unidos tiene estados y dentro de cada estado son ciudades.
Use el getPhonePlanLocationOptions
método para obtener las opciones de una ubicación.
const { locationOptions } = await client.getPhonePlanLocationOptions({
countryCode: "US",
phonePlanGroupId: "phonePlanGroupId",
phonePlanId: "phonePlanId"
});
console.log(`Got location options for: ${locationOptions.labelId}`);
Obtención de códigos de área
La captura de códigos de área para planes telefónicos geográficos requerirá las consultas de opciones de ubicación establecidas. Debe incluir la cadena de ubicaciones geográficas que atraviesan el objeto de opciones de ubicación devuelto por .getPhonePlanLocationOptions
Use el getAreaCodes
método para obtener los códigos de área de los planes telefónicos geográficos.
const { primaryAreaCodes } = await client.getAreaCodes({
locationType: "selection",
countryCode: "US",
phonePlanId: "phonePlanId",
locationOptionsQueries
});
Reservar números de teléfono para la compra
Use el beginReservePhoneNumbers
método para buscar números de teléfono y reservarlos. Se trata de una operación de ejecución prolongada.
const reservePoller = await client.beginReservePhoneNumbers({
name: "Phone number search 800",
description: "Search for 800 phone numbers"
phonePlanIds: ["phone-plan-id-1"],
areaCode: "800",
quantity: 3
});
Para obtener los resultados de la reserva, use el pollUntilDone
método en el sondeo que creó.
const phoneNumberReservation = await reservePoller.pollUntilDone();
Puede cancelar el sondeo y la reserva llamando al cancelOperation
método en el sondeo que creó.
await reservePoller.cancelOperation();
Comprar números de teléfono de una reserva
Use el beginPurchasePhoneNumbers
método para comprar los números de teléfono de la reserva. Se requiere el reservationId
valor devuelto de beginReservePhoneNumbers
.
beginPurchasePhoneNumbers
también es una operación de larga duración.
const { reservationId } = phoneNumberReservation;
const purchasePoller = await client.beginPurchasePhoneNumbers(reservationId);
Para obtener los resultados de la compra, use el pollUntilDone
método en el sondeo de compra que creó.
const results = await purchasePoller.pollUntilDone();
Solución de problemas
Pasos siguientes
Eche un vistazo al directorio de ejemplos para obtener ejemplos detallados sobre cómo usar esta biblioteca.
Contribuciones
Si desea contribuir a esta biblioteca, lea la guía de contribución para obtener más información sobre cómo compilar y probar el código.
Proyectos relacionados
Azure SDK for JavaScript