[asterisk-bugs] [JIRA] Created: (ASTERISK-20163) Variables evaluated in dialplan are case insensitive, whereas channel variables/system variables are not
Matt Jordan (JIRA)
noreply at issues.asterisk.org
Mon Jul 23 14:39:21 CDT 2012
Variables evaluated in dialplan are case insensitive, whereas channel variables/system variables are not
--------------------------------------------------------------------------------------------------------
Key: ASTERISK-20163
URL: https://issues.asterisk.org/jira/browse/ASTERISK-20163
Project: Asterisk
Issue Type: Bug
Security Level: None
Reporter: Matt Jordan
We were all a little taken aback by this one.
Variables are documented on wiki.asterisk.org as being case sensitive. Some ancient documentation on voip-info makes the following note:
"A variable name may be any alphanumeric string beginning with a letter. User-defined variable names are not case sensitive — ${FOO} and ${Foo} refer to the same variable — but Asterisk-defined variables are case-sensitive — ${EXTEN} works, but ${exten} doesn't."
That seems... odd? And yet, it is somewhat accidentally correct, per the current implementation. Consider a user defined variable "FOO". Evaluating ${Foo} will yield the same value as evaluating ${FOO}. So will ${FoO}. This works for both channel variables, as well as global variables.
On the other hand, if that variable is something known to an application or is evaluated outside of dialplan execution, then that variable is treated as case sensitive. So if a user sets variable ${MiXMONITOR_FILENAME}, the MixMonitor application won't see anything in that variable. If a user later checks variable ${MIXMONITOR_FILENAME} in the dialplan, it will evaluate to the same variable name as ${MiXMONITOR_FILENAME}.
More information about the asterisk-bugs
mailing list