参考ページ:https://www.geekfeed.co.jp/geekblog/AsteriskStereoRecording/
環境情報
今回の環境ですが、
- CentOS Linux release 7.6.1810 (Core)
- asterisk 13.23.0
にておこないました。
asteriskでの録音
まずasteriskでの録音はMixMonitor()を使用します。
概要は以下のサイトを参考にしてください。
デフォルトの保存先は/var/spool/asterisk/monitor/になっているかと思います。
基本的な使い方
MixMonitor(filename.extension[,options[,command]])
普通に録音する
dialplanはこのような感じ
1
2
3
|
same => n,Set(FILE=${STRFTIME(${EPOCH},,%Y%m%d–%H%M%S)})
same => n,Set(MONITOR_DIR=“/var/spool/asterisk/monitor/”)
same => n,MixMonitor(${FILE}.wav)
|
一行目でファイル名を設定し、二行目で保存ディレクトリを設定、三行目で録音するというようになります。
オプション無しだと受話、送話ともにミックスされた状態の録音ができます。
ステレオ録音するというオプションはどうやら無いようです。
送話、受話を別々なファイルに保存する
送話、受話をそれぞれ録音するオプションがありますのでこれを使ってみましょう。
1
2
3
|
same => n,Set(FILE=${STRFTIME(${EPOCH},,%Y%m%d–%H%M%S)})
same => n,Set(MONITOR_DIR=“/var/spool/asterisk/monitor/”)
same => n,MixMonitor(${FILE}.wav,a t(${FILE}–out.wav) r(${FILE}–in.wav))
|
三行目でa 、t、 rのオプションを追加しました。
オプションの説明は以下の通りです。
a: 上書きしないでファイルを追加する。
t(file): 送信音声をファイルに録音する
r(file): 受信音声をファイルに録音する
mixされたファイルと、送話だけの音声、受話だけの音声が録音されたファイルの3つが作成されます。
二つのファイルから一つのステレオファイルを作成する。
soxというコマンドで送話音声と受話音声ファイルからステレオ音声を作成することができます。
centos7だとyum install sox でインストールができるかと思います。
手動で行うとこのような形で出来ます。
1
|
sox –M 20190101–180001–in.wav 20190101–180001–out.wav stereo.wav
|
dialplanのMixMonitorでステレオ録音する
MixMonitorの第3引数でcommandが実行できるようなので、ここでsoxコマンドを実行しましょう。
1
2
3
|
same => n,Set(FILE=${STRFTIME(${EPOCH},,%Y%m%d–%H%M%S)})
same => n,Set(MONITOR_DIR=“/var/spool/asterisk/monitor/”)
same => n,MixMonitor(${FILE}.wav,a t(${FILE}–out.wav) r(${FILE}–in.wav),sox –M ${MONITOR_DIR}${FILE}–out.wav ${MONITOR_DIR}${FILE}–in.wav ${MONITOR_DIR}${FILE}–stereo.wav)
|
これでステレオでの通話録音の作成ができました。