「通話録音」の版間の差分
細 (カテゴリの手直し) |
(→アプリケーションを使用する) |
||
(3人の利用者による、間の6版が非表示) | |||
5行目: | 5行目: | ||
Asteriskではモニタなどの機能で通話録音が可能です。 | Asteriskではモニタなどの機能で通話録音が可能です。 | ||
==アプリケーションを使用する== | ==アプリケーションを使用する== | ||
− | 次のような記述を行うことで、通話録音を行えます。 | + | 次のような記述を行うことで、通話録音を行えます。<br> |
+ | '''注意:Monitorは廃止されました。MixMonitorを使ってください。''' | ||
[record-out] | [record-out] | ||
exten => _0.,1,Set(CALLFILENAME=${EXTEN:1}-${TIMESTAMP}) | exten => _0.,1,Set(CALLFILENAME=${EXTEN:1}-${TIMESTAMP}) | ||
14行目: | 15行目: | ||
この例では0番発信した場合の相手との通話を全て録音します。録音されたファイルはWAVフォーマットで /var/spool/asterisk/monitor/ の下に置かれます。<br> | この例では0番発信した場合の相手との通話を全て録音します。録音されたファイルはWAVフォーマットで /var/spool/asterisk/monitor/ の下に置かれます。<br> | ||
Monitorのオプションを何も指定しない場合には通話は-inと-outというふたつのファイルに分かれて記録されますが、上記の例のように"m"を指定していると、通話終了後にsoxmixが呼び出され通話はひとつのファイルに保存されます。 | Monitorのオプションを何も指定しない場合には通話は-inと-outというふたつのファイルに分かれて記録されますが、上記の例のように"m"を指定していると、通話終了後にsoxmixが呼び出され通話はひとつのファイルに保存されます。 | ||
+ | |||
+ | ${TIMESTAMP}はAsterisk 1.4から非推奨になりました。${STRFTIME(${EPOCH},Asia/Tokyo,%Y%m%d-%H%M%S)}を利用できます。 | ||
+ | |||
==automon== | ==automon== | ||
Asterisk 1.2からはautomonと呼ばれる動的なモニタ機能が追加されました。<br> | Asterisk 1.2からはautomonと呼ばれる動的なモニタ機能が追加されました。<br> | ||
20行目: | 24行目: | ||
exten => _0.,2,Dial(ダイアル先,60,W) <--"W"オプションを付ける | exten => _0.,2,Dial(ダイアル先,60,W) <--"W"オプションを付ける | ||
exten => _0.,3,Congestion | exten => _0.,3,Congestion | ||
− | "W"オプションを付けてDialコマンドを実行すると発呼した側に録音の許可がなされます。相手と通話中にダイアルした側から"*1" | + | "W"オプションを付けてDialコマンドを実行すると発呼した側に録音の許可がなされます。相手と通話中にダイアルした側から"*1"(features.confで定義)をプッシュすると録音が開始されます。小文字"w"を付けると着信側に録音が許可されるので、着信extenではこちらを使います。録音されたファイルは同じく/var/spool/asterisk/monitor/ の下にauto-が先頭についた名前で保存されます。 |
+ | |||
+ | ==MixMonitor== | ||
+ | *MixMonitorを使ったマクロ | ||
+ | features.conf | ||
+ | [applicationmap] | ||
+ | apps => 99,caller,Macro,apprecord | ||
+ | |||
+ | extensions.conf | ||
+ | [globals] | ||
+ | DYNAMIC_FEATURES=apps | ||
+ | ==中略== | ||
+ | [macro-apprecord] | ||
+ | exten => s,1,GotoIf($["${XAD}" = "0" | "${XAD}" = ""]?startrec:stoprec) | ||
+ | exten => s,n(startrec),Playback(startmonitor) | ||
+ | exten => s,n,Set(XAD=1) | ||
+ | exten => s,n,Set(MONITOR_FILENAME=${CHANNEL:4:3}) ;内線番号の桁数によって適宜変更してください。 | ||
+ | exten => s,n,MixMonitor(${MONITOR_FILENAME}.wav,b,cp /var/spool/asterisk/monitor/ | ||
+ | ${MONITOR_FILENAME}.wav /var/spool/asterisk/monitor/${MONITOR_FILENAME}-${DATETIME}.wav) | ||
+ | exten => s,n,MacroExit | ||
+ | exten => s,n(stoprec),StopMixMonitor | ||
+ | exten => s,n,Set(XAD=0) | ||
+ | exten => s,n,Playback(stopmonitor) | ||
+ | exten => s,n,MacroExit | ||
+ | 内線番号でwavファイルが作られます。 | ||
+ | [default] | ||
+ | exten => 999,1,Set(MONITOR_FILENAME=${CHANNEL:4:3}) | ||
+ | exten => 999,n,Wait(1) | ||
+ | exten => 999,n,Monitor(/var/spool/asterisk/monitor/${MONITOR_FILENAME}) | ||
+ | 適当なextenで聞き返すこともできます。 | ||
+ | |||
+ | Tips: 下記の設定ををMixMonitor実行前に行っておくと、転送しても録音が継続されます。 | ||
+ | |||
+ | exten => s,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes) |
2024年10月28日 (月) 16:59時点における最新版
意外とニーズが多いそうなので簡単に解説。 注意:通話を録音する際には法的な問題がないかどうかを、まずクリアにしてください。 Asteriskではモニタなどの機能で通話録音が可能です。
アプリケーションを使用する
次のような記述を行うことで、通話録音を行えます。
注意:Monitorは廃止されました。MixMonitorを使ってください。
[record-out] exten => _0.,1,Set(CALLFILENAME=${EXTEN:1}-${TIMESTAMP}) exten => _0.,2,Monitor(wav,${CALLFILENAME},m) exten => _0.,3,Dial(ダイアルアウト先など) exten => _0.,4,Congestion exten => _0.,104,Congestion
この例では0番発信した場合の相手との通話を全て録音します。録音されたファイルはWAVフォーマットで /var/spool/asterisk/monitor/ の下に置かれます。
Monitorのオプションを何も指定しない場合には通話は-inと-outというふたつのファイルに分かれて記録されますが、上記の例のように"m"を指定していると、通話終了後にsoxmixが呼び出され通話はひとつのファイルに保存されます。
${TIMESTAMP}はAsterisk 1.4から非推奨になりました。${STRFTIME(${EPOCH},Asia/Tokyo,%Y%m%d-%H%M%S)}を利用できます。
automon
Asterisk 1.2からはautomonと呼ばれる動的なモニタ機能が追加されました。
次のような記述を行います。
exten => _0.,1,Set(DYNAMIC_FEATURES=automon) exten => _0.,2,Dial(ダイアル先,60,W) <--"W"オプションを付ける exten => _0.,3,Congestion
"W"オプションを付けてDialコマンドを実行すると発呼した側に録音の許可がなされます。相手と通話中にダイアルした側から"*1"(features.confで定義)をプッシュすると録音が開始されます。小文字"w"を付けると着信側に録音が許可されるので、着信extenではこちらを使います。録音されたファイルは同じく/var/spool/asterisk/monitor/ の下にauto-が先頭についた名前で保存されます。
MixMonitor
- MixMonitorを使ったマクロ
features.conf
[applicationmap] apps => 99,caller,Macro,apprecord
extensions.conf
[globals] DYNAMIC_FEATURES=apps ==中略== [macro-apprecord] exten => s,1,GotoIf($["${XAD}" = "0" | "${XAD}" = ""]?startrec:stoprec) exten => s,n(startrec),Playback(startmonitor) exten => s,n,Set(XAD=1) exten => s,n,Set(MONITOR_FILENAME=${CHANNEL:4:3}) ;内線番号の桁数によって適宜変更してください。 exten => s,n,MixMonitor(${MONITOR_FILENAME}.wav,b,cp /var/spool/asterisk/monitor/ ${MONITOR_FILENAME}.wav /var/spool/asterisk/monitor/${MONITOR_FILENAME}-${DATETIME}.wav) exten => s,n,MacroExit exten => s,n(stoprec),StopMixMonitor exten => s,n,Set(XAD=0) exten => s,n,Playback(stopmonitor) exten => s,n,MacroExit
内線番号でwavファイルが作られます。
[default] exten => 999,1,Set(MONITOR_FILENAME=${CHANNEL:4:3}) exten => 999,n,Wait(1) exten => 999,n,Monitor(/var/spool/asterisk/monitor/${MONITOR_FILENAME})
適当なextenで聞き返すこともできます。
Tips: 下記の設定ををMixMonitor実行前に行っておくと、転送しても録音が継続されます。
exten => s,n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)