Conferenceの参加者情報を取得

:::note alert
2023年5月1日を持ちまして、株式会社KDDIウェブコミュニケーションズのTwilioリセール事業が終了したため、本記事に記載されている内容は正確ではないことを予めご了承ください。
:::

# はじめに

みなさん、こんにちは。
KDDIウェブコミュニケーションズの Twilio事業部エバンジェリストの高橋です。
今回は、Conference に待望の新機能が[ベータリリースされた](https://www.twilio.com/changelog/conference-insights-rest-api)ので早速ご紹介します。

## Conference とは

Twilio Voice には、同時に3人以上で会話ができる Conference 機能があります。この機能を使うことで、最大250人までの電話会議ができます。それ以外にも、コールセンターなどではよく見かける、オペレーターとお客さんの通話をスーパーバイザーが聞く「モニタリング機能」や、オペレーターにだけささやく「ウィスパリング機能」なども実装することができるため、Twilio を使ってコンタクトセンター機能を実装する際には、ほぼ必須のサービスといっても良いでしょう。

Conference 機能を理解するには、電話会議ルームをイメージしてもらうのが一番わかり易いです。
![Conferenceのイメージ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86046/db4de850-7506-5632-1eae-d0a4f2c1c91f.png)

会議室に入った人同士が自由に話ができるイメージですね。会議室には最大250人まで入れますし、マイクをミュートにして入れば、すでに参加中の人たちの会話をモニターリングすることができるわけです。

## Conference で不便なこと

このとても便利な Conference なのですが、今まで唯一不満だったのが、会議に参加した人のリストがAPI経由で取れないということでした。いや、正確には**「現在参加中の参加者のリストしか取れない」**ということです。
管理コンソールからは確認ができるのですが、APIからは取得できないんです。

そのため、あとから参加者リストを見たい場合は、Conference に入った際に Webhook を使って別途リストを自前で作り込む必要がありました（実際、管理コンソールから見られるのに、なぜAPIでは見られないのという多くの声を頂きました）。

では、本当にリストが取得できないのかを Twilio CLI を使って確認してみましょう。
今回は、Twilio Flex のログを使って Conference を確認します（Twilio Flex では、Conference を使って転送やモニタリングを実装しています）。
シナリオはこんな感じでした。

- お客様から着電する。
- セールス担当が応答する（この時点で Conference 参加者は２）。
- スーパーバイザーが会話をモニタリングする（この時点で Conference 参加者は３）。
- モニタリングを終了する（この時点で Conference 参加者は２）。
- セールス担当は会話を保留し、スーパーバイザーに転送する（この時点で Conference 参加者は１）。
- スーパーバイザーが転送に応答する（この時点で Conference 参加者は２）。

なので、Conference の参加者は３名で、同時に入室していた最大人数も同じく３名となります。

Conference の参加者リストを取得するコマンドは次のとおりです。

```sh
% twilio api:core:conferences:participants:list --conference-sid CF0f43a3b1f5cccedb9edc6eb45d09ab93
No results
```

予想通り、`No results`が戻ってきてしまいましたね。
ちなみに、管理コンソールからは以下のように参加者情報が確認できます。

![スクリーンショット 2022-02-18 16.07.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86046/50b27d58-7c91-8b0f-8465-376d1273f24a.png)

マスクをしてしまっているのでわかりませんが、１行目と２行目は同じクライアント（スーパーバイザー）になっています。

## Conference Insights

で、いよいよここからが本題です。
今回新しく Conference Insights という機能が追加され、管理コンソール上からより Conference に関する詳細な分析情報を取得することができるようになりました。

管理コンソールから確認すると、以下のような概要が表示されます。
![スクリーンショット 2022-02-18 16.21.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86046/172286f5-575b-4179-dd38-d807386ce529.png)

Conference Insights の本来の目的は、Conference 内で発生した問題を分析することです。そのため、Conference でよく発生する３つの問題にフォーカスできるようになっています。

- リージョンの設定違いによる問題
- 音質の問題
- 参加者の予期しない行動による問題

ただ、本記事の目的はそこではなく、Conference 参加者のリストがほしいということなので、Insights の機能については別記事にまとめるとして、今回はこの Conference Insights API を使ってリストを取得してみたいと思います。

Conference Insights のAPIドキュメントは、[こちら](https://www.twilio.com/docs/voice/insights/conference/api)に記載があります。

では、先程管理コンソールで確認した参加者リストと同じデータを取得する Twilio CLI は以下のようになります。今回は必要な項目だけを取得するために、`--properties`オプションを利用しました。

```sh
% twilio api:insights:v1:conferences:participants:list --conference-sid CF0f43a3b1f5cccedb9edc6eb45d09ab93 --properties=joinTime,durationSeconds,from,to,callDirection
Join Time                      Duration Seconds  From           To                          Call Direction
Feb 18 2022 15:13:35 GMT+0900  74                +8150XXXXXXXX  client:sales_2D1            outbound
Feb 18 2022 15:13:35 GMT+0900  96                +8180XXXXXXXX  +8150XXXXXXXX               inbound
Feb 18 2022 15:14:00 GMT+0900  24                +8150XXXXXXXX  client:katsumi_2Etakahashi  outbound
Feb 18 2022 15:14:56 GMT+0900  14                +8150XXXXXXXX  client:katsumi_2Etakahashi  outbound
```

やった！
APIを使って、すでに終了した Conference の参加者リストを取得することができました。
これで自前で参加者履歴を収集しなくてもよくなりますね。

# まとめ

今回利用した Conference Insights はパブリックベータという位置づけになります。Conference 自体は分課金の従量性となりますが、Insights については現時点では無料でご利用いただけます。
また、先程も少し書きましたが、Conference Insights の本来の目的は音質の管理です。すなわち、コールセンター・コンタクトセンターにおける音質劣化の原因を効率よく見つけていくことが可能になります。

---
### Twilio（トゥイリオ）とは

https://cloudapi.kddi-web.com
Twilio は音声通話、メッセージング（SMS /チャット）、ビデオなどの 様々なコミュニケーション手段をアプリケーションやビジネスへ容易に組み込むことのできるクラウド API サービスです。初期費用不要な従量課金制で、各種開発言語に対応しているため、多くのハッカソンイベントやスタートアップなどにも、ご利用いただいております。

自己紹介|　
:--|:--
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86046/b51a8b88-abd5-ce5e-195a-de3564ba2ae6.png" height='200' width='150'/>|高橋克己（Katsumi Takahashi） 自称「<font color='red'>赤い芸人</font>」<br />グローバル・インターネット・ジャパン株式会社　代表取締役<br />株式会社KDDIウェブコミュニケーションズ　Twilio事業部エバンジェリスト<br /><br />2001年より大手通信事業者の法人サービスの教育に携わり、企業における電話のしくみや重要性を研究。2016年よりTwilio事業部にジョインし、Twilioを使ったスマートコミュニケーションの普及活動を精力的に行っている。<br />2015 Hall of Doers<br />2019 Twilio Champions