5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

この記事では,Asterisk を利用したIP電話交換機にNTT互換の時報機能を組み込むことができる新たな方法を紹介します。

動機

  • 無料でかけられる時報をつくりたい
  • Asterisk 標準の時報は物足りない
  • NTT 互換の信号を生成して自動時刻合わせに利用したい

方法

  • Asterisk の Music On Hold (MOH) 機能で外部のアプリケーションを鳴らせる機能を利用
    • これは低遅延で音源を再生できる
  • 高速な Rust で書かれたバイナリアプリケーションを使用
  • リアルタイムで現在の時報の音源を垂れ流すコマンドを作成

やってみよう

必要なもの: Cargo (rustup で入れましょう)

my117 ソフトウェアのライセンスは Apache-2.0 OR MPL-2.0 です。

インストール

git clone https://github.com/metastable-void/my117
cd my117
cargo build --release
sudo cp target/release/my117 /usr/local/bin/

とりあえず聞いてみる

デスクトップ環境でこれをインストールすると,そのまま音声を聞くことができます。

GNU/Linux or macOS の場合:

my117 | ffplay -f mulaw -ac 1 -ar 8000 -sync ext -probesize 200 -fflags nobuffer -i -

Asterisk の設定

/etc/asterisk/musiconhold.conf

[my117]
mode=custom
application=/usr/local/bin/my117
format=ulaw

/etc/asterisk/extensions.conf

[users] ; 例
; ...

; 117 にかけると我々の時報が流れる設定
exten => _117,1,Answer
same => n,MusicOnHold(my117)
same => n,Hangup

; ...

その他

  • 時報サーバのタイムゾーンは時報を聞きたいタイムゾーンに設定しましょう。日本なら Asia/Tokyo です。
    • Debian/Ubuntu: sudo dpkg-reconfigure tzdata

動作例

029-828-4147 (生活情報基盤研究機構) の電話にかけて,自動アナウンスが鳴っている間に #30117 をダイヤルすると,この時報を聞くことができます。

最後に

my117 ソフトウェアにバグや改善するべき点などありましたら,イシューを立てるか,プルリクエストを送っていただけると幸いです。

なお,時報関連の特許を NTTグループ が持っていますので,商用利用する前には念入りな確認を推奨します。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?