電話応対練習機作ってみた

#電話練習機がとにかく重い
会社で提供している新卒系研修で提供している電話練習機に関する相談があった。
課題感としては次のとおり。
- セット内容がクソ重い
- レンタル費用がクソ高い
- 録音機能がクソ
- マニュアルが手書きでクソ
- 本体がクソデカイ
- 研修会場を渡り歩くのに持ち運びが不可能にちかくてクソ
- 本体がすぐ壊れるクソ仕様
- 総じてクソ

最初のうちは何をそんなにと思っていたが、このレンタル費用のお陰で移動スケジュールが大変ということだった。
壊れても換えがないとか意味のわからん仕様になってて草。

電話応対の研修って基本的には二者間通話ができて、録音再生機能があれば問題ない。
ならばラズパイとスマホの白ロムでいいじゃんてな感じで作ってみた。

#使用機器など
使用したラズパイは3B、NOOBSの最新版をダウンロードして使える状態にしておきます。
http://akizukidenshi.com/catalog/g/gM-10414/
https://www.raspberrypi.org/downloads/noobs/

最近４モデルBの２GBバージョンも出たので＋１１００円で試すのもありですね。
http://akizukidenshi.com/catalog/g/gM-14839/

特に4でも問題ないと思われますが、数十台作成する必要があったため実績のあるものを使用しています。
ラズパイを内線交換機PBXとして設定し、スマホをwifi経由で接続させることでwifi版PBXとして構築します。
ラズパイがwifiのAPとなるため dhcpdが必要です。
今回はインターネット接続は行わないためhostapd以外のネットワーク設定は行いません。

#Asteriskのインストールと設定
基本的には下記のサイトのとおりです。
https://tomosoft.jp/design/?p=10040
設定自体もextentions.confを触れば終わりです。
全通話録音の設定を加味しているので下記のようになっています。
※どちらから荷電しても録音されるようにしています
```bash:extensions.conf
[default]
exten => 201,1,Set(CALLFILENAME=${STRFTIME(${EPOCH},,%Y%m%d%H%M%S)}-202to201)
exten => 201,2,Monitor(wav,${CALLFILENAME},m)
exten => 201,3,Dial(SIP/201,120,T)
exten => 201,4,Hangup()
exten => 202,1,Set(CALLFILENAME=${STRFTIME(${EPOCH},,%Y%m%d%H%M%S)}-201to202)
exten => 202,2,Monitor(wav,${CALLFILENAME},m)
exten => 202,3,Dial(SIP/202,120,T)
exten => 202,4,Hangup()
```
#dhcpdとhostapdについて
これも下記のサイトのとおりです
https://greenleaf.mydns.jp/index.php/wlan-ap-raspberrypi/

VLCは適当にapt-getしてください。

#SIPクライアントについて
SIPクライアントのスマホに関しては
iPhoneでもAndroidでも構いません。
今回はAGEPhoneを使用しました。
ただし、Androidを使用する際の注意点があります。
Androidの場合はplayストアが最新バージョンである必要がありますので必ずネットに接続してplayストアをアップデートしてからAGEPhoneをダウンロードしてください。
旧バージョンのストアではAGEPhoneが表示されないためこの操作は必須です。

※iPhoneを想定していたためAsteriskに設定した録音機能がありましたが(*3で録音する)Androidで使用する際にこの機能がクライアントで使用できなかったため、PBX側で自動全通話録音を設定しました。

また、全通話自動録音のためデータの蓄積を防ぐ目的で再起動後に通話データを消去する様にしています。
rc.localにでも下記を書いておきます。
rm -rf ~/desktop/record/*
※ラズパイのdesktopにシンボリックリンクを貼っておく必要があります

スマホ白ロムに関してはwifi設定をあらかじめしておきPBXに対して子機2台が自動的に繋がるようにしています。
また、同じフロアでパテーションを割り複数クラスで使用できるようにPBXのwifiSSIDも変更してあります。
現在は1:2で子機を割り当てていますが、もう少し増やせると思います。
ただし、長時間使用など安全を配慮して今回は子機2台のみの運用としています。

子機はそれぞれ201、202のIDを割り当てていますのでダイアルできるようになったらお互いのIDをダイアルすれば通話できます。

通話録音を行なっているのでラズパイをHDMIモニタにつなげばVLCで録音された音声を確認できます。

ラズパイ用の小型モニターなどを取り付けれた場合はヘッドフォン端子からスピーカーに出して音声を確認してください。

PBXへの接続に関してはマニュアルがなくなっても良いようにデスクトップの壁紙に全ての情報を記載していますのでHDMIモニターにさえ接続すれば単独で運用する場合も機械に弱い講師が運用する場合もシャットダウンを忘れて電源を抜いた場合もSDカードのイメージ書き込みのみで対応できるのでこれまでの工数とは比べ物にならないほとの効率化です。

ちなみにどうしても受話器を使いたいという講師に対応するため、スマホ用の黒電話受話器をつけました。スマホを台に置いて通話ボタンを押してから受話器を取ればビジネスホンのような感じになるのでそれっぽくなるのではないでしょうか。

電話機の見た目に関してはお好みで色々変えられるので市販の受話器キットなどを使えます。
https://www.amazon.co.jp/fasley-%E9%A6%96%E3%81%AB%E6%8C%9F%E3%82%81%E3%82%8B-%E3%82%A2%E3%82%A4%E3%83%95%E3%82%A9%E3%83%B3-%E3%82%A2%E3%83%B3%E3%83%89%E3%83%AD%E3%82%A4%E3%83%89-%EF%BC%88%E3%83%96%E3%83%A9%E3%83%83%E3%82%AF%EF%BC%89/dp/B01HW8I5TK/ref=sr_1_5?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=%E3%82%B9%E3%83%9E%E3%83%9B+%E5%8F%97%E8%A9%B1%E5%99%A8&qid=1585032023&sr=8-5

#総じて
マニュアルも3ページくらいのもの(電源の入れ方、切り方、通話の仕方、録音再生方法)なのでマニュアル作成工数も激減です。

なんと言っても持ち運びが格段に軽量化され、全部で1kg以内に収まったことで移動の負担が大幅に軽減された事は非常に大きな成果です。

おそらく、SPRESENSEで作ればもっと音質の良い、高機能なものが作られていたかもしれませんが、SPRESENSEがいつまで存在するかわからないので、今回は息の長そうなラズパイでの作成でした。

いずれ、無駄にハイレゾ版とか作っても面白いかも。