「AquesTalkPi」の版間の差分
ナビゲーションに移動
検索に移動
(同じ利用者による、間の4版が非表示) | |||
1行目: | 1行目: | ||
AquesTalkPiをAsteriskにインテグレーションする。簡単! | AquesTalkPiをAsteriskにインテグレーションする。簡単!<BR> | ||
注意!:AquesTalkPiは個人の非営利使用でのみ無料です。企業でPBX等に使用する場合には使用ライセンスを購入してください。<BR> | |||
:https://store.a-quest.com/items/7456364 | |||
Raspberry Pi版ではなく通常(x86など)のAquesTalkを使用する場合には[[Macro AquesTalk]]を参照。 | |||
==AquesTalkPiの入手とインストール== | ==AquesTalkPiの入手とインストール== | ||
*AquesTalkPi | *AquesTalkPi | ||
21行目: | 24行目: | ||
exten => s,n,GotoIf($["${PLAYBACKSTATUS}"="FAILED"]?endm) | exten => s,n,GotoIf($["${PLAYBACKSTATUS}"="FAILED"]?endm) | ||
exten => s,n,System(rm -f ${FN}.wav) | exten => s,n,System(rm -f ${FN}.wav) | ||
exten => s,n,Set(CHANNEL(hangup_handler_pop)=); | exten => s,n(endm),Set(CHANNEL(hangup_handler_pop)=); | ||
exten => s,n | exten => s,n,MacroExit | ||
;AquesTalkPi ファイル削除用ハンドラ | ;AquesTalkPi ファイル削除用ハンドラ | ||
29行目: | 32行目: | ||
exten => s,n,Return() | exten => s,n,Return() | ||
乱暴なので注意。テクノロジ/チャネル(e.g. SIP/phone-1)のよううな形なら問題ないが/が複数入るタイプは要変更。<BR> | 乱暴なので注意。テクノロジ/チャネル(e.g. SIP/phone-1)のよううな形なら問題ないが/が複数入るタイプは要変更。<BR> | ||
再生中に回線断した場合に音声ファイルを削除するように修正。 | 再生中に回線断した場合に音声ファイルを削除するように修正。<BR> | ||
MacroからGosubに移行する場合には以下の例を参照。 | |||
;AquesTalkPiによる音声合成用マクロ | |||
[macro-AquesTalkPi] | |||
exten => s,1,NoOp(AquesTalkPi) | |||
exten => s,n,Set(ID=${CHANNEL}) | |||
exten => s,n,Set(FN=${CUT(ID,/,2)}) | |||
exten => s,n,Set(FN=/tmp/${FN}) | |||
exten => s,n,Set(CHANNEL(hangup_handler_push)=atp-rm-hdlr,s,1(${FN})); | |||
exten => s,n,System(/usr/lib/asterisk/atp/AquesTalkPi ${ARG1} > ${FN}.wav) | |||
exten => s,n(loop),Playback(${FN}) | |||
exten => s,n,GotoIf($["${PLAYBACKSTATUS}"="FAILED"]?endm) | |||
exten => s,n,System(rm -f ${FN}.wav) | |||
exten => s,n(endm),Set(CHANNEL(hangup_handler_pop)=); | |||
exten => s,n,Return | |||
;AquesTalkPi ファイル削除用ハンドラ | |||
[atp-rm-hdlr] | |||
exten => s,1,System(rm -f ${ARG1}.wav) | |||
exten => s,n,Return() | |||
==使い方== | ==使い方== | ||
35行目: | 57行目: | ||
exten => 8765,1,Macro(AquesTalkPi,明日の天気は晴れ) | exten => 8765,1,Macro(AquesTalkPi,明日の天気は晴れ) | ||
exten => 8765,n,Hangup | exten => 8765,n,Hangup | ||
AquesTalkPiに引数(オプション)を渡したければマクロを修正してARGを複数にすれば良いかも。 | AquesTalkPiに引数(オプション)を渡したければマクロを修正してARGを複数にすれば良いかも。<BR> | ||
Gosubの場合には以下のように。 | |||
exten => 8765,1,Gosub(macro-AquesTalkPi,s,1(明日の天気は晴れ)) | |||
exten => 8765,n,Hangup |
2018年10月22日 (月) 11:30時点における最新版
AquesTalkPiをAsteriskにインテグレーションする。簡単!
注意!:AquesTalkPiは個人の非営利使用でのみ無料です。企業でPBX等に使用する場合には使用ライセンスを購入してください。
Raspberry Pi版ではなく通常(x86など)のAquesTalkを使用する場合にはMacro AquesTalkを参照。
AquesTalkPiの入手とインストール
- AquesTalkPi
- インストール
- 展開したファイル一式を/usr/lib/asterisk/atpの下に置く(ディレクトリごと)
- drwxr-xr-x 2 pi pi 4096 8月 27 2013 aq_dic
- -rwxr-xr-x 1 pi pi 281984 8月 27 2013 AquesTalkPi
- -rw-r--r-- 1 pi pi 216 8月 17 2013 test.txt
Asteriskマクロの作成
次のようなマクロをつくる
;AquesTalkPiによる音声合成用マクロ [macro-AquesTalkPi] exten => s,1,NoOp(AquesTalkPi) exten => s,n,Set(ID=${CHANNEL}) exten => s,n,Set(FN=${CUT(ID,/,2)}) exten => s,n,Set(FN=/tmp/${FN}) exten => s,n,Set(CHANNEL(hangup_handler_push)=atp-rm-hdlr,s,1(${FN})); exten => s,n,System(/usr/lib/asterisk/atp/AquesTalkPi ${ARG1} > ${FN}.wav) exten => s,n(loop),Playback(${FN}) exten => s,n,GotoIf($["${PLAYBACKSTATUS}"="FAILED"]?endm) exten => s,n,System(rm -f ${FN}.wav) exten => s,n(endm),Set(CHANNEL(hangup_handler_pop)=); exten => s,n,MacroExit ;AquesTalkPi ファイル削除用ハンドラ [atp-rm-hdlr] exten => s,1,System(rm -f ${ARG1}.wav) exten => s,n,Return()
乱暴なので注意。テクノロジ/チャネル(e.g. SIP/phone-1)のよううな形なら問題ないが/が複数入るタイプは要変更。
再生中に回線断した場合に音声ファイルを削除するように修正。
MacroからGosubに移行する場合には以下の例を参照。
;AquesTalkPiによる音声合成用マクロ [macro-AquesTalkPi] exten => s,1,NoOp(AquesTalkPi) exten => s,n,Set(ID=${CHANNEL}) exten => s,n,Set(FN=${CUT(ID,/,2)}) exten => s,n,Set(FN=/tmp/${FN}) exten => s,n,Set(CHANNEL(hangup_handler_push)=atp-rm-hdlr,s,1(${FN})); exten => s,n,System(/usr/lib/asterisk/atp/AquesTalkPi ${ARG1} > ${FN}.wav) exten => s,n(loop),Playback(${FN}) exten => s,n,GotoIf($["${PLAYBACKSTATUS}"="FAILED"]?endm) exten => s,n,System(rm -f ${FN}.wav) exten => s,n(endm),Set(CHANNEL(hangup_handler_pop)=); exten => s,n,Return ;AquesTalkPi ファイル削除用ハンドラ [atp-rm-hdlr] exten => s,1,System(rm -f ${ARG1}.wav) exten => s,n,Return()
使い方
とても簡単
exten => 8765,1,Macro(AquesTalkPi,明日の天気は晴れ) exten => 8765,n,Hangup
AquesTalkPiに引数(オプション)を渡したければマクロを修正してARGを複数にすれば良いかも。
Gosubの場合には以下のように。
exten => 8765,1,Gosub(macro-AquesTalkPi,s,1(明日の天気は晴れ)) exten => 8765,n,Hangup