次の方法で共有


Azure Communication Services でのトラブルシューティング

この記事では、Azure Communication Services ソリューションで発生する可能性がある問題のトラブルシューティングについて説明します。 SMS のトラブルシューティングを行う場合は、Azure Event Grid で配信レポートを有効にすることで、SMS の配信の詳細を取得できます。

Azure Communication Services の正常性状態を確認する

Azure Communication Services ソリューションの正常性は、Azure Service Health ポータルで確認できます。 Azure Communication Services ソリューションで問題が発生した場合は、最初に Service Health ポータルを確認してください。 そうすれば、サポートへの通話またはトラブルシューティングに時間を費やす前に、解決中の既知の問題があるかどうかを判断できます。

Azure Service Health ポータルでは、使用している Azure サービスとリージョンの正常性についてのカスタマイズされたビューが提供されます。 Service Health ポータルは、停止、計画メンテナンス アクティビティ、その他の正常性アドバイザリを探すのに最適な場所です。 サインインすると、認証された Service Health エクスペリエンスによって、現在使用しているサービスとリソースが認識されます。

Service Health を使用する最善の方法は、Service Health アラートを設定して好みの通信チャネルを介して通知することです。 サービスの問題、計画メンテナンス、または Azure のサービスとリージョンに影響を与えるその他の変更に関する通知を受け取ります。

Service Health ポータルにサインインできない場合は、公開されている Azure の状態ページを使用して既知の問題を確認できます。 Azure の状態の概要では、Azure の状態から Azure サービスとリージョンのグローバル ビューを提供します。

状態ページは、広範囲にわたるインシデントを参照するのに適しています。 現在の Azure ユーザーは、認証された Azure Service Health ポータルを表示して、Azure インシデントとメンテナンスに関する情報を常に把握することをお勧めします。 認証された Azure Service Health エクスペリエンスでは、現在使用しているサービスとリソースが認識されています。

サービス レベル アグリーメント (SLA) で使用されるメトリックに影響する Azure Communication Services が停止すると、サービスにより Azure Service Health ポータルと Azure の状態に通知が生成されます。 Azure Communication Services の SLA の詳細については、サービス レベル アグリーメントを参照してください。

通常、停止は、Azure Communication Services API が一定期間にわたって受信した API 呼び出しの 3% を超える間、再取得不可能なエラーを返した場合に発生します。

ディザスター リカバリー計画と高可用性戦略を実装する方法について学習することをお勧めします。 詳細については、Azure アプリケーションのディザスター リカバリーと高可用性に関するページを参照してください。

ヘルプを取得

開発者の皆さんは、ご質問の送信、機能のご提案、および問題のレポートに関してぜひご協力ください。 詳細については、専用のサポートとヘルプ オプションのページを参照してください。

特定の問題のトラブルシューティングに役立てるため、次の情報が 1 つ以上必要な場合があります。

  • MS-CV ID: 通話とメッセージのトラブルシューティングを行います。
  • 通話 ID: Azure Communication Services の通話を識別します。
  • SMS メッセージ ID: SMS メッセージを識別します。
  • ショート コード プログラムの簡易 ID: ショート コード プログラムの簡単なアプリケーションを識別します。
  • 無料電話番号検証キャンペーン要約 ID: 無料電話番号検証キャンペーンの簡易アプリケーションを識別するために使用されます。
  • メール ID: メール送信要求を識別します。
  • 関連付け ID: Call Automation を使用して作成された関連付け要求の識別に使われます。
  • 通話ログ: 通話とネットワークの問題のトラブルシューティングを行うために、詳細な情報を使用します。

調整と制限の詳細については、サービスの制限に関するページを参照してください。

MS-CV ID にアクセスする

SDK を初期化する際に、clientOptions オブジェクト インスタンスで診断を構成すると MS-CV ID にアクセスできます。 チャット、ID、VoIP 呼び出しなど、任意の Azure SDK の診断を構成できます。

クライアント オプションの例

次のコード スニペットは、診断の構成を示しています。 SDK の診断を有効にすると、構成済みのイベント リスナーに診断の詳細が出力されます。

// 1. Import Azure.Core.Diagnostics
using Azure.Core.Diagnostics;

// 2. Initialize an event source listener instance
using var listener = AzureEventSourceListener.CreateConsoleLogger();
Uri endpoint = new Uri("https://<RESOURCE-NAME>.communication.azure.net");
var (token, communicationUser) = await GetCommunicationUserAndToken();
CommunicationUserCredential communicationUserCredential = new CommunicationUserCredential(token);

// 3. Setup diagnostic settings
var clientOptions = new ChatClientOptions()
{
    Diagnostics =
    {
        LoggedHeaderNames = { "*" },
        LoggedQueryParameters = { "*" },
        IsLoggingContentEnabled = true,
    }
};

// 4. Initialize the ChatClient instance with the clientOptions
ChatClient chatClient = new ChatClient(endpoint, communicationUserCredential, clientOptions);
ChatThreadClient chatThreadClient = await chatClient.CreateChatThreadAsync("Thread Topic", new[] { new ChatThreadMember(communicationUser) });

Call Automation にアクセス ID を使用する

通話管理や記録の問題など、Call Automation SDK に関する問題をトラブルシューティングする場合は、失敗した通話または操作を特定するのに役立つ ID を収集する必要があります。 次の 2 つの ID のいずれかを指定できます。

  • API 応答のヘッダーから。 フィールド X-Ms-Skype-Chain-Id を見つけます。

    X-Ms-Skype-Chain-Id の応答ヘッダーを示すスクリーンショット。

  • アクションの実行後にアプリケーションが受け取るコールバック イベントから。 たとえば、関連付け ID を見つけるには、CallConnected または PlayFailed を使用します。

    関連付け ID を持つ切断された通話イベントを示すスクリーンショット .

これらの ID のいずれかに加えて、失敗したユース ケースと、失敗が発生したときのタイムスタンプに関する詳細を指定する必要があります。

クライアント通話 ID にアクセスする

音声通話またはビデオ通話のトラブルシューティングを行う際に、call ID の提供が必要になることがあります。 call オブジェクトの id プロパティを使用して、この値にアクセスします。

重要

call ID は一意であり、特定の通話を識別します。call ID は、その通話のすべての参加者に共通です。 call ID 初期値はローカル クライアントによって設定され、その後、ローカル クライアントが既に進行中の通話に接続した後に変更される可能性があります。 ローカル クライアントが最初に通話を開始した場合、作成した call ID は、サーバーとその他の通話参加者がその後通話で使用する call ID になります。

// `call` is an instance of a call created by `callAgent.startCall` or `callAgent.join` methods
console.log(call.id)

SMS メッセージ ID にアクセスする

SMS の問題については、応答オブジェクトからメッセージ ID を収集できます。

// Instantiate the SMS client
const smsClient = new SmsClient(connectionString);
async function main() {
  const result = await smsClient.send({
    from: "+18445792722",
    to: ["+1972xxxxxxx"],
    message: "Hello World 👋🏻 via Sms"
  }, {
    enableDeliveryReport: true // Optional parameter
  });
console.log(result); // your message ID is in the result
}

ショート コード プログラムの brief ID にアクセスする

プログラムの簡易 ID は、Azure portal[ショート コード] セクションにあります。

ショート コード プログラムの簡易 ID を示すスクリーンショット。


無料電話番号検証キャンペーンの簡易 ID にアクセスする

プログラムの簡易 ID は、Azure portal規制のドキュメントのセクションにあります。

無料電話番号検証キャンペーンの簡易 ID を示すスクリーンショット。


メール操作 ID にアクセスする

メールの送信状態またはメールの状態要求に関するトラブルシューティングを行うときに、オペレーション ID の提供が必要になる場合があります。 応答でこの値にアクセスできます。

var emailSendOperation = await emailClient.SendAsync(
    wait: WaitUntil.Completed,
    senderAddress: sender,
    recipientAddress: recipient,
    subject: subject,
    htmlContent: htmlContent);

/// Get the OperationId so that it can be used for tracking the message for troubleshooting
Console.WriteLine($"Email operation id = {emailSendOperation.Id}");

Calling SDK でサポート ファイルにアクセスする

Calling SDK では、ログ ファイルにアクセスするための便利なメソッドが提供されます。 これらのファイルは、Microsoft のサポート スペシャリストやエンジニアに役立ちます。 問題を検出したときに、これらのログを収集することをお勧めします。

呼び出しログを有効にしてアクセスする

通話ログを有効にしてアクセスする方法について説明します。

JavaScript

ログを制御するために、Calling SDK は @azure/logger ライブラリに内部的に依存します。

ログ出力レベルを構成するには、@azure/logger パッケージの setLogLevel メソッドを使用します。 ロガーを作成し、それを CallClient コンストラクターに渡します。

import { setLogLevel, createClientLogger, AzureLogger } from '@azure/logger';
setLogLevel('verbose');
let logger = createClientLogger('ACS');
const callClient = new CallClient({ logger });

AzureLogger を使用して、AzureLogger.log メソッドをオーバーライドして、Azure SDK からのログ出力をリダイレクトできます。

ブラウザー コンソール、ファイル、またはバッファーにログを記録できます。 独自のサービスに送信することもできます。 このメソッドはブラウザーのパフォーマンスに悪影響を与えるため、ログをネットワーク経由で独自サービスに送信する場合は、ログ行ごとに要求を送信しないでください。 代わりに、ログ行を蓄積し、バッチで送信します。

// Redirect log output
AzureLogger.log = (...args) => {
    // To console, file, buffer, REST API, etc...
    console.log(...args); 
};

ネイティブ SDK (Android/iOS)

Android、iOS、Windows の場合、Azure Communication Services Calling SDK によりログ ファイルへのアクセスが提供されます。

Calling ネイティブ SDK については、「ログ ファイルへのアクセスのチュートリアル」を参照してください

UI ライブラリ (Android、iOS)

Android または iOS 用の Azure Communication Services UI ライブラリをお使いの場合は、組み込みのサポート フォームを使用してユーザー フィードバックを募ることができます。

Calling UI サポート フォームのサポート機能の詳細については、サポート フォーム統合のチュートリアルを参照してください。 この記事では、必要なイベント ハンドラーを追加し、サポート情報を一元的に保存するための基本的なクライアント/サーバー実装を作成する方法について説明します。 この記事では、組織で使用するサポート サービスと統合する手順について説明します。

ACS 統合でエンド ツー エンドのサポート フローを構築する

Calling SDK と Calling UI SDK のどちらを使用するかに関係なく、顧客にサポートを提供することは、堅牢な統合における重要な要素です。

ユーザー サポートの提供」記事では、サポート フィードバック ループの各ポイントでの重要な考慮事項を取り上げ、詳細を学ぶ必要がある箇所を指摘します。


Microsoft Entra 情報を見つける

Microsoft Entra 情報を見つけるには、次の手順に従います。

ディレクトリ ID を取得する

ディレクトリ (テナント) ID を見つけるには、次の手順に従います。

  1. Azure portal にサインインします。

  2. サービス メニューで、[Microsoft Entra ID] を選択します。

  3. Microsoft Entra ID の [概要] ページで、ディレクトリ ID (テナント ID) をコピーし、アプリケーション コードに保存します。

    Microsoft Entra テナント ID をコピーして保存する方法を示すスクリーンショット。

アプリケーション ID を取得する

アプリケーション ID を見つけるには、次の手順に従います。

  1. Azure portal にサインインします。

  2. サービス メニューで、[Microsoft Entra ID] を選択します。

  3. Microsoft Entra ID の [アプリの登録] から、アプリケーションを選択します。

  4. アプリケーション (クライアント) ID をコピーし、アプリケーション コードに保存します。

    Microsoft Entra アプリケーション ID をコピーして保存する方法を示すスクリーンショット。

    ディレクトリ (テナント) ID は、アプリケーションの [概要] ページでも確認できます。

ユーザー ID を取得する

ユーザー ID を見つけるには、次の手順に従います。

  1. Azure portal にサインインします。

  2. サービス メニューで、[Microsoft Entra ID] を選択します。

  3. Microsoft Entra ID の [ユーザー] から、ユーザーを選択します。

  4. Microsoft Entra ユーザーの [プロファイル] ページで、オブジェクト ID をコピーし、アプリケーション コードに保存します。

    Microsoft Entra ユーザー ID をコピーして保存する方法を示すスクリーンショット。

不変リソース ID を取得する

場合によっては、Azure Communication Services リソースの不変リソース ID も指定する必要があります。 これを見つけるには、次の手順に従います。

  1. Azure portal にサインインします。

  2. Azure Communication Services リソースを開きます。

  3. サービス メニューで [概要] を選択し、JSON ビューに切り替えます。

    Azure Communication Services リソースの [概要] を JSON ビューに切り替える方法を示すスクリーンショット。

  4. [リソース JSON] ページの immutableResourceId 値をコピーし、サポート チームに渡してください。

    [リソース JSON] ページを示すスクリーンショット。

Teams ユーザーに対する Azure Communication Services サポートを使用するための Teams ライセンス適格性を検証する

Teams ユーザーに対する Azure Communication Services サポートを使用するための Teams ライセンス適格性を検証するには、2 つの方法があります。

Teams Web クライアント経由で検証する

Teams Web クライアント経由で Teams ライセンス適格性を検証するには、次の手順に従います。

  1. ブラウザーを開き、Teams Web クライアントに移動します。
  2. 有効な Teams ライセンスを持つ資格情報でサインインします。
  3. 認証が成功し、https://teams.microsoft.com/ ドメインの中にいる場合、お持ちの Teams ライセンスは適格です。 認証に失敗する場合や、https://teams.live.com/v2/ ドメインにリダイレクトされる場合、お持ちの Teams ライセンスは Teams ユーザーに対する Azure Communication Services サポートを使用する資格がありません。

Microsoft Graph API を使用して現在の Teams ライセンスを確認する

現在の Teams ライセンスは、licenseDetails を使用して確認できます。 Microsoft Graph API は、ユーザーに割り当てられたライセンスを返します。 Graph エクスプローラー ツールを使用して、ユーザーに割り当てられたライセンスを表示するには、次の手順に従います。

  1. ブラウザーを開き、Graph エクスプローラーに移動します。

  2. 資格情報を使用して Graph エクスプローラーにサインインします。

    Graph エクスプローラーにサインインする方法を示すスクリーンショット。

  3. クエリ ボックスに次の API を入力して、[クエリの実行] を選択します。

    https://graph.microsoft.com/v1.0/me/licenseDetails
    

    Graph エクスプローラーで API を入力する方法を示すスクリーンショット。

    または、次の API を使用してユーザー ID を指定して、特定のユーザーに対してクエリをすることもできます。

    https://graph.microsoft.com/v1.0/users/{id}/licenseDetails
    
  4. [Response preview]\(応答のプレビュー\) ペインに出力が表示されます。

    ここに示されている応答オブジェクトは、読みやすくするために短縮されている可能性があります。

    {
        "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('071cc716-8147-4397-a5ba-b2105951cc0b')/assignedLicenses",
        "value": [
            {
                "skuId": "b05e124f-c7cc-45a0-a6aa-8cf78c946968",
                "servicePlans":[
                    {
                        "servicePlanId":"57ff2da0-773e-42df-b2af-ffb7a2317929",
                        "servicePlanName":"TEAMS1",
                        "provisioningStatus":"Success",
                        "appliesTo":"User"
                    }
                ]
            }
        ]
    }
    
  5. servicePlanName プロパティに、[対象となる Teams ライセンス] 表のいずれかの値があるライセンスの詳細を見つけます。