Dela via


Snabbstart: Hämta och hantera telefonnummer

Viktigt!

SMS- och PSTN-funktioner beror på vilket telefonnummer du använder och det land/den region som du arbetar inom enligt din Azure-faktureringsadress. Mer information finns i dokumentationen om prenumerationsberättigande.

Viktigt!

För beställningar med stora volymer eller om det önskade telefonnumret inte är tillgängligt kan du gå till den här sidan för ytterligare hjälp.

Förutsättningar

Köpa ett telefonnummer

  1. Gå till kommunikationstjänstens resurs i Azure Portal.

    Skärmbild som visar huvudsidan för en Communication Services-resurs.

  2. I resursöversikten för Communication Services väljer du alternativet "Telefonnummer" i den vänstra menyn.

    Skärmbild som visar en Communication Services-resurss telefonnummersida.

  3. Välj Hämta längst upp till vänster på sidan för att köpa ditt telefonnummer. När du väljer det här startas vår shoppingguide:

    Skärmbild som visar sökguiden för kundvagn för telefonnummer.

  4. Välj det land/den region där du vill etablera telefonnumret. Tillgänglighet för land/region baseras på faktureringsplatsen för din Azure-prenumeration. Mer information om vilka siffror som är tillgängliga för varje land/region finns här. Därefter väljer du nummertypen. Du kan välja mellan två typer av telefonnummer: Lokal och Avgiftsfri.

Anteckning

  • Bulknummerbeställningar eller vissa länder/regioner, till exempel Nederländerna, kräver en särskild order för telefonnummer. Om specialbeställning behövs uppmanas du att följa nedanstående specialbeställningsprocess.
  • Klicka på knappen Begär en specialbeställning i avsnittet Telefonnummer.
  • Öppna ett nytt ärende.
  • Välj "Azure Communication Service" som kundprofil.
  • Välj det land/den region där du behöver telefonnummer.
  • Välj "Nytt TN-förvärv" som ärendetyp.
  • Fyll i nödvändig information och skicka din begäran.
  1. Välj Sök för att hämta nummer som uppfyller dina valda villkor. Du har olika filter för att söka efter det nummer som passar dina behov, inklusive:

    • Användningsfall: Detta gäller om du använder det här numret för att anropa från ett program (A2P) eller från en mänsklig agent (P2P).
    • Samtal: Detta är för att fastställa vilka samtalsfunktioner du vill ha för ditt telefonnummer: Ringa samtal och/eller ta emot samtal.
    • SMS: Detta är för att fastställa vilka SMS-funktioner du vill ha för ditt telefonnummer: Skicka och/eller ta emot SMS.
    • Anpassad: Du kan också lägga till anpassade filter för att hämta ett visst prefix eller en uppsättning siffror i ditt telefonnummer.

    Skärmbild som visar sidan för köp av telefonnummer med tillgängliga telefonnummer.

  2. När du har hittat det telefonnummer eller nummer du väljer väljer du Lägg till i kundvagn för att lagra numren i telefonvagnen. Dessa nummer lagras i 16 minuter innan din kundvagn rensas automatiskt.

    Skärmbild som visar kundvagn för telefonnummer med två telefonnummer i kundvagnen.

    Anteckning

    Priserna som visas är de månatliga återkommande avgifterna som täcker kostnaden för att hyra ut det valda telefonnumret till dig. De kostnader för betala per användning som tillkommer när du ringer eller tar emot samtal ingår inte i den här vyn. Prislistorna finns här. Dessa kostnader beror på nummertyp och mål som anropas. Till exempel kan pris per minut för ett samtal från ett regionalt nummer i Seattle till ett regionalt nummer i New York och ett samtal från samma nummer till ett brittiskt mobilnummer vara annorlunda.

  3. Välj Nästa för att granska ditt köp. Slutför köpet genom att välja Köp nu.

    Skärmbild som visar 2 telefonnummer att granska och köpa.

  4. Du hittar dina köpta nummer på sidan Telefonnummer . Det kan ta några minuter innan siffrorna tilldelas.

    Skärmbild av sidan telefonnummer med de nyinköpta telefonnumren rutade med en röd kantlinje.

Uppdatera funktioner för telefonnummer

På sidan Telefonnummer kan du välja ett telefonnummer för att konfigurera det.

Skärmbild som visar sidan med uppdateringsfunktioner.

Välj funktionerna från de tillgängliga alternativen och välj sedan Spara för att tillämpa ditt val.

Släpp telefonnummer

På sidan Nummer kan du släppa telefonnummer.

Skärmbild som visar sidan med versionstelefonnummer.

Välj det telefonnummer som du vill släppa och välj sedan på knappen Släpp .

Förutsättningar

Konfigurera

Lägga till tillägget

Lägg till Azure Communication Services-tillägget för Azure CLI med hjälp az extension av kommandot .

az extension add --name communication

Logga in på Azure CLI

Du måste logga in på Azure CLI. Du kan logga in med az login kommandot från terminalen och ange dina autentiseringsuppgifter.

Operativa åtgärder

Lista köpta telefonnummer

Kör följande kommando för att hämta alla köpta telefonnummer.

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

Gör den här ändringen i koden

  • Ersätt <yourConnectionString> med din anslutningssträng.

Hämta information om köpta telefonnummer

Kör följande kommando för att hämta telefonnummerinformationen för ett köpt telefonnummer.

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

Gör följande ersättningar i koden:

  • Ersätt <purchasedPhoneNumber> med ett telefonnummer som är associerat med din Communication Services-resurs.
  • Ersätt <yourConnectionString> med din anslutningssträng.

Anteckning

Azure CLI-alternativet innehåller endast funktioner för att lista och visa telefonnummer. Det stöder inte andra åtgärder som att söka, köpa, redigera eller släppa telefonnummer.

(Valfritt) Använda Azure CLI-telefonnummeråtgärder utan att skicka in en anslutningssträng

Du kan konfigurera AZURE_COMMUNICATION_CONNECTION_STRING miljövariabeln så att den använder Azure CLI-telefonnummeråtgärder utan att behöva använda --connection_string för att skicka in anslutningssträng. Om du vill konfigurera en miljövariabel öppnar du ett konsolfönster och väljer ditt operativsystem på flikarna nedan. Ersätt <yourConnectionString> med din faktiska anslutningssträng.

Öppna ett konsolfönster och ange följande kommando:

setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"

När du har lagt till miljövariabeln kan du behöva starta om alla program som körs och som behöver läsa in miljövariabeln, däribland konsolfönstret. Om du till exempel använder Visual Studio som redigerare startar du om Visual Studio innan du kör exemplet.

Anteckning

Hitta den färdiga koden för den här snabbstarten på GitHub

Förutsättningar

Kravkontroll

  • I ett terminal- eller kommandofönster kör du dotnet kommandot för att kontrollera att .NET-klientbiblioteket är installerat.

Konfigurera

Skapa ett nytt C#-program

I ett konsolfönster (till exempel cmd, PowerShell eller Bash) använder du dotnet new kommandot för att skapa en ny konsolapp med namnet PhoneNumbersQuickstart. Det här kommandot skapar ett enkelt "Hello World"-C#-projekt med en enda källfil: Program.cs.

dotnet new console -o PhoneNumbersQuickstart

Ändra katalogen till den nyligen skapade appmappen dotnet build och använd kommandot för att kompilera programmet.

cd PhoneNumbersQuickstart
dotnet build

Installera paketet

Installera Azure Communication PhoneNumbers-klientbiblioteket för .NET-paketet med hjälp av kommandot medan du fortfarande är i programkatalogen dotnet add package .

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

Lägg till ett using direktiv överst i Program.cs för att inkludera namnrymderna.

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

Uppdatera Main funktionssignaturen så att den är asynkron.

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

Autentisera klienten

Telefonnummerklienter kan autentiseras genom att använda anslutningssträngen som hämtats från en Azure Communication Services-resurs i Azure-portalen.

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

Telefonnummerklienter har också möjlighet att autentisera med Microsoft Entra-autentisering. Med det här alternativet måste miljövariablerna AZURE_CLIENT_SECRET, AZURE_CLIENT_ID och AZURE_TENANT_ID konfigureras för autentisering.

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

Hantera telefonnummer

Sök efter tillgängliga telefonnummer

För att kunna köpa telefonnummer måste du först söka efter tillgängliga telefonnummer. Om du vill söka efter telefonnummer anger du riktnummer, tilldelningstyp, telefonnummerfunktioner, telefonnummertyp och kvantitet. Observera att för den avgiftsfria telefonnummertypen är det valfritt att ange riktnummer.

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

Köpa telefonnummer

Resultatet av sökningen efter telefonnummer är en PhoneNumberSearchResult. Detta innehåller en SearchId som kan skickas till API:et för inköpsnummer för att hämta numren i sökningen. Observera att om du anropar API:et för inköpstelefonnummer debiteras ditt Azure-konto.

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

Hämta telefonnummer

När du har ett inköpsnummer kan du hämta det från kunden.

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

Du kan också hämta alla köpta telefonnummer.

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

Uppdatera funktioner för telefonnummer

Med ett köpt nummer kan du uppdatera funktionerna.

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

Versionstelefonnummer

Du kan frisläppa ett köpt telefonnummer.

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

Kör koden

Kör programmet från programkatalogen dotnet run med kommandot .

dotnet run

Exempelkod

Du kan ladda ned exempelappen från GitHub

Anteckning

Hitta den färdiga koden för den här snabbstarten på GitHub

Förutsättningar

Inrätta

Skapa ett nytt Java-program

Öppna terminalen eller kommandofönstret. Navigera till katalogen där du vill skapa ditt Java-program. Kör kommandot nedan för att generera Java-projektet från mallen maven-archetype-quickstart.

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

Du kommer att märka att aktiviteten "generera" skapade en katalog med samma namn som artifactId. Under den här katalogen innehåller katalogen src/main/java projektkällkoden, src/test/java directory innehåller testkällan och pom.xml filen är projektets projektobjektmodell eller POM.

Installera paketet

Öppna filenpom.xml i textredigeraren. Lägg till följande beroendeelement i gruppen med beroenden.

<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>

Konfigurera appramverket

Från projektkatalogen:

  1. Navigera till katalogen /src/main/java/com/communication/quickstart
  2. Öppna filen App.java i redigeringsprogrammet
  3. Ersätt System.out.println("Hello world!");-instruktionen
  4. Lägga till import direktiv

Börja med följande kod:

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
    }
}

Autentisera telefonnummerklienten

PhoneNumberClientBuilder är aktiverad för att använda Microsoft Entra-autentisering

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

Du kan också använda slutpunkten och åtkomstnyckeln från kommunikationsresursen för att autentisera.

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

Hantera telefonnummer

Sök efter tillgängliga telefonnummer

För att kunna köpa telefonnummer måste du först söka efter tillgängliga telefonnummer. Om du vill söka efter telefonnummer anger du riktnummer, tilldelningstyp, telefonnummerfunktioner, telefonnummertyp och kvantitet. Observera att för den avgiftsfria telefonnummertypen är det valfritt att ange riktnummer.

 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());
}

Köp telefonnummer

Resultatet av att söka efter telefonnummer är TelefonnummerSökResultat. Detta innehåller en searchId som kan skickas till API:et för inköpsnummer för att hämta numren i sökningen. Observera att om du anropar API:et för inköpstelefonnummer debiteras ditt Azure-konto.

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

Hämta telefonnummer

När du har ett inköpsnummer kan du hämta det från kunden.

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

Du kan också hämta alla köpta telefonnummer.

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

Uppdatera funktioner för telefonnummer

Med ett köpt nummer kan du uppdatera funktionerna.

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
}

Släpp telefonnummer

Du kan frisläppa ett köpt telefonnummer.

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

Kör koden

Navigera till katalogen som innehåller pom.xml-filen och kompilera projektet med hjälp av följande mvn kommando.

mvn compile

Skapa sedan paketet.

mvn package

Kör följande mvn kommando för att köra appen.

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

Utdata från appen beskriver varje åtgärd som har slutförts:

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

Anteckning

Hitta den färdiga koden för den här snabbstarten på GitHub

Förutsättningar

Konfigurera

Skapa ett nytt Python-program

Öppna terminalen eller kommandofönstret och skapa en ny katalog för din app och navigera sedan till den.

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

Använd en textredigerare för att skapa en fil med namnet phone_numbers_sample.py i projektrotkatalogen och lägga till följande kod. Vi lägger till den återstående snabbstartskoden i följande avsnitt.

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)

Installera paketet

Installera Azure Communication Services Administration-klientbiblioteket för Python-paketet med hjälp av kommandot medan du fortfarande är i programkatalogen pip install .

pip install azure-communication-phonenumbers

Autentisera telefonnummerklienten

PhoneNumbersClient Är aktiverad för att använda Microsoft Entra-autentisering. DefaultAzureCredential Att använda objektet är det enklaste sättet att komma igång med Microsoft Entra-ID och du kan installera det med hjälp av pip install kommandot .

pip install azure-identity

Om du skapar ett DefaultAzureCredential objekt måste du ha AZURE_CLIENT_ID, AZURE_CLIENT_SECREToch AZURE_TENANT_ID redan angett som miljövariabler med motsvarande värden från ditt registrerade Microsoft Entra-program.

Om du vill ha en snabb upprampning av hur du hämtar dessa miljövariabler kan du följa snabbstarten Konfigurera tjänstens huvudnamn från CLI.

När du har installerat azure-identity biblioteket kan vi fortsätta att autentisera klienten.

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)

Du kan också använda slutpunkten och åtkomstnyckeln från kommunikationsresursen för att autentisera.

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)

Funktioner

När PhoneNumbersClient har autentiserats kan vi börja arbeta med de olika funktioner som den kan utföra.

Sök efter tillgängliga telefonnummer

För att kunna köpa telefonnummer måste du först söka efter tillgängliga telefonnummer. Om du vill söka efter telefonnummer anger du riktnummer, tilldelningstyp, telefonnummerfunktioner, telefonnummertyp och kvantitet (standardkvantitet är inställt på 1). Observera att för den avgiftsfria telefonnummertypen är det valfritt att ange riktnummer.

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)

Köp telefonnummer

Resultatet av sökningen efter telefonnummer är en PhoneNumberSearchResult. Detta innehåller en searchId som kan skickas till API:et för inköpsnummer för att hämta numren i sökningen. Observera att om du anropar API:et för inköpstelefonnummer debiteras ditt Azure-konto.

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)

Hämta köpta telefonnummer

När du har ett inköpsnummer kan du hämta det från kunden.

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)

Du kan också hämta alla köpta telefonnummer.

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)

Uppdatera funktioner för telefonnummer

Du kan uppdatera funktionerna i ett tidigare köpt telefonnummer.

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())

Släpp telefonnummer

Du kan frisläppa ett köpt telefonnummer.

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

Kör koden

Gå till katalogen som innehåller phone_numbers_sample.py-filen från en konsolprompt och kör sedan följande Python-kommando för att köra appen.

python phone_numbers_sample.py

Anteckning

Hitta den färdiga koden för den här snabbstarten på GitHub

Förutsättningar

Kravkontroll

  • I ett terminal- eller kommandofönster kör du node --version för att kontrollera att Node.js är installerat.

Konfigurera

Skapa ett nytt Node.js-program

Öppna först terminalen eller kommandofönstret, skapa en ny katalog för din app och navigera till den.

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

Kör npm init -y för att skapa en package.json fil med standardinställningar.

npm init -y

Skapa en fil med namnet phone-numbers-quickstart.js i roten för den katalog som du nyss skapade. Lägg till följande kodfragment i det:

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

main();

Installera paketet

npm install Använd kommandot för att installera Azure Communication Services Phone Numbers-klientbiblioteket för JavaScript.

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

Alternativet --save lägger till biblioteket som ett beroende i dinpackage.json-fil .

Autentisera klienten

Importera PhoneNumbersClient från klientbiblioteket och instansiera det med anslutningssträngen. Koden nedan hämtar anslutningssträng för resursen från en miljövariabel med namnet COMMUNICATION_SERVICES_CONNECTION_STRING. Lär dig hur du hanterar resursens anslutningssträng.

Lägg till följande kod överst i 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);

Hantera telefonnummer

Sök efter tillgängliga telefonnummer

För att kunna köpa telefonnummer måste du först söka efter tillgängliga telefonnummer. Om du vill söka efter telefonnummer anger du riktnummer, tilldelningstyp, telefonnummerfunktioner, telefonnummertyp och kvantitet. Observera att för den avgiftsfria telefonnummertypen är det valfritt att ange riktnummer.

Lägg till följande kodfragment i funktionen 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}`);

Köpa telefonnummer

Resultatet av sökningen efter telefonnummer är en PhoneNumberSearchResult. Detta innehåller en searchId som kan skickas till API:et för inköpsnummer för att hämta numren i sökningen. Observera att om du anropar API:et för inköpstelefonnummer debiteras ditt Azure-konto.

Lägg till följande kodfragment i funktionen main :

/**
 * Purchase Phone Number
 */

const purchasePoller = await phoneNumbersClient.beginPurchasePhoneNumbers(searchId);

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

Uppdatera funktioner för telefonnummer

När ett telefonnummer nu har köpts lägger du till följande kod för att uppdatera dess funktioner:

/**
 * 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.");

Hämta köpta telefonnummer

När du har ett inköpsnummer kan du hämta det från kunden. Lägg till följande kod i funktionen main för att hämta det telefonnummer som du precis har köpt:

/**
 * Get Purchased Phone Number
 */

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

Du kan också hämta alla köpta telefonnummer.

const purchasedPhoneNumbers = await phoneNumbersClient.listPurchasedPhoneNumbers();

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

Versionstelefonnummer

Nu kan du släppa det köpta telefonnumret. Lägg till kodfragmentet nedan i funktionen main :

/**
 * Release Purchased Phone Number
 */

const releasePoller = await phoneNumbersClient.beginReleasePhoneNumber(phoneNumber);

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

Kör koden

node Använd kommandot för att köra koden som du lade till i filenphone-numbers-quickstart.js.

node phone-numbers-quickstart.js

Felsökning

Vanliga frågor och problem:

  • När ett telefonnummer släpps visas telefonnumret i din ACS-resurs på Azure Portal till slutet av faktureringsperioden. Det kan inte heller köpas om förrän i slutet av faktureringsperioden.

  • När en Communication Services-resurs tas bort släpps de telefonnummer som är associerade med resursen automatiskt samtidigt.

Nästa steg

I den här snabbstarten lärde du dig att:

  • Köpa ett telefonnummer
  • Hantera ditt telefonnummer
  • Släpp ett telefonnummer
  • Skicka in en avgiftsfri verifieringsansökan (se om det behövs)