この記事では、Azure Communication Services を使用して Microsoft Teams 回線共有機能を実装する方法について説明します。 回線共有機能を使用すると、ユーザーが、通話の発信や処理を代わりに行う代理人を選択できます。 この機能は、ユーザーに管理アシスタントがいて、そのアシスタントがユーザーの通話を定期的に処理する場合に便利です。
回線共有機能のコンテキストでは、マネージャーは、通話の発信や受信を代理人が代わりに行うことを承認する Teams ユーザーです。 代理人は、デリゲータに代わって通話を発信または受信できる Microsoft 365 ユーザーです。 詳細については、「線の 外観を共有する」を参照してください。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 「アカウントの無料作成」をご覧ください。
- デプロイ済みの Communication Services リソース。 「Communication Services リソースを作成する」を参照してください。
- 通話クライアントを有効にするためのユーザー アクセス トークン。 詳細については、アクセス トークンの作成と管理に関する記事を参照してください。
- デリゲータと代理人のライセンス要件。 「Teams Phone ライセンス」を参照してください。
- 委任と回線共有機能を有効にします。 「 委任を有効にする」を参照してください。
- Microsoft Teams クライアントまたは Teams PowerShell を使用して代理人を割り当てます。
- Azure Communication Services での Team Shared Line Appearance の詳細について説明します。
- 省略可能: クイックスタートを完了して、Microsoft Teams ユーザーに音声通話を追加します。 「クイック スタート: Microsoft Teams ユーザーに音声通話を追加する」を参照してください。
サポート
SDK
次の表は、個々の Azure Communication Services SDK での共有回線の外観機能のサポートを示しています。
| サポートの状態 | Web | ウェブユーザーインターフェース | iOS | iOS ユーザーインターフェース | Android | Androidのユーザーインターフェース | ウィンドウズ |
|---|---|---|---|---|---|---|---|
| サポートの有無 | ✔️ |
注
この API 機能は、Azure Communication Services Calling Web SDK (1.35.1 以降) で使用できます。
SDK のインストール
npm install コマンドを使用して、JavaScript 用の Azure Communication Services 通話と共通の各 SDK をインストールします。
npm install @azure/communication-common --save
npm install @azure/communication-calling --save
必要なオブジェクトを初期化する
CallClient インスタンスを作成して、通話スタックを開始します。
AzureLogger インスタンスと setLogLevel メソッドを使用して、通話 SDK のログ記録を構成できます。 メソッド deviceManager を使用して、オペレーティング システムの getDeviceManager にアクセスできます。
次に、メソッド createTeamsCallAgent を使用して、Teams ユーザーの着信と発信の通話を管理する TeamsCallAgent インスタンスを非同期的に作成します。 このメソッドは、CommunicationTokenCredentialを表す引数として を取ります。
const { CallClient } = require('@azure/communication-calling');
const { AzureCommunicationTokenCredential} = require('@azure/communication-common');
const { AzureLogger, setLogLevel } = require("@azure/logger");
// Set the logger's log level
setLogLevel('verbose');
// Redirect log output to wherever desired. To console, file, buffer, REST API, etc...
AzureLogger.log = (...args) => {
console.log(...args); // Redirect log output to console
};
const userToken = '<USER_TOKEN>';
callClient = new CallClient();
const tokenCredential = new AzureCommunicationTokenCredential(userToken);
const teamsCallAgent = await callClient.createTeamsCallAgent(tokenCredential);
const deviceManager = await callClient.getDeviceManager();
Microsoft Teams ユーザーの代わりに電話をかける
委任者の代わりに呼び出しを行う前に、通話を発信する代理人が、Microsoft Teamsのmake callsを通じてアクセス許可を持っていることを確認します。
Microsoft Teams ユーザーの代わりに電話をかけるには、通話開始時に OnBehalfOfOptions を指定します。
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx をデリゲータの userId に、yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy を呼び出し先の userId に置き換えます。
const onBehalfOfOptions = { userId: { microsoftTeamsUserId: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" } }
const teamsCallOptions = { onBehalfOfOptions: onBehalfOfOptions };
const call = teamsCallAgent.startCall([{ microsoftTeamsUserId: "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy" }], teamsCallOptions);
Microsoft Teams参加者の代わりに、公共交換電話網 (PSTN) ユーザーに通話を発信するには、通話参加者としてPhoneNumberIdentifierを使用します。
const call = teamsCallAgent.startCall([{ phoneNumber: "+1xxxxxxxxxx" }], teamsCallOptions);
Microsoft Teams ユーザーの代わりに通話を受信する
委任者の代わりに呼び出しを受信するには:
- Microsoft Teamsの委任者の通話設定で受信通話の設定を有効にするために、委任のアクセス許可を更新します。
- Microsoft Teamsの委任呼び出し設定を使用して、代理人の同時呼び出しを設定します。