僕が運営する株式会社破滅派では創業当初からずっとSkype電話を電話番号としており、オフィス引越しトレランス(耐性)があると自負していたのですが、Mircosoft傘下になっていたSkypeが2025年5月サービス終了してしまいました。その後もしばらく電話を使えたので、「もしかしたらSkype電話はTeamsに引き継がれたのか?」と期待を膨らませましたが、そんなことはなく無事電話が通じなくなりました。
破滅派にはほとんど営業電話しかかかってこないのですが、まれに書店さんから「◯◯という本を返品してもいいですか」という了解をとるための電話がかかってきます。潰れて夜逃げしたと思われていたかもしれませんね。ご心配をおかけしました。
で、どうしようかChatGPTに聞いたら、たしかに転送電話番号のサービスはいろいろあるものの、僕がプログラミングをできるということで、最終的にtwilioを使おうということになりました。

twilioというのはメッセージング系クラウドサービスの最大手で、電話転送・SMS送信などいろんなことができます。以前はAUグループが代理店パートナーだと思ってたのですが、いまは契約終了してるんですかね?

twilioの番号を取得
さて、twilioは登録自体はすぐできるものの、「電話番号の取得」にハードルがあります。
- そもそも法人でないと登録できない(これは破滅派的にはクリア)
- 登録のために履歴事項全部証明書、公共料金の請求書、代表者の免許証などなど、提出するものがけっこうあります。要するに、本人確認についてガチです。これは法的な要請に基づくものでしょう。破滅派が第二の「ルフィ」にならない確証はないですからね。
特に急に言われた「履歴事項全部証明書」がめんどくさく、登記・供託ねっととかで取得はできるものの、何日か待たねばならなかったです。
で、その承認(レタックスが家や会社に届く)が済むと住所登録が紐づいて、電話番号を購入できるようになります。多分なのですが、自社向けの電話番号を購入するのではなく、なんらかのサービスを提供する人はもっとハードル高いんじゃないでしょうか。

ご覧の通り、電話番号は050なら月600円台から。市外局番(東京03とか)は月2800円ぐらいでした。僕はまったくこだわりなかったので050番号を買いました。たぶん0120(トールフリー)の番号も買えるんじゃないですかね?
さて、この電話番号なのですが、なんとtwilioで買った日本の050電話番号からはSMSが送れません! 追加で購入する必要があり、僕はカナダの番号(1ドル)を買いました。アメリカの電話番号は住所のなにかしらの証明が必要で購入できなそうでした。ちなみに、カナダの電話番号を買ってそこから911に電話をかけてしまうと100ドルだかの罰金だそうです。怖いですね。
なぜ2つ目のSMS用番号を取得したのかは後述。
電話転送システムをつくる
さて、電話番号が作れたらさっそくシステムを作っていきます。といっても、自分でやったり調べたりしたことはほとんどなく、最近検証的に利用をはじめたCursorの無料トライアルでできました。工数的にはのべ1日ぐらい。
IVRというのはInteractive Voice Response(インタラクティブ・ボイス・レスポンス)で、自動音声+プッシュボタンで処理を振り分けるものです。今回はこんな感じです。

まずは着信があったら自動音声で案内して、1-3の番号を押してもらいます。
- 営業はお問い合わせフォームを案内して、どうしても話したい場合は再度1を押すと、電話転送
- 書籍の返品要請は提携で返品了解者の名前を返して、通話が必要な場合は再度1を押すと、電話転送。
- その他の要件は3を押すと電話転送。
という感じで、電話転送の前にいろいろ振り分けます。最初は営業が来たらお問い合わせフォームを案内して終了、と思ったのですが、まれに役にたつ営業電話もあるのでそのままにしました。
実装の詳細はこんな感じです。
- Cursorに相談してプランを立ててもらう。Nodeのexpressで作り、最終的にGoogle Cloud Runで実行する。月額料金はほとんどかからない。
- その後、プランにしたがって、Node JS(express)で作ってもらう。
- ローカル環境で動作確認ができるようにしてもらい、さらにSupertestでテスト実行。
- その後、Cloud Runへのデプロイ(GitHubにプッシュされたらテストしてビルド+デプロイ)を実装。ここが一番時間かかった……。半分ぐらいこれ。
というわけで、あっという間にできてしまいました。で、肝心の通話なのですが……
- 通話品質はSkypeより断然良い。Skypeのときは「あれ、声が、遅れて、聞こえて、くるぞ」のいっこく堂状態だった。
- Skype電話は非通知で転送されてきていたが、この番号が破滅派の番号(上で買った番号)に変わったので「お、仕事の電話だ」とスマホでもわかりやすい。
と、改善点はあったものの、まだ「相手の番号がわからない」という状況に代わりはありません。一応、twilioのダッシュボードで確認できるのですが、いちいち見にいくのが面倒くさい。そこで、次のような仕様にしました。
- 電話がかかってきたら、録音を開始
- 録音が終了したら、日時、発信元、録音データへのリンクを付与してSMS送信
- 録音データはスケジュール消去できず、量が増えると課金されるらしかったので、Amazon S3に保存。S3のスケジュール機能で古い録音を定期的に削除
ここで、先ほど購入したカナダの電話番号が役にたつのですね! SMSからワンクリックで電話をかけられるので、「さっきの電話にかけなおそう」というのが簡単になりました。

なお、改善点としては、S3のURLがパブリックじゃない(かつ、パブリックにしてはいけない)ので、録音のリンクをクリックしても音声が聞けません。なので、期限切れになる認証付きURLかなにかを用意して、すぐ聞けるようにしようと思います。
この機能はhametuha/hamephoneとしてGitHubで公開しているので、ちょっと直せば他の人も使えると思います。プログラミングにあまり自信がなくても、Cursor, CLINEあたりのIDEと統合されているツールを使って「このリポジトリはなにをしてるの?」「自分も使いたいんだけどどうしたらいいの?」と尋ねまくるとおそらく動くようになると思います。
というわけで、twilioのSMSは初めて使いましたが、かなり簡単でした。今後、破滅派のサイトにも本人確認の機能として導入してみようかなと思っています。
しかし、もはや自分でプログラミングすることはほとんどなくなりましたね。マイクロサービス作りまくってみようと思ってます。