Dela via


Azure Communication Phone Numbers-klientbibliotek för JavaScript – version 1.0.0

Telefonnummerbiblioteket tillhandahåller funktioner för telefonnummeradministration.

Köpta telefonnummer kan ha många funktioner, beroende på land, nummertyp och tilldelningstyp. Exempel på funktioner är inkommande och utgående SMS-användning, inkommande och utgående PSTN-användning. Telefonnummer kan också tilldelas till en robot via en webhook-URL.

Komma igång

Förutsättningar

Installation

npm install @azure/communication-phone-numbers

Stöd för webbläsare

JavaScript-paket

Om du vill använda det här klientbiblioteket i webbläsaren måste du först använda en bundler. Mer information om hur du gör detta finns i vår paketeringsdokumentation.

Viktiga begrepp

Telefonnummerpaketet visar vilka PhoneNumbersClient metoder som kan användas för att hantera telefonnummer.

Telefonnummertyper

Telefonnummer finns i två typer; Geografisk och avgiftsfri. Geografiska telefonnummer är telefonnummer som är associerade med en plats, vars riktnummer är associerade med riktnumret för en geografisk plats. Toll-Free telefonnummer är inte kopplade till en plats. I USA kan till exempel avgiftsfria nummer komma med riktnummer som 800 eller 888.

Alla geografiska telefonnummer i samma land grupperas i en telefonplansgrupp med en geografisk telefonnummertyp. Alla Toll-Free telefonnummer i samma land grupperas i en telefonplansgrupp.

Söka efter och hämta nummer

Telefonnummer kan sökas igenom API:et för sökskapande genom att ange en telefonnummertyp (geografisk eller avgiftsfri), tilldelningstyp (person eller program), samtals- och sms-funktioner, riktnummer och antal telefonnummer. Den angivna mängden telefonnummer reserveras i 15 minuter. Den här sökningen av telefonnummer kan antingen avbrytas eller köpas. Om sökningen avbryts blir telefonnumren tillgängliga för andra. Om sökningen köps hämtas telefonnumren för Azure-resursen.

Konfigurera telefonnummer

Telefonnummer kan ha en kombination av funktioner. De kan konfigureras för att stödja inkommande och/eller utgående samtal, eller inte om du inte använder telefonnumret för att ringa. Detsamma gäller för sms-funktioner.

Det är viktigt att tänka på tilldelningstypen för ditt telefonnummer. Vissa funktioner är begränsade till en viss tilldelningstyp.

Exempel

Autentisering

Om du vill skapa ett klientobjekt för åtkomst till Communication Services-API:et endpoint behöver du en connection string eller av din Communication Services-resurs och en credential. Phone Numbers-klienten kan använda antingen Azure Active Directory-autentiseringsuppgifter eller en API-nyckelautentiseringsuppgift för att autentisera.

Du kan hämta en nyckel och/eller anslutningssträng från din Communication Services-resurs i Azure-portalen. Du hittar även slutpunkten för din Communication Services-resurs i Azure-portalen.

När du har en nyckel kan du autentisera PhoneNumbersClient med någon av följande metoder:

Använda en anslutningssträng

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

Använda en åtkomstnyckel med AzureKeyCredential

Om du använder en nyckel för att initiera klienten måste du också ange lämplig slutpunkt. Du kan hämta den här slutpunkten från din Communication Services-resurs i Azure-portalen. När du har en nyckel och en slutpunkt kan du autentisera med följande kod:

import { AzureKeyCredential } from "@azure/core-auth";
import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const credential = new AzureKeyCredential("<key-from-resource>");
const client = new PhoneNumbersClient("<endpoint-from-resource>", credential);

Använda en Azure Active Directory-autentiseringsuppgift

Autentisering med anslutningssträngar används i de flesta av exemplen, men du kan också autentisera med Azure Active Directory med hjälp av Azure Identity-biblioteket. Om du vill använda DefaultAzureCredential-providern som visas nedan eller andra leverantörer av autentiseringsuppgifter som medföljer Azure SDK installerar @azure/identity du paketet:

npm install @azure/identity

Paketet @azure/identity innehåller en mängd olika typer av autentiseringsuppgifter som programmet kan använda för att göra detta. README för @azure/identity innehåller mer information och exempel för att komma igång.

import { DefaultAzureCredential } from "@azure/identity";
import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

let credential = new DefaultAzureCredential();
const client = new PhoneNumbersClient("<endpoint-from-resource>", credential);

Användning

Följande avsnitt innehåller kodfragment som täcker några av de vanliga uppgifterna med hjälp av klienten Azure Communication Services Telefonnummer. De scenarier som beskrivs här består av:

Sök efter tillgängliga telefonnummer

beginSearchAvailablePhoneNumbers Använd metoden för att söka efter telefonnummer och reservera dem. De telefonnummer som returneras är reserverade i 15 minuter och kan köpas under den här perioden genom att tillhandahålla searchId metoden.beginPurchasePhoneNumbers

beginSearchAvailablePhoneNumbers är en tidskrävande åtgärd och returnerar en poller.

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

async function main() {
  const searchRequest = {
    countryCode: "US",
    phoneNumberType: "tollFree",
    assignmentType: "application",
    capabilities: {
      sms: "outbound",
      calling: "none"
    },
    quantity: 1
  };

  const searchPoller = await client.beginSearchAvailablePhoneNumbers(searchRequest);

  // The search is underway. Wait to receive searchId.
  const searchResults = searchPoller.pollUntilDone();
  console.log(`Found phone number: ${searchResults.phoneNumbers[0]}`);
  console.log(`searchId: ${searchResults.searchId}`);
}

main();

Använd metoden för att köpa telefonnummer från sökningen beginPurchasePhoneNumbers . Köpta telefonnummer tilldelas till den Communication Services-resurs som används när klienten initieras. Den searchId som returneras från beginSearchAvailablePhoneNumbers krävs.

beginPurchasePhoneNumbers är en tidskrävande åtgärd och returnerar en poller.

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

async function main() {
  const searchRequest = {
    countryCode: "US",
    phoneNumberType: "tollFree",
    assignmentType: "application",
    capabilities: {
      sms: "outbound",
      calling: "none"
    },
    quantity: 1
  };

  const searchPoller = await client.beginSearchAvailablePhoneNumbers(searchRequest);

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

  const purchasePoller = await client.beginPurchasePhoneNumbers(searchId);

  // Purchase is underway.
  await purchasePoller.pollUntilDone();
  console.log(`Successfully purchased ${phoneNumbers[0]}`);
}

main();

Släpp ett köpt telefonnummer

beginReleasePhoneNumber Använd metoden för att släppa ett tidigare köpt telefonnummer. Utgivna telefonnummer kommer inte längre att associeras med Communication Services-resursen och kommer inte att vara tillgängliga för användning med andra åtgärder (t.ex. SMS) för resursen. Telefonnumret som släpps krävs.

beginReleasePhoneNumber är en tidskrävande åtgärd och returnerar en poller.

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

async function main() {
  const phoneNumberToRelease = "<phone-number-to-release>";

  const releasePoller = await client.beginReleasePhoneNumber(phoneNumberToRelease);

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

main();

Uppdatera funktioner för telefonnummer

beginUpdatePhoneNumberCapabilities Använd metoden för att uppdatera funktionerna i ett köpt telefonnummer. Telefonnummer kan konfigureras för att stödja inkommande och/eller utgående samtal och sms, eller ingetdera.

beginUpdatePhoneNumberCapabilities är en tidskrävande åtgärd och returnerar en poller.

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

async function main() {
  const phoneNumberToUpdate = "<phone-number-to-update>";

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

  const updatePoller = await client.beginUpdatePhoneNumberCapabilities(
    phoneNumberToUpdate,
    updateRequest
  );

  // Update is underway.
  const { capabilities } = await updatePoller.pollUntilDone();
  console.log(`These are the update capabilities: ${capabilities}`);
}

main();

Hämta ett köpt telefonnummer

getPurchasedPhoneNumber Använd metoden för att hämta information om ett köpt telefonnummer. Den här informationen omfattar telefonnumrets typ, funktioner, kostnad och inköpsdatum.

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

async main function() {
  const phoneNumberToGet = "<phone-number-to-get>";

  const phoneNumber = await client.getPurchasedPhoneNumber(phoneNumberToGet);

  console.log(`The id is the same as the phone number: ${phoneNumber.id}`);
  console.log(`Phone number type is ${phoneNumber.phoneNumberType}`);
}

main();

Lista köpta telefonnummer

listPurchasedPhoneNumbers Använd metoden för att bläddra igenom alla köpta telefonnummer.

import { PhoneNumbersClient } from "@azure/communication-phone-numbers";

const connectionString = "endpoint=<endpoint>;accessKey=<accessKey>";
const client = new PhoneNumbersClient(connectionString);

async main function() {
  const phoneNumbers = await client.listPurchasedPhoneNumbers();

  for await (const phoneNumber of phoneNumbers) {
    console.log(`The id is the same as the phone number: ${phoneNumber.id}`);
    console.log(`Phone number type is ${phoneNumber.phoneNumberType}`);
  }
}

main();

Felsökning

Nästa steg

Ta en titt på exempelkatalogen för detaljerade exempel på hur du använder det här biblioteket.

Bidra

Om du vill bidra till det här biblioteket kan du läsa bidragsguiden för att lära dig mer om hur du skapar och testar koden.

Visningar