「Extension Macro To Gosub」の版間の差分

提供: VoIP-Info.jp
移動先: 案内検索
(MacroからGosubへの移行)
(基本的な記述)
20行目: 20行目:
 
  exten => s,n,Some_app()
 
  exten => s,n,Some_app()
 
  exten => s,n,Retrun
 
  exten => s,n,Retrun
 +
===引数がある場合===
 +
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,Retrun
 +
==参考==

2018年10月21日 (日) 17:22時点における版

MacroからGosubへの移行

Asterisk 16からMacro()が廃止予定とされ、デフォルトではコンパイルされなくなりました(menuconfigで明示指定すれば使えます)。
このためMacroで実装している場合にはGosubに書き換えることを推奨します。
Asterisk 13でもGosubは使用できますので早めの対策が良いです。

基本的な記述

extenで以下のように記述している場合

exten => s,n,Macro(hogehoge)

この場合Macroは以下のように定義されているはず

[macro-hogehoge]
exten => s,1,NoOp
exten => s,n,Some_app()
exten => s,n,MacroExit


以下のように書き換えます
exten側

exten => s,n,Gosub(macro-hogehoge,s,1)

macro側

[macro-hogehoge]
exten => s,1,NoOp
exten => s,n,Some_app()
exten => s,n,Retrun

引数がある場合

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


以下のように書き換えます
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,Retrun

参考