匿名

差分

Extension Macro To Gosub

655 バイト追加, 2018年10月28日 (日) 14:06
Dial()コマンドのマクロ(M)
exten => s,1,NoOp
exten => s,n,Some_app()
exten => s,n,RetrunReturn
===引数がある場合===
extenで以下のように記述している場合
exten => s,n,NoOp(${ARG2})
exten => s,n,Some_app()
exten => s,n,RetrunReturn
contextにmacro-が付いているのがイヤだという場合にはここも書き換えましょう。ただし、サブルーチンだとわかりやすいので残しておいても構いませんし、何ならsub-みたいな接頭語を付けてもいいかもしれません。
===Dial()コマンドのマクロ(M)===
Asterisk 13のDial()で、Dialコマンドのマクロ(M)はapp_macroには依存していない。app_macroがない状態でもMオプションは動作する。<delbr>調査中ですが、たぶん影響を受けるはず。この場合にはUAsterisk 16のDial()ではDialコマンドのマクロ(GosubM)に置換できるはずです。も動作しなくなる。移行が必要。</del><brBR>Asterisk 13での実行結果ではあるが、"Internal Gosub"に置換されているので影響受けない?→何となくコンパイル時オプションのような気がしている(app_macroをコンパイルしないとDialにも組み込まない) Dial(SIP/201,,M(検証中hoge,1,2,3)) -- これは Dial(SIP/demophone201,,U(macro-00000xxb Internal Gosubhoge,1,2,3))で書き換えが可能。ただしmacro-hogeは最後がReturnになるように書き足すことが必要です。<BR>DialマクロからのGosub呼び出しは何も指定しないとGosub(ch-afthanghoge,s,1(1)) startと同じになるので呼び出し元はUに書き換え、頭にmacro-を付けるだけです。 ===荒療治でのチェック方法===Asterisk CLIから module unload app_macroを実行し、Macroを無効にした状態でextenを走らせて落ちる箇所を探す。
==参考==
https://wiki.asterisk.org/wiki/display/AST/Asterisk+16+Application_Gosub
https://wiki.asterisk.org/wiki/display/AST/Asterisk+16+Application_Return