Teams の相互運用性: 通話

重要

この記事で説明されている機能は、現在パブリック プレビュー段階にあります。 このプレビュー バージョンはサービス レベル アグリーメントなしで提供されており、運用環境のワークロードに使用することは推奨されません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳しくは、Microsoft Azure プレビューの追加使用条件に関するページをご覧ください。

このプレビューでは、Azure Communication Services の SDK を使って、Bring Your Own Identity (BYOI) のユーザーが Teams ユーザーと一対一の通話を開始できるアプリケーションを構築できます。 これらのユーザーにはStandard Azure Communication Services の価格 が適用されますが、相互運用性機能に追加料金は発生しません。 Azure Communication Services を使用して構築された、Teams ユーザーまたは Teams voice アプリケーションとの接続と通信を行うカスタム アプリケーションは、エンド ユーザーやボットから使用できます。また、アプリケーションの開発者が表示名で明示的に指示しない限り、Teams アプリケーションで Teams ユーザーから見える体裁にも違いはありません。

Communication Services ユーザーと Teams テナント間の通話を有効にするには、フォームを使ってテナントを許可し、テナントと Communication Services リソース間の接続を有効にします。

Teams テナントで相互運用性を有効にする

Teams 管理者ロールを持つ Microsoft Entra ユーザーは、MicrosoftTeams モジュールを使って PowerShell コマンドレットを実行し、テナント内の Communication Services リソースを有効にすることができます。

1.Microsoft Teams モジュールを準備する

まず、PowerShell を開き、次のコマンドを使って Teams モジュールの存在を検証します。

Get-module *teams* 

MicrosoftTeams モジュールが表示されない場合は、最初にインストールします。 モジュールをインストールするには、管理者として PowerShell を実行する必要があります。 次に、次のコマンドを実行します。

	Install-Module -Name MicrosoftTeams

インストールされるモジュールが表示されるので、Y または A で応答して確認します。 モジュールがインストールされていても古くなっている場合は、次のコマンドを実行してモジュールを更新できます。

	Update-Module MicrosoftTeams

2.Microsoft Teams モジュールに接続する

モジュールがインストールされ準備ができたら、次のコマンドを使って MicrosftTeams モジュールに接続できます。 ログインするための対話型ウィンドウが表示されます。 使用するユーザー アカウントには、Teams 管理者のアクセス許可が必要です。 それ以外の場合は、次の手順で access denied 応答が返される可能性があります。

Connect-MicrosoftTeams

3.テナント構成を有効にする

Communication Services リソースとの相互運用性は、テナント構成と割り当てられたポリシーによって制御されます。 Teams テナントには 1 つのテナント構成があり、Teams ユーザーにはグローバル ポリシーまたはカスタム ポリシーが割り当てられます。 詳細については、「Teams でポリシーを割り当てる」を参照してください。

ログインに成功したら、コマンドレット Set-CsTeamsAcsFederationConfiguration を実行して、テナントで Communication Services リソースを有効にすることができます。 テキスト IMMUTABLE_RESOURCE_ID を、コミュニケーション リソース内の不変リソース ID に置き換えます。 この情報を取得する方法の詳細については、こちらを参照してください。

$allowlist = @('IMMUTABLE_RESOURCE_ID')
Set-CsTeamsAcsFederationConfiguration -EnableAcsUsers $True -AllowedAcsResources $allowlist

4.テナント ポリシーを有効にする

各 Teams ユーザーには、Communication Services ユーザーがこの Teams ユーザーを呼び出すことができるかどうかを決定する External Access Policy が割り当てられます。 コマンドレット Set-CsExternalAccessPolicy を使って、Teams ユーザーに割り当てられたポリシーで EnableAcsFederationAccess$true に設定されていることを確認します

Set-CsExternalAccessPolicy -Identity Global -EnableAcsFederationAccess $true

Teams ユーザー ID を取得する

Teams ユーザーまたは Teams Voice アプリケーションとの通話を始めるには、ターゲットの識別子が必要です。 ID を取得するには、次のオプションがあります。

通話

Calling SDK を使用すると、Communication Services ユーザーまたはエンドポイントは、Microsoft Entra のオブジェクト ID で識別された Teams ユーザーと 1 対 1 の通話を開始できます。 他の Communication Services ユーザーを呼び出して、Teams ユーザーを呼び出す既存のアプリケーションを簡単に変更できます。

通話を管理する - Azure Communication Services 攻略ガイド | Microsoft Docs

communicationUserId を使用して別の Communication Services エンドポイントを呼び出します。

const acsCallee = { communicationUserId: '<Azure Communication Services User ID>' }
const call = callAgent.startCall([acsCallee]);

microsoftTeamsUserId を使用して Teams ユーザーを呼び出します。

const teamsCallee = { microsoftTeamsUserId: '<Teams User AAD Object ID>' }
const call = callAgent.startCall([teamsCallee]);

音声およびビデオによる通話イベント

Communication Services の音声およびビデオ通話イベント は、Communication Services のユーザーと Teams ユーザーとの間の通話に対して発生します。

制限事項と既知の問題

  • この機能は現在、.NET Calling SDK では使用できません。
  • Teams ユーザーは "TeamsOnly" モードであることが必要です。 Skype for Business ユーザーが Communication Services ユーザーからの一対一通話を受けることはできません。
  • グループ通話へのエスカレーションはサポートされません。
  • Communication Services の通話レコーディングが、一対一通話では利用できません。
  • 高度な通話ルーティング機能 (通話転送、グループ通話ピックアップ、同時呼び出し、ボイス メールなど) はサポートされません。
  • Teams ユーザーが Communication Services ユーザーを転送先として設定することはできません。
  • Teams クライアントの多くの機能は、Communication Services ユーザーとの 1 対 1 の通話中に予期したとおりに動作しません。
  • サードパーティ製の Teams 用デバイスSkype IP 電話 はサポートされていません。

プライバシー

Azure Communication Services と Microsoft Teams の間の相互運用性により、アプリケーションとユーザーは Teams の通話と会議に参加できます。 アプリケーションの開発者は、Teams の呼び出しまたは会議で記録または文字起こしが有効になったら、そのことをユーザーに通知する責任があります。

Microsoft は、Azure Communication Services API 経由で、記録または文字起こしが開始されたことを 示します。 この事実を、アプリケーションのユーザー インターフェイス内でユーザーにリアルタイムで伝える必要があります。 この義務に従わないことが原因で生じたすべてのコストと損害について、開発者は Microsoft に補償する必要があります。