.NET 用 Azure Communication Phone Numbers クライアント ライブラリ - バージョン 1.1.0

Azure Communication の電話番号は、Azure Communication Servicesの電話番号を管理しています。

ソースコード | 製品ドキュメント | サンプル

作業の開始

パッケージをインストールする

NuGet を使用して .NET 用の Azure Communication Phone Numbers クライアント ライブラリをインストールします。

dotnet add package Azure.Communication.PhoneNumbers

前提条件

このパッケージを使用するには、 Azure サブスクリプションCommunication Service リソース が必要です。

新しい Communication Service を作成するには、Azure PortalAzure PowerShell、または .NET 管理クライアント ライブラリを使用できます。

主要な概念

この SDK には、管理と数値を簡単に管理 direct offer するための機能が用意されています direct routing

番号には direct offer 、地域と無料の 2 種類があります。 地理的な電話プランは、電話番号のエリア コードが地理的な場所のエリア コードに関連付けられている場所に関連付けられている電話プランです。 Toll-Free電話プランは、電話プランに関連付けられていない場所です。 たとえば、米国では、フリーダイヤル番号には 800 や 888 などの市区地区コードが付属しています。 これらは、 を使用して管理されます。 PhoneNumbersClient

この direct routing 機能により、既存のテレフォニー インフラストラクチャを ACS に接続できます。 構成は、 を SipRoutingClient使用して管理されます。これにより、テレフォニー サブネットの呼び出しを適切に処理するために、SIP トランクと音声ルーティング規則を設定する方法が提供されます。

クライアントを認証する

クライアントは、 Azure Portal の Azure Communication Resources から取得した接続文字列を使用して認証できます。

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

クライアントには、Azure Active Directory 認証を使用して認証するオプションもあります。 このトピックの詳細については、「 Azure Identity」を参照してください。

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

電話番号クライアント

電話番号の種類の概要

電話番号には、地理的な電話番号と無料電話番号の 2 種類があります。 地理的な電話プランは、電話番号のエリア コードが地理的な場所のエリア コードに関連付けられている場所に関連付けられている電話プランです。 Toll-Free電話プランは、電話プランに関連付けられていない場所です。 たとえば、米国では、フリーダイヤル番号には 800 や 888 などの市区地区コードが付属しています。

同じ国内のすべての地理的な電話プランは、地理的な電話番号の種類を持つ電話プラン グループにグループ化されます。 同じ国のすべてのToll-Free電話プランは、電話プラン グループにグループ化されます。

電話番号の検索、購入、およびリリース

電話番号は、エリア コード、電話番号の数量、アプリケーションの種類、電話番号の種類、機能を提供することで、検索作成 API を使用して検索できます。 指定された電話番号の数量は 10 分間予約され、この時間内に購入できます。 検索が購入されていない場合、電話番号は 10 分後に他のユーザーが利用できるようになります。 検索が購入されると、Azure リソースの電話番号が取得されます。

電話番号は、リリース API を使用して解放することもできます。

SIP ルーティング クライアント

ダイレクト ルーティング機能を使用すると、顧客が提供するテレフォニー インフラストラクチャを Azure Communication Resources に接続できます。 ルーティング構成を適切に設定するには、お客様は、呼び出しの SIP トランク構成と SIP ルーティング規則を指定する必要があります。 SIP ルーティング クライアントは、この構成を設定するために必要なインターフェイスを提供します。

呼び出しが行われると、システムは宛先番号と定義されたルートの正規表現番号パターンとの照合を試みます。 番号に一致する最初のルートが選択されます。 正規表現一致の順序は、構成でのルートの順序と同じであるため、ルートの順序が重要です。 ルートが一致すると、コールはルートのトランク リストの最初のトランクにルーティングされます。 トランクが使用できない場合は、リスト内の次のトランクが選択されます。

スレッド セーフ

すべてのクライアント インスタンス メソッドがスレッド セーフであり、相互に独立していることを保証します (ガイドライン)。 これにより、スレッド間であっても、クライアント インスタンスの再利用に関する推奨事項が常に安全になります。

その他の概念

クライアント オプション | 応答 | へのアクセス実行時間の長い操作 | エラーの | 処理診断 | あざける | クライアントの有効期間

PhoneNumbersClient

PhoneNumbersClient の作成

PhoneNumbersClientしいを作成するには、リソースを作成した後に Azure Portal から取得できるAzure Communication Services リソースへの接続文字列が必要です。

環境変数、構成設定 connectionString 、またはアプリケーションに対して動作する任意の方法に基づいて設定できます。

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

電話番号を検索する

電話番号は、購入する前に検索する必要があります。 検索は、オブジェクトを返す関数によって StartSearchAvailablePhoneNumbers 開始できる実行時間の SearchAvailablePhoneNumbersOperation 長い操作です。 SearchAvailablePhoneNumbersOperationを使用すると、操作の状態を更新したり、完了のためにチェックしたりできます。

var capabilities = new PhoneNumberCapabilities(calling: PhoneNumberCapabilityType.None, sms: PhoneNumberCapabilityType.Outbound);

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

電話番号を購入する

電話番号は、検索を購入することで取得できます。

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

購入した電話番号を一覧表示する

リソースで購入したすべての電話番号を一覧表示できます。

var purchasedPhoneNumbers = client.GetPurchasedPhoneNumbersAsync();

await foreach (var phoneNumber in purchasedPhoneNumbers)
{
    Console.WriteLine($"Phone number: {phoneNumber.PhoneNumber}, monthly cost: {phoneNumber.Cost}");
}

電話番号を解放する

電話番号が不要になった場合は、それを解放できます。

var purchasedPhoneNumber = "<purchased_phone_number>";
var releaseOperation = await client.StartReleasePhoneNumberAsync(purchasedPhoneNumber);
await releaseOperation.WaitForCompletionResponseAsync();
await WaitForCompletionResponseAsync(releaseOperation);

SipRoutingClient

SIP トランクとルートを取得する

現在構成されているトランクまたはルートの一覧を取得します。

var trunksResponse = await client.GetTrunksAsync();
var routesResponse = await client.GetRoutesAsync();

SIP トランクとルートを置き換える

現在構成されているトランクまたはルートの一覧を置き換えます。

// The service will not allow trunks that are used in any of the routes to be deleted, therefore first set the routes as empty list, and then update the routes.
var newTrunks = "<new_trunks_list>";
var newRoutes = "<new_routes_list>";
await client.SetRoutesAsync(new List<SipTrunkRoute>());
await client.SetTrunksAsync(newTrunks);
await client.SetRoutesAsync(newRoutes);

シングル トランクの管理

SIP トランクは、 を使用して SipRoutingClient 1 つのトランクを取得、設定、または削除することで個別に管理できます。

単一トランクを取得する

// Get trunk object, based on it's FQDN.
var fqdnToRetrieve = "<fqdn>";
var trunkResponse = await client.GetTrunkAsync(fqdnToRetrieve);

単一トランクを設定する

// Set function will either modify existing item or add new item to the collection.
// The trunk is matched based on it's FQDN.
var trunkToSet = "<trunk_to_set>";
await client.SetTrunkAsync(trunkToSet);

1 つのトランクを削除する

// Deletes trunk with supplied FQDN.
var fqdnToDelete = "<fqdn>";
await client.DeleteTrunkAsync(fqdnToDelete);

トラブルシューティング

次のステップ

電話番号の管理の詳細を参照してください

ダイレクト ルーティングの詳細を確認する

共同作成

このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。 詳細については、「 cla.microsoft.com」を参照してください。

このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。