プロが教えるわが家の防犯対策術!

よろしくお願いします。
Raspberry Piを用いて、以下のようなことをしたいと考えています。

月曜日から金曜日までの毎日午後4時50分に、構内内線電話のページングで構内放送をかける。
・Raspberry PiのUSBポートにアナログモデム(Planex PL-US56K2を予定)を接続、このモデムに構内内線電話回線を接続する。
・Raspberry Piからアナログモデム経由で構内内線電話(内線番号「80」)に発信する。
・発信後5秒後から、Raspberry Pi上に保存された音声データ(wavやmp3を想定)50秒分をアナログモデム経由で再生し放送する。
・放送が終わったら構内内線電話を切断する。

ドライバの導入、モデムの認識までは自力でできると思います。これ以降の設定やプログラムの作り方を御教授いただけると助かります。プログラム言語は、CかPythonのいずれかだと助かります。他の言語でも勉強して使えるようになりたいと思います。
どうぞよろしくお願いいたします。

A 回答 (1件)

おもしろいアイディアですね。

ですが、考えておられる機器構成では実現できないと思われます。
 内線80番への発信を定期的に行うまでは発信プログラムを書いてcrontabでキックするなどで可能ですが、「Raspberry Pi上に保存された音声データ(wavやmp3を想定)50秒分をアナログモデム経由で再生し放送する」の部分は無理でしょう。と言うのは、アナログモデムにはナマの音声情報を伝送する機能がないからです。モデムを制御するATコマンドにも、音声に関する機能は用意されていないはずです。モデムを使うならば、送信側から送られる音声データを受け側でデコードする仕組みを設けるか、受け側で音声を再生するかのいずれかになるのではないかと考えます。
 やるとするなら受け側の80番の回線にもRaspberry Pi+モデムをつなげておき、発信側からダイヤルアップ接続した上で遠隔操作(たとえばtelnetで接続してシェルスクリプトを叩くなど)で80番側のRaspberry Piに保存された音声ファイルを再生する、などという仕組みができるかなと考えてみましたが、この場合もどのようにして80番側のRaspberry Piの音声を構内放送のほうにスイッチさせるかという課題があります。また、内線80番にかかってきた電話を常に80番側のモデムが拾うことになるため、本来のページングの使い方ができなくなってしまうという問題もあります。かけた側は80番側のモデムが発するピーギャー音を聞かされることになります。
 ほかにも昔ながらのアナログモデムのように電話機を接続するポートがあればなんとかならないかな、などと考えてみましたけれども、標準ATコマンドには電話機のポートに切り替えるといった機能はなかったと記憶しておりますし、難しそうです。結局はどのようにしてダイヤリング(モデムの世界)からナマの音声(アナログ音声の世界)への切り替えを行うかが鍵になるのではないかと思います。(かつては混雑してかかりづらいプレイガイドなどのチケットサイトにリダイヤルするのをモデムにやらせておいて、相手が出たら電話機のハンドセットを手動でオフフックし、横取りして通話する、などというテクニックがありましたが…)
 むしろPBX+構内放送機器の側に、定時放送機能が用意されていないかどうかを調べてみてはいかがでしょうか。決まった時刻にチャイムを鳴らしたり、接続されたCDプレーヤでラジオ体操の音楽を流したりするような機能です。
 お役に立てなくて申し訳ありませんが、以上ご参考になれば。
    • good
    • 4

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!