2025/10/08 13:31 Show HN: Baby's First International Landline

ロボ子、今日はTéléfonefixという面白いものを見つけたぞ。子供が安全に親戚に電話できるシステムらしい。

Téléfonefix、ですか。それは面白そうですね、博士。具体的にはどのようなシステムなのでしょう?

画面がない物理的な電話を使うのが特徴で、子供にも扱いやすいらしいのじゃ。国内外への通話もできるみたいだぞ。

画面がないのは、子供にとっては安全かもしれませんね。でも、どのようにして電話をかける相手を選ぶのでしょうか?

そこがミソじゃ!ルールに基づいた通話の許可/拒否ができるのじゃ。大人が管理する番号にしかかけられないように設定できるらしい。

なるほど、許可された番号にしかかけられないのですね。タイムゾーンやスケジュールも考慮できるとのことですが?

そうじゃ!タイムゾーンとスケジュールも考慮して、例えば「夜9時以降は電話できない」みたいな設定もできるらしいぞ。着信は完全に拒否できるのもポイントじゃな。

それはすごいですね。必要なものは、RJ11コネクタ付き電話機、アナログ電話アダプター、Raspberry Pi、そしてTwilioアカウントとのことですが、結構大掛かりなシステムですね。

アーキテクチャは、電話 → HT801 → Raspberry Pi上のAsterisk → Twilioという流れじゃな。Raspberry PiでAsteriskを動かすのが面白いところじゃ。

AsteriskはソフトウェアPBXですね。電話の短縮ダイヤルボタンに100〜107の番号を割り当てるというのは、どういう仕組みなのでしょう?

allo-wedというスクリプトで、実際の番号に変換するのじゃ。例えば、100番に「おじいちゃん」の番号を登録しておけば、子供は100番を押すだけでおじいちゃんに電話できる、というわけじゃ。

なるほど、短縮ダイヤルなのですね。Twilioの設定も必要とのことですが、電話番号を購入する必要があるのですね。月額約1.15ドルとのことですが。

Twilioは電話回線を借りるようなものじゃな。ansible-role-telefonefixを使って設定を自動化できるのも便利じゃ。DHCPでHT801に固定IPを割り当てるのもポイントじゃな。

extensions.confで短縮ダイヤル番号がダイヤルされたときの動作を定義するのですね。allo-wedスクリプトを呼び出して、通話が許可されているか確認する、と。

そうじゃ!通話が拒否された場合は、ユーザーに通知する仕組みもちゃんとあるぞ。telefonefix_super_user_override_prefixを設定すれば、親がオーバーライドすることもできるらしい。

allo-wed.ymlで、各短縮ダイヤル番号が誰に電話をかけるか、言語、名前、タイムゾーン、通話時間、電話番号を定義するのですね。かなり細かく設定できるのですね。

HT801の設定は、管理APIにPOSTリクエストを送ることで行うのじゃな。Asteriskが再生するカスタムメッセージは、Text To Speech Setupで生成できるらしいぞ。

TwilioがAsteriskに到達できるように、ファイアウォール設定も必要ですね。5060/udpと10000-10100/udpのポートフォワーディングを設定する、と。

今後の改善点として、早すぎる通話終了の防止や、1日/時間あたりの通話制限などが挙げられているぞ。エラー処理の改善も重要じゃな。

スピーカーモードの強制もできると良いかもしれませんね。子供が受話器を耳に当てずに話してしまうこともありますから。

なるほど、それは良いアイデアじゃ!しかし、このシステム、子供が電話をかけすぎて、親のTwilioの請求額が大変なことになったら、笑い話じゃな。

博士、それは笑えませんよ!でも、Téléfonefix、なかなか面白いシステムですね。私も試してみたくなりました。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
