【Teams電話】テナント管理者が着信ブロックを設定する方法

# はじめに

Teams 電話で着信ブロックを設定するには、以下の 2 つの方法があります。

1. ユーザーが Teams クライアントから設定する
2. 管理者がテナント全体に対して設定する

1 は各ユーザーが自分で設定する方法、2 は管理者が一括してテナント内の全ユーザーに対して設定する方法です。

この記事では 2 の方法についてまとめました。1 の方法については以下の記事に記載しています。

https://qiita.com/atsmin77/items/f22962354155e2d29181

# 着信ブロックの設定方法

管理者による着信ブロックは Teams PowerShell のコマンドから設定することができます。

::: note warn
この方法で管理者がブロックした電話番号からの着信は、テナント内の全ユーザーでブロックされます。
:::

(参考：受信通話をブロックする)
https://learn.microsoft.com/ja-jp/microsoftteams/block-inbound-calls

(参考：Microsoft Teams PowerShell モジュールをインストールする)
https://learn.microsoft.com/ja-jp/microsoftteams/teams-powershell-install

## コマンド例

### 着信ブロック

着信をブロックする電話番号を追加するには、New-CsInboundBlockedNumberPattern コマンドを使用します。

::: note
コマンドではブロックする電話番号のパターンを [正規表現](#正規表現について) で指定します。
そのため、1 つの設定でパターンにマッチする複数の電話番号をブロックすることができます。
:::

#### 例1. 特定の電話番号からの着信をブロック

**+81-3-1234-5678** からの着信をブロック

```powershell
New-CsInboundBlockedNumberPattern -Name "着信ブロックテスト01" -Pattern "^\+?81312345678$" -Description "特定の電話番号からの着信をブロック" -Enabled $True 
```

#### 例2. 特定の範囲の電話番号からの着信をブロック

**+81-3-1234-0000 ~ +81-3-1234-9999** からの着信をブロック

```powershell
New-CsInboundBlockedNumberPattern -Name "着信ブロックテスト02" -Pattern "^\+?8131234\d{4}$" -Description "特定範囲の電話番号からの着信をブロック" -Enabled $True 
```

設定されている着信ブロック設定の情報を取得するには、Get-CsInboundBlockedNumberPattern コマンドを実行します。

```powershell
Get-CsInboundBlockedNumberPattern
```

実行結果の例
```
Identity    : 着信をブロックテスト01
Name        : 着信をブロックテスト01
Enabled     : True
Description : 特定の電話番号からの着信をブロック
Pattern     : ^\+?81312345678$

Identity    : 着信をブロックテスト02
Name        : 着信をブロックテスト02
Enabled     : True
Description : 特定範囲の電話番号からの着信をブロック
Pattern     : ^\+?8131234\d{4}$
```

### 例外設定

ブロックしている電話番号の範囲の中から、特定の電話番号を許可することもできます。 許可する電話番号のパターンを New-CsInboundExemptNumberPattern コマンドで指定します。

#### 例3. 特定の電話番号からの着信を例外的に許可

**+81-3-1234-5678 / +81-3-1234-5679** からの着信は許可

```powershell
New-CsInboundExemptNumberPattern  -Identity "例外設定テスト01" -Pattern "^\+?8131234567[8|9]$" -Description "特定の電話番号からの着信は例外的に許可" -Enabled $True
```

設定されている例外設定の情報を取得するには、Get-CsInboundExemptNumberPattern コマンドを実行します。

```powershell
Get-CsInboundExemptNumberPattern
```

実行結果の例
```
Identity    : 例外設定テスト01
Name        : 例外設定テスト01
Enabled     : True
Description : 特定の電話番号からの着信は例外的に許可
Pattern     : ^\+?8131234567[8|9]$
```

## テスト

設定した着信ブロック、例外設定をテストするには  Test-CsInboundBlockedNumberPattern コマンドを実行します。

Test-CsInboundBlockedNumberPattern コマンドでは、パターンではなく実際の電話番号を入力して、その電話番号がブロックされるか、許可されるかをテストすることができます。

```powershell
Test-CsInboundBlockedNumberPattern -PhoneNumber 81312341111
# True
Test-CsInboundBlockedNumberPattern -PhoneNumber 81312345678
# False
```

| 実行結果 | 意味 |
|:-:|:-:|
| True | 電話番号がブロックされています  |
| False  | 電話番号がブロックされていません |

::: note warn
着信ブロックを設定した後、設定が有効になるまで 24 時間程度要する場合があります。
:::

## 正規表現について

着信ブロックのコマンドでは、ブロックする電話番号のパターンを正規表現で指定します。正規表現は文字列のパターンを定義する一般的な方法です。着信ブロックでは、指定したパターンにマッチする電話番号がブロックされます。

■ 正規表現の例
| 正規表現 | 意味 |
|:-:|:-:|
| ^ | 文字列の先頭 |
| $ | 文字列の終端 |
| ? | 1 つ前の文字は省略可能  |
| \d | 0-9 のいずれかの数字 |
| [a \| b] | 'a' または 'b' のいずれか 1 文字 |
| * | 1 つ前の文字を 0 回以上繰り返す |
| . | 任意の 1 文字 |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/1cb22607-33ed-48b2-a8b7-f6308c0a66cb.png)

::: note
* "\\+" について
"+" 記号も正規表現で特別な意味があります。電話番号のパターンでは通常の文字列として "+" を使用したいため、"\\+" と入力します。
* \d{4} について
\d{4} は \d\d\d\d と同じ意味で、\d が 4 つ続くことを意味しています。
:::

■ 便利なサイト

正規表現のパターンに文字列がマッチするかどうかは、以下のサイトで確認することもできます。
https://regex101.com/

画面上部のテキストボックスに正規表現パターン、下側にマッチするかを確認したい文字列を入力します。文字列がパターンにマッチすれば強調して表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2680397/d1342f50-0e76-4c9b-a674-5c4e797106f7.png)

# おわりに

テナント管理者が着信ブロックを設定する場合、PowerShell で正規表現のパターンを指定して設定を行う必要があります。アプリ開発の経験などが無ければ、正規表現に馴染みが無い場合も多いと思いますのでまとめてみました。ご参考になれば幸いです。