[Home]

Summary:ASTERISK-19753: App Macro argument processing does not honor escaped, quoted, or nested parentheses commas.
Reporter:Richard Mudgett (rmudgett)Labels:
Date Opened:2012-04-18 15:05:41Date Closed:
Priority:MajorRegression?
Status:Open/NewComponents:Applications/app_macro
Versions:SVN 13.18.4 Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:The Macro application cannot have any commas embedded in any of its arguments.  If there are any, Macro treats them as separate arguments.

I have set this issue against trunk because fixing it will cause a behavioral change.

{noformat}
[macro-callit]
exten => s,1,NoOp(Requested to call ${ARG1},${ARG2},${ARG3})
exten => s,n,Dial(${ARG1},${ARG2},${ARG3})
exten => s,n,NoOp(DIALSTATUS is ${DIALSTATUS})

[predial]
exten => s,1,NoOp(Predial, ARGC=${ARGC}, ARG0=${ARG0}, ARG1=${ARG1}, ARG2=${ARG2})
exten => s,n,Return

[default]
; This macro invocation fails because macro parses the embedded commas as separate macro arguments.
exten => 100,1,Macro(callit,SIP/100,30,b(predial,s,1(Callee,${EXTEN}))B(predial,s,1(Caller,${EXTEN})))

; This direct dial invocation works because dial handles embedded commas.
exten => 200,1,Dial(SIP/200,30,b(predial,s,1(Callee,${EXTEN}))B(predial,s,1(Caller,${EXTEN})))
{noformat}
Comments: