共用方式為


快速入門:取得和管理電話號碼

重要

SMS 和 PSTN 功能取決於您使用的電話號碼,以及執行此功能的所在國家/地區,這些項目皆是根據您的 Azure 帳單地址所決定。 如需詳細資訊,請參閱訂用帳戶資格文件。

重要

如需大量訂單,或如果您的所需電話號碼無法使用,請造訪此頁面,以取得進一步的協助。

必要條件

取得電話號碼

若要開始佈建號碼,請移至 Azure 入口網站上的通訊服務資源。

顯示通訊服務資源主頁面的螢幕擷取畫面。

搜尋可用的電話號碼

瀏覽至資源功能表中的 [電話號碼] 刀鋒視窗。

顯示通訊服務資源電話頁面的螢幕快照。

按 [取得] 按鈕以啟動精靈。 [電話號碼] 刀鋒視窗上的精靈將逐步引導您完成一系列的問題,協助您選擇最適合您案例的電話號碼。

首先,您必須選擇您想要佈建電話號碼的 [國家/區域]。 選取國家/區域之後,您必須選取最能滿足您需求的 [使用案例]

顯示 [取得電話號碼] 檢視的螢幕快照。

選取您的電話號碼功能

設定電話號碼分為兩個步驟:

  1. 選取號碼類型
  2. 選取號碼功能

您可以從兩種電話號碼類型中選取:本地免付費電話。 當您選取了號碼類型時,就可以選擇該功能。

在我們的範例中,我們已選取 [撥打電話] 和 [傳送及接收簡訊] 功能的 [免付費電話] 號碼類型。

顯示 [選取功能] 檢視的螢幕快照。

從這裡按一下頁面底部的 [下一步:號碼] 按鈕,以自訂您想要佈建的電話號碼。

自訂電話號碼

在 [號碼] 頁面上,您將自訂想要佈建的電話號碼。

顯示 [數位] 選取頁面的螢幕快照。

注意

本快速入門會說明免付費電話號碼類型的自訂流程。 如果您已選擇 [本地] 號碼類型,可能會有稍微不同的體驗,但最終結果會是相同的。

從可用的區碼清單中選擇 [區碼],然後輸入您想要佈建的數量,再按一下 [搜尋],尋找符合您所選需求的號碼。 符合您需求的電話號碼將會連同其每月費用一起顯示。

顯示 [號碼] 選取頁面的螢幕快照,其中包含保留號碼。

注意

可用性取決於您所選取的號碼類型、位置和功能。 在交易到期之前,號碼會保留一小段時間。 如果交易過期,您將需要重新選取號碼。

若要檢視購買摘要並下單,請按一下頁面底部的 [下一步:摘要] 按鈕。

購買電話號碼

摘要頁面將會檢視用來佈建電話號碼的號碼類型、功能、電話號碼及每月費用總計。

注意

顯示的價格是每月週期性費用,其中涵蓋您租用所選電話號碼的費用。 此檢視中未包含隨用隨付的費用,此費用會在您撥打或接聽來電時產生。 您可以在這裡取得價格清單。 這些費用取決於號碼類型和撥打電話的目的地。 例如,從西雅圖地區號碼撥打到紐約中的地區號碼,與從相同號碼撥打到英國行動電話號碼的每分鐘價格可能會有所不同。

最後,按一下頁面底部的 [下單] 進行確認。

顯示 [摘要] 頁面的螢幕快照,其中顯示 [號碼類型]、[功能]、[電話號碼] 和 [每月總成本]。

在 Azure 入口網站上尋找您的電話號碼

Azure 入口網站上,瀏覽至您的 Azure 通訊服務資源:

顯示通訊服務資源主頁面的螢幕快照。

選取功能表中的 [電話號碼] 刀鋒視窗,以管理您的電話號碼。

顯示通訊服務資源電話號碼頁面的螢幕快照。

注意

可能需要幾分鐘的時間,已佈建的號碼才會顯示在此頁面上。

更新電話號碼功能

在 [電話號碼] 頁面上,您可以選取要設定的電話號碼。

顯示更新功能頁面的螢幕快照。

從可用的選項中選取功能,然後按一下 [儲存] 以套用您的選取項目。

釋出電話號碼

在 [號碼] 頁面上,您可以釋出電話號碼。

顯示發行電話號碼頁面的螢幕快照。

選取您要釋出的電話號碼,然後按一下 [發行] 按鈕。

重要

此 Azure 通訊服務功能目前處於預覽狀態。

提供的預覽 API 和 SDK 並無服務等級協定。 建議您不要將其用於生產工作負載。 部分功能可能不受支援,或是在功能上有所限制。

如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用規定

Azure 通訊服務引進了購買電話號碼的新使用者體驗。 此體驗目前正處於發行小眾測試版,您在 Azure 入口網站中購買電話號碼時,可能會向您介紹此體驗。 如果您有關於此體驗的意見反應,請隨時透過 Azure 入口網站延伸模組上的 [提供意見反應] 按鈕來提供。

必要條件

購買電話號碼

  1. Azure 入口網站中,瀏覽至您的 Azure 通訊服務資源。

    顯示通訊服務資源主頁面的螢幕擷取畫面。

  2. 在通訊服務資源概觀中,選取左側功能表中的 [電話號碼] 選項。

    顯示通訊服務資源電話號碼頁面的螢幕快照。

  3. 選取頁面左上方的 [取得],以購買您的電話號碼。 選取此選項會啟動我們的購物精靈:

    顯示電話號碼購物車搜尋精靈的螢幕快照。

  4. 選擇您想要佈建電話號碼的 [國家/區域]。 國家/地區可用性是以 Azure 訂用帳戶的計費位置為基礎。 如需每個國家/地區可用號碼的詳細資訊,請參閱 這裡。 接下來,您將選擇號碼類型。 您可以從兩種電話號碼類型中選取:本地免付費電話

  5. 選取 [搜尋] 以提取符合所選準則的號碼。 您有各種篩選條件可搜尋符合您需求的號碼,包括:

    • 使用案例:這是針對您是否使用此號碼從應用程式 (A2P) 或人類代理程式 (P2P) 呼叫。
    • 通話:這是用來判斷您所要撥打電話號碼的通話功能:撥打電話和/或接聽電話。
    • 簡訊:這是用來判斷您所要撥打電話號碼的簡訊功能:傳送和/或接聽簡訊。
    • 自訂:您也可以新增自訂篩選,以取得電話號碼中的特定前置詞或數字集。

    顯示具有可用電話號碼的電話號碼購買頁面的螢幕快照。

  6. 一旦您找到您選擇的電話號碼或號碼後,請選取 [新增至購物車],以保存 [電話語音購物車] 中的號碼。 在自動清除您的購物車之前,這些號碼會保留 16 分鐘。

    顯示購物車中具有兩個電話號碼的電話號碼螢幕快照。

    注意

    顯示的價格是每月週期性費用,其中涵蓋您租用所選電話號碼的費用。 此檢視中未包含隨用隨付的費用,此費用會在您撥打或接聽來電時產生。 您可以在這裡取得價格清單。 這些費用取決於號碼類型和撥打電話的目的地。 例如,從西雅圖地區號碼撥打到紐約中的地區號碼,與從相同號碼撥打到英國行動電話號碼的每分鐘價格可能會有所不同。

  7. 選取 [下一步] 以檢閱您的購買。 若要完成購買,請選取 [立即購買]

    顯示檢閱和購買2個電話號碼的螢幕快照。

  8. 您可以在 [電話號碼] 頁面上找到已購買的號碼。 可能需要幾分鐘的時間才能佈建號碼。

    [電話號碼] 頁面的螢幕快照,其中新購買的電話號碼以紅色框線框線。

更新電話號碼功能

在 [電話號碼] 頁面上,您可以選取要設定的電話號碼。

顯示更新功能頁面的螢幕快照。

從可用的選項中選取功能,然後選取 [儲存] 以套用您的選取項目。

釋出電話號碼

在 [號碼] 頁面上,您可以釋出電話號碼。

顯示發行電話號碼頁面的螢幕快照。

選取您要釋出的電話號碼,然後選取 [發行] 按鈕。

必要條件

設定

新增延伸模組

使用 az extension 命令新增適用於 Azure CLI 的 Azure 通訊服務延伸模組。

az extension add --name communication

登入 Azure CLI

您必須登入 Azure CLI。 您可以從終端機登入執行 az login 命令,並提供您的認證。

Operations

列出已購買的電話號碼

執行下列命令,以擷取所有已購買的電話號碼。

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

取代程式碼中的下列內容:

  • <yourConnectionString> 取代為實際的連接字串。

取得已購買的電話號碼詳細資料

執行下列命令,以取得已購買電話號碼的電話號碼詳細資料。

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

取代程式碼中的下列內容:

  • <purchasedPhoneNumber> 取代為與您通訊服務資源相關聯的電話號碼。
  • <yourConnectionString> 取代為實際的連接字串。

注意

Azure CLI 選項僅提供列出及顯示電話號碼的功能。 它不支援其他作業,例如搜尋、購買、編輯或發行電話號碼。

(選擇性) 使用 Azure CLI 電話號碼作業而不傳入連接字串

您可以將 AZURE_COMMUNICATION_CONNECTION_STRING 環境變數設定為使用 Azure CLI 電話號碼作業,而不需要使用 --connection_string 傳入連接字串。 若要設定環境變數,請開啟主控台視窗,然後從下列索引標籤選取您的作業系統。 將 <yourConnectionString> 用實際的連接字串取代。

開啟主控台視窗並輸入下列命令:

setx AZURE_COMMUNICATION_CONNECTION_STRING "<yourConnectionString>"

新增環境變數之後,您可能需要重新啟動任何需要讀取環境變數的執行中程式,包括主控台視窗。 例如,如果您使用 Visual Studio 作為編輯器,請在執行範例前重新啟動 Visual Studio。

注意

GitHub 上找到此快速入門的最終程式碼

必要條件

先決條件檢查

  • 在終端機或命令視窗中執行 dotnet 命令,確認已安裝 .NET 用戶端程式庫。

設定

建立新的 C# 應用程式

在主控台視窗中 (例如 cmd、PowerShell 或 Bash),使用 dotnet new 命令建立名為 PhoneNumbersQuickstart 的新主控台應用程式。 此命令會建立簡單的 "Hello World" C# 專案,內含單一原始程式檔:Program.cs

dotnet new console -o PhoneNumbersQuickstart

將您的目錄變更為新建立的應用程式資料夾,然後使用 dotnet build 命令來編譯您的應用程式。

cd PhoneNumbersQuickstart
dotnet build

Install the package

若您仍在應用程式目錄中,請使用 dotnet add package 命令安裝適用於 .NET 套件的 Azure Communication PhoneNumbers 用戶端程式庫。

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

using 指示詞新增至 Program.cs 的頂端,以包含命名空間。

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

Main 函式簽章更新為非同步。

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

驗證用戶端

電話號碼用戶端可以使用在 Azure 入口網站中從 Azure 通訊服務資源取得的連接字串進行驗證。

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

您也可以選擇使用 Microsoft Entra 驗證來驗證電話號碼用戶端。 使用此選項時,必須設定 AZURE_CLIENT_SECRETAZURE_CLIENT_IDAZURE_TENANT_ID 環境變數以進行驗證。

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

管理電話號碼

搜尋可用的電話號碼

若要購買電話號碼,您必須先搜尋可用的電話號碼。 若要搜尋電話號碼,請提供區碼、指派類型、電話號碼功能電話號碼類型和數量。 請注意,針對免付費電話號碼類型,可選擇提供區碼。

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

購買電話號碼

搜尋電話號碼的結果為 PhoneNumberSearchResult。 這包含可傳遞至購買號碼 API 的 SearchId,以取得搜尋中的號碼。 請注意,撥打購買電話號碼 API 會向您的 Azure 帳戶收費。

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

取得電話號碼

購買號碼之後,您可以從用戶端加以擷取。

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

您也可以擷取所有已購買的電話號碼。

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

更新電話號碼功能

您可以透過購買的號碼來更新功能。

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

釋出電話號碼

您可以釋出購買的電話號碼。

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

執行程式碼

使用 dotnet run 命令從您的應用程式目錄執行應用程式。

dotnet run

範例程式碼

您可以從 GitHub 下載範例應用程式

注意

GitHub 上找到此快速入門的最終程式碼

必要條件

設定

建立新的 Java 應用程式

開啟您的終端機或命令視窗。 瀏覽至您要在其中建立 Java 應用程式的目錄。 執行下列命令,以從 maven-archetype-quickstart 範本產生 Java 專案。

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

您會發現 'generate' 工作建立了與 artifactId 同名的目錄。 在此目錄下,src/main/java 目錄包含專案原始程式碼,src/test/java directory 目錄包含測試來源,而 pom.xml 檔案是專案的「專案物件模型」(簡稱 POM)。

Install the package

在文字編輯器中開啟 pom.xml 檔案。 將下列相依性元素新增至相依性群組。

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

設定應用程式架構

從專案目錄:

  1. 瀏覽至 /src/main/java/com/communication/quickstart 目錄
  2. 在編輯器中開啟 App.java 檔案
  3. 取代 System.out.println("Hello world!"); 陳述式
  4. 新增 import 指示詞

使用下列程式碼開始作業:

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

驗證電話號碼用戶端

已啟用 PhoneNumberClientBuilder,可使用 Microsoft Entra 驗證

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

或者,您也可以使用來自通訊資源的端點和存取金鑰進行驗證。

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

管理電話號碼

搜尋可用的電話號碼

若要購買電話號碼,您必須先搜尋可用的電話號碼。 若要搜尋電話號碼,請提供區碼、指派類型、電話號碼功能電話號碼類型和數量。 請注意,針對免付費電話號碼類型,可選擇提供區碼。

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

購買電話號碼

搜尋電話號碼的結果是 PhoneNumberSearchResult。 這包含可傳遞至購買號碼 API 的 searchId,以取得搜尋中的號碼。 請注意,撥打購買電話號碼 API 會向您的 Azure 帳戶收費。

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

取得電話號碼

購買號碼之後,您可以從用戶端加以擷取。

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

您也可以擷取所有已購買的電話號碼。

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

更新電話號碼功能

您可以透過購買的號碼來更新功能。

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
}

釋出電話號碼

您可以釋出購買的電話號碼。

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

執行程式碼

瀏覽至包含 pom.xml 檔案的目錄,然後使用下列 mvn 命令來編譯專案。

mvn compile

接著,建置封裝。

mvn package

執行下列 mvn 命令以執行應用程式。

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

應用程式的輸出會描述已完成的每個動作:

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

注意

GitHub 上找到此快速入門的最終程式碼

必要條件

設定

建立新的 Python 應用程式

開啟您的終端機或命令視窗,並為您的應用程式建立新的目錄,然後瀏覽至該目錄。

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

使用文字編輯器在專案根目錄中建立名為 phone_numbers_sample.py 的檔案,並新增下列程式碼。 我們將在下列各節中新增其餘快速入門程式碼。

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)

Install the package

若您仍在應用程式目錄中,請使用 pip install 命令安裝適用於 Python 套件的 Azure 通訊服務系統管理用戶端程式庫。

pip install azure-communication-phonenumbers

驗證電話號碼用戶端

已啟用 PhoneNumbersClient,可使用 Microsoft Entra 驗證。 使用 DefaultAzureCredential 物件是開始使用 Microsoft Entra ID 的最輕鬆方式,而且您可以使用 pip install 命令加以安裝。

pip install azure-identity

建立 DefaultAzureCredential 物件需要您已將 AZURE_CLIENT_IDAZURE_CLIENT_SECRETAZURE_TENANT_ID 設定為環境變數,其對應值來自您已註冊的 Microsoft Entra 應用程式。

如需如何取得這些環境變數的快速入門,您可以遵循從 CLI 快速入門設定服務主體

安裝 azure-identity 程式庫之後,我們可以繼續驗證用戶端。

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)

或者,您也可以使用來自通訊資源的端點和存取金鑰進行驗證。

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)

函式

一旦驗證 PhoneNumbersClient 之後,我們即可開始處理其可執行的不同函式。

搜尋可用的電話號碼

若要購買電話號碼,您必須先搜尋任何可用的電話號碼。 若要搜尋電話號碼,請提供區碼、指派類型、電話號碼功能電話號碼類型和數量 (預設數量設定為 1)。 請注意,針對免付費電話號碼類型,可選擇提供區碼。

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)

購買電話號碼

搜尋電話號碼的結果為 PhoneNumberSearchResult。 這包含可傳遞至購買號碼 API 的 searchId,以取得搜尋中的號碼。 請注意,撥打購買電話號碼 API 會向您的 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)

取得購買的電話號碼

購買號碼之後,您可以從用戶端加以擷取。

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)

您也可以擷取所有已購買的電話號碼。

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)

更新電話號碼功能

您可以更新先前所購買電話號碼的功能。

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

釋出電話號碼

您可以釋出購買的電話號碼。

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

執行程式碼

從主控台提示中,瀏覽至包含 phone_numbers_sample.py file 檔案的目錄,然後執行下列 Python 命令以執行應用程式。

python phone_numbers_sample.py

注意

GitHub 上找到此快速入門的最終程式碼

必要條件

先決條件檢查

  • 在終端機或命令視窗中執行 node --version,確認已安裝 Node.js。

設定

建立新的 Node.js 應用程式

首先,開啟您的終端機或命令視窗,為您的應用程式建立新的目錄,並瀏覽至該目錄。

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

執行 npm init -y 以使用預設設定建立 package.json 檔案。

npm init -y

在您剛才建立的目錄根中,建立名為 phone-numbers-quickstart.js 的檔案。 將下列程式碼片段新增至其中:

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

main();

Install the package

使用 npm install 命令來安裝適用於 JavaScript 的 Azure 通訊服務電話號碼用戶端程式庫。

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

--save 選項會在您的 package.json 檔案中,將程式庫新增為相依性。

驗證用戶端

從用戶端程式庫匯入 PhoneNumbersClient,並使用您的連接字串將其具現化。 以下程式碼會從名為 COMMUNICATION_SERVICES_CONNECTION_STRING 的環境變數中,擷取資源的連接字串。 了解如何管理您資源的連接字串

將下列程式碼新增至 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);

管理電話號碼

搜尋可用的電話號碼

若要購買電話號碼,您必須先搜尋可用的電話號碼。 若要搜尋電話號碼,請提供區碼、指派類型、電話號碼功能電話號碼類型和數量。 請注意,針對免付費電話號碼類型,可選擇提供區碼。

將下列程式碼片段新增至 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}`);

購買門號 (電話號碼)

搜尋電話號碼的結果為 PhoneNumberSearchResult。 這包含可傳遞至購買號碼 API 的 searchId,以取得搜尋中的號碼。 請注意,撥打購買電話號碼 API 會向您的 Azure 帳戶收費。

將下列程式碼片段新增至 main 函式:

/**
 * Purchase Phone Number
 */

const purchasePoller = await phoneNumbersClient.beginPurchasePhoneNumbers(searchId);

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

更新電話號碼功能

現在購買了電話號碼之後,請新增下列程式碼以更新其功能:

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

取得購買的電話號碼

購買號碼之後,您可以從用戶端加以擷取。 將下列程式碼新增至您的 main 函式,以取得您剛才購買的電話號碼:

/**
 * Get Purchased Phone Number
 */

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

您也可以擷取所有已購買的電話號碼。

const purchasedPhoneNumbers = await phoneNumbersClient.listPurchasedPhoneNumbers();

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

釋出電話號碼

您現在可以釋出已購買的電話號碼。 將下列程式碼片段新增至您的 main 函式:

/**
 * Release Purchased Phone Number
 */

const releasePoller = await phoneNumbersClient.beginReleasePhoneNumber(phoneNumber);

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

執行程式碼

使用 node 命令來執行您新增至 phone-numbers-quickstart.js 檔案的程式碼。

node phone-numbers-quickstart.js

疑難排解

常見問題:

  • 當電話號碼發行時,電話號碼會顯示在 ACS 資源 Azure 入口網站 直到計費週期結束為止。 在計費週期結束之前,也無法重新購買。

  • 刪除通訊服務資源時,與該資源相關聯的電話號碼將會同時自動釋出。

下一步

在此快速入門中,您已了解如何:

  • 購買電話號碼
  • 管理您的電話號碼
  • 釋出電話號碼
  • 提交免付費電話驗證應用程式 (查看是否需要)