Teams Phoneの通話キューのエージェントにチームのチャネルを指定することができます。
以前は通話キューのエージェントにはユーザーやグループを指定することが多かったですが、チャネル(チーム)のメンバーとグループ着信させたいメンバーが結局同じであることも多く、着信用グループをわざわざ作らず、エージェントにチャネルを指定することも増えています。
これらはGUIからももちろん設定できますが、ここではPowerShellコマンドにより通話キューのエージェントにチャネルを設定する方法を紹介します。
なおMicrosoftの公開情報では通話キューのエージェントにチャネルを指定したい場合の情報がほぼ掲載されておらず(2024年1月時点)、本内容は私自身の検証結果に基づくものです。
設定方法
前提
本内容で登場するコマンドを実行するには、Teams管理ユーザー(グローバル管理者ユーザーでも可)の準備と、PowerShellにTeamsモジュールが入っていることが前提になります。
また、各種コマンド実行前にConnect-MicrosoftTeamsを実行し、Teams管理センターに接続し始めてください。
通話キュー作成コマンド構文
まず通話キューを作成するコマンドから紹介します。
New-CsCallQueue -Name "コールキュー名" -AllowOptOut $true -UseDefaultMusicOnHold $true -ConferenceMode $true -LanguageID "ja-JP" -ChannelId チャネルID -DistributionLists チャネル(チーム)のGroupID -ChannelUserObjectId チャネル(チーム)の所有者 -RoutingMethod Attendant -AgentAlertTime 15 -presencebasedrouting $true -OverflowThreshold 200 -OverflowAction Disconnect -TimeoutThreshold 120 -TimeoutAction Disconnect
New-CsCallQueueで指定するパラメータは上記に記載したものに限らず、他にもたくさんのパラメータがありますが、今回は最低限として上記を指定しておけば良いでしょう。
上記New-CsCallQueueコマンドで指定したパラメータの詳細は以下です。
パラメータ名 | 設定内容 | 設定方法 |
---|---|---|
Name | コールキューの名前 | 任意の文字列 |
AllowOptOut | 通話キューからの着信をユーザーごとに許可/拒否させるかどうか | $trueもしくは$false |
UseDefaultMusicOnHold | 保留音に既定の音楽を利用するかどうか | $trueもしくは$false |
ConferenceMode | 会議モードをオンにするかどうか(これをオンにすると着信が早くなる)) | $trueもしくは$false |
LanguageID | ボイスメールの言語 | 国コード |
ChannelId | チャネルID | ★取得方法は後述 |
DistributionLists | チャネル(チーム)のGroupID | ★取得方法は後述 |
ChannelUserObjectId | チャネル(チーム)の所有者 | ★取得方法は後述 |
RoutingMethod | エージェント呼び出し方法 | Attendant など |
AgentAlertTime | エージェント呼び出し時間 | 15 ~ 180 秒で指定する |
presencebasedrouting | プレゼンス状態が[連絡可能]のエージェントに対してのみ呼び出すかどうか | $trueもしくは$false |
OverflowThreshold | キュー内待機の最大数 | 0 ~ 200 まで指定可能 |
OverflowAction | キュー内待機の最大数超過時の応答パターン | そのまま切断する場合は"Disconnect"など |
TimeoutThreshold | キュー内待機時間 | 0 ~ 2700秒(45分)まで指定可能 |
TimeoutAction | キュー内待機時間超過時の応答ターゲット | そのまま切断する場合は"Disconnect"など |
上記パラメータのうち★をつけたものはPowerShellコマンドでも取得できますので後述します。
パラメータ取得コマンド構文
チャネルIDの取得
Get-Team -DisplayName "チーム名"
チャネル(チーム)のGroupIDの取得
Get-TeamChannel -GroupId チームのグループID
チャネル(チーム)の所有者の取得
Get-TeamUser -GroupId チームのグループID -Role "owner"
なお、所有者が複数いる場合は任意の1名で良いようです。
上記コマンドだとすべての所有者ユーザーが取得されるため、以下のようにあらかじめ1人に絞るコマンドでもよいかもしれません。
Get-TeamUser -GroupId チームのグループID -Role "owner" | Select-Object -First 1
パラメータ取得コマンド(一括取得)
パラメータ取得コマンドをひとつずつ実行していくのが手間である場合は、テナント内に存在するチームの上記情報をCSVへ一括出力することもできます。
出力したCSVから必要な情報をピックアップするとより効率的です。
以下コマンドをスクリプトファイルにしてPowerShellで実行するか、そのままPowerShlellに貼り付けて実行してみてください。
# Teams管理センターへ接続 Connect-MicrosoftTeams # テナント内の全チームを取得 $teams = Get-Team # 出力する情報を格納する配列を初期化 $output = @() # チームごとに以下処理を繰り返し foreach ($team in $teams) { # "General"チャネルの情報を取得 $generalChannel = Get-TeamChannel -GroupId $team.GroupId | Where-Object {$_.DisplayName -eq "General"} # チームの所有者の情報を取得(最初の1名を取得) $teamOwner = (Get-TeamUser -GroupId $team.GroupId -Role "owner" | Select-Object -First 1).UserId # 出力する情報をハッシュテーブルに格納 $outputInfo = @{ "TeamName" = $team.DisplayName "GroupID" = $team.GroupId "ChannelName" = $generalChannel.DisplayName "ChannelID" = $generalChannel.Id "TeamOwner" = $teamOwner } # ハッシュテーブルを配列に追加 $output += New-Object PSObject -Property $outputInfo } # CSVへ出力 $output | Sort-Object DisplayName | Select-Object TeamName, GroupID, ChannelName, ChannelID, TeamOwner | Export-Csv (".\Team_Channel_List_"+ ( Get-Date -Format yyyyMMdd_HHmmss ) +".csv") -Encoding UTF8 -NoTypeInformation
PowerShellを起動し、上記コマンドを貼り付けて実行します。
コマンドを実行すると、認証画面が表示されるので、Teams管理権限を持つユーザーでサインインしてください。
実行中に表示されるProgressバーがいっぱいになると処理が終了します。
処理が終了すると、コマンドを実行したディレクトリに「Team_Channel_List_yyyymmdd_hhmmss.csv」の名前でCSVファイルが出力されます。(yyyymmdd_hhmmssはCSV出力日時)
CSVに出力される内容は以下の通りです。
項目名(ヘッダ名) | 出力内容 | 備考 |
---|---|---|
TeamName | チーム名 | |
GroupID | チームのグループID | |
ChannelName | チャネル名 | ここはGeneral(一般)チャネルを指定してコマンド実行しているため、 必ず”General"になります。 ※Generalチャネルはすべてのチームに既定で用意され、 また削除できないチャネルであり必ずどのチームにも存在するため、 Generalチャネルをパラメータに利用するようにしています |
ChannelID | チャネルID | GeneralのチャネルID |
TeamOwner | チーム所有者のID | 任意の1名分のチーム所有者IDを取得 |
このCSVが一つあれば、特定のチャネルごとにコマンドを実行する必要はなく、一覧から対象のチャネル情報を選択することができます。
終わりに
GUI上からひとつずつ作成する通常の方法に加えこのPowerShell コマンドで一括で作れる方法を知っておくと、例えば組織としてTeams Phoneの利用を開始した際など、たくさんの通話キューにチャネルを一気に紐づけしたい場合などにとても便利です。
Hiroko, Kimura(日本ビジネスシステムズ株式会社)
Microsoft 365製品の提案~運用が担当領域、特にTeams/Teams Phone多めです。趣味は音楽とテレビと映画。趣味にしたいのは筋トレ(エンジニアには筋肉が必要)。
担当記事一覧