事務所にかかった電話番号をSlackに通知してみた(前編)

作ってみた

弊社代表電話はサポート問合せを受けてつけていないのですが、それでもお役所とかからの問合せが入る場合があるので折り返し電話する必要があったりします。

とはいえ、外出していたりすれば当然受付漏れが発生するのでそのあたりで困っていました。事務所の電話で着信履歴をチェックすればいいかもですが、忘れるとどうしようもないかなと。

実は弊社ではビジネスホンを契約していて、ひかり電話ルータ(netcommunity OG410Xa)を使っていますが、この管理画面で着信履歴を見ることができるので、これをメールか何かで通知できれば便利じゃないかなと思った次第です。

ひかり電話ルータの通話ログ表示画面

というのも、このルータのページにログインして、レポート表示>ログ表示 の順にアクセスすると、下図のような情報が表示されます。

ざっくり見ると、1セット “callinfo- 0.ntc:” から ”callinfo- 4.ntc” の4行でまとまっていることがわかります。そして、 着信があったときは “callinfo- 1” の行で弊社代表番号が表示されていて、 “callinfo- 2” の行で発信者(電話を掛けた人)の番号が表示されています。

これを定期的に取得して、着信があればメールとかチャットツール(Slackとか)に自動的に通知する仕組みを作れば、折り返し忘れが無くせるだろうなぁということです。

着信履歴の自動通知システムを作ってみる

管理画面にアクセスする必要があるにせよ、決まったURLにアクセスすると欲しい情報が得られることがわかったので、あとはプログラム的な手順を考えればできそうだな、という目途が立ちました。

ではおおよその処理手順をメモしましょう。これは、裏紙とかテキストエディタとかでざざっと書いてみる感じです。

電話着信をチャット(Slack)へ通知すりための大雑把な手順

弊社ではコミュニケーションツールにSlackを採用しているので、新しい着信が来たらSlackに送るようにする仕組みを考えます。

  • ゴール:定期的に管理画面にアクセスして、新着の通話があればそれを社員が分かるようにSlackへ通知する。処理は24時間稼働のサーバにやってもらう。
  • 手順1:管理画面はどうやらBasic認証なので、サーバからcurlとかでID/Passを入れながら所定のURLにアクセスし、そのページ(テキストファイル)をゲット。
  • 手順2:ゲットしたテキストファイル(HTML形式)を解析(パース)して、上記画像のグレーの部分(たぶん TEXTAREA属性)を取得して、「アクセスログA」という名前で保存。
  • 手順3:次のタイミングで保存した「アクセスログB」と、手順2で取得した「アクセスログA」を比較する。(diff コマンド)
  • 手順4:アクセスログAとBが同じなら、「着信無し」と判断し次に進む。違いがあれば、そのブロックの “callinfo- 2” が発信者なので、その番号をSlackに通知して次に進む。
  • 手順5:手順3で取得した「アクセスログB」を「アクセスログA」(前のタイミングで取得したログ)に名前を変更する。
  • 手順6:手順1に戻る。

試しに、手元のRaspberryPiからSSHログインして、手順1の curl でログインして通信ログが取れるかを試してみます。

~~~~

あとはSlackに通知をする部分については、いろいろと事例紹介されているので(参考URLを乗せる)、実現可能性(フィージビリティスタディ)については検証できたことにします。

道具立て

今回の仕組みを実現するための道具立ては以下の通りです。

  • Raspberry Pi(Volumioが入ってるやつ)
  • ひかり電話ルータ(OG410Xa)
  • Slackのアカウント

Raspberry Pi は別のネタで生活に役立てていて、ひかり電話ルータとSlackのアカウントは弊社の通常業務で使っているので、取り立てて機材を購入するということはありませんでした。

次回に続く・・

この記事では、作りたいシステムの目的と、実装可能性、道具立てについて紹介したので、実際の構築については次回にしたいと思います。

コメント

タイトルとURLをコピーしました