Extension Macro To Gosubのソースを表示
←
Extension Macro To Gosub
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます: メール確認された利用者、
管理者
。
このページのソースの閲覧やコピーができます。
==MacroからGosubへの移行== Asterisk 16からMacro()が廃止予定とされ、デフォルトではコンパイルされなくなりました(Asterisk 20までならmenuconfigで明示指定すれば使えます)。<BR> (以前から廃止したかったらしいが、ずるずると使用されていたので16で思い切ってデフォルトから外した模様)<BR> Asterisk 21ではMacroは廃止され、LTSであるAsterisk 22でも完全に削除されています。このためMacroで実装している場合にはGosubに書き換えてください。<BR> Asterisk 13からGosubは使用できますので早めの対策が必要です。<BR> <BR> 変更の方法としては、これまでMacroで呼び出されるマクロはcontextにmacro-を指定していましたが、GosubはGosub(context,exten,pri)の呼び出し方に変わるため、Macro(hoge)で書いていたものを、Gosub(macro-hoge,s,1)のように書き換えます。またMacroExitしていた箇所をRetunに書き換える必要があります。 ===基本的な記述=== extenで以下のように記述している場合 exten => s,n,Macro(hogehoge) この場合Macroは以下のように定義されているはず [macro-hogehoge] exten => s,1,NoOp exten => s,n,Some_app() exten => s,n,MacroExit <BR> 以下のように書き換えます<BR> exten側 exten => s,n,Gosub(macro-hogehoge,s,1) macro側 [macro-hogehoge] exten => s,1,NoOp exten => s,n,Some_app() exten => s,n,Return ===引数がある場合=== extenで以下のように記述している場合 exten => s,n,Macro(hogehoge,HOG1,HOG2) この場合Macroは以下のように定義されているはず [macro-hogehoge] exten => s,1,NoOp exten => s,n,NoOp(${ARG1}) exten => s,n,NoOp(${ARG2}) exten => s,n,Some_app() exten => s,n,MacroExit <BR> 以下のように書き換えます<BR> exten側 exten => s,n,Gosub(macro-hogehoge,s,1(HOG1,HOG2)) macro側 [macro-hogehoge] exten => s,1,NoOp exten => s,n,NoOp(${ARG1}) exten => s,n,NoOp(${ARG2}) exten => s,n,Some_app() exten => s,n,Return contextにmacro-が付いているのがイヤだという場合にはここも書き換えましょう。ただし、サブルーチンだとわかりやすいので残しておいても構いませんし、何ならsub-みたいな接頭語を付けてもいいかもしれません。 ===Dial()コマンドのマクロ(M)=== Asterisk 13のDial()で、Dialコマンドのマクロ(M)はapp_macroには依存していない。app_macroがない状態でもMオプションは動作する。<br> Asterisk 16のDial()ではDialコマンドのマクロ(M)も動作しなくなる。移行が必要。<BR> →何となくコンパイル時オプションのような気がしている(app_macroをコンパイルしないとDialにも組み込まない) Dial(SIP/201,,M(hoge,1,2,3)) これは Dial(SIP/201,,U(macro-hoge,1,2,3)) で書き換えが可能。ただしmacro-hogeは最後がReturnになるように書き足すことが必要です。<BR> DialマクロからのGosub呼び出しは何も指定しないとGosub(hoge,s,1)と同じになるので呼び出し元は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
Extension Macro To Gosub
に戻る。
ナビゲーション メニュー
個人用ツール
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
ヘルプ
広告
サイトコンテンツ
コミュニティ
Asterisk
Asterisk 18
Asterisk 20
Asterisk 22
IP電話機
購入情報
導入事例
回線接続
ベンダー
ひかり電話
セキュリティ
イベント情報
スペシャル
Asterisk pjsip
ABS
黒電話 ハック
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報