Asterisk variables - Использование переменных
В Asterisk существуют глобальные и специфичные для каналов переменные, используемые в качестве аргументов для команд. Переменные записываются в диалплане в виде ${foo}, где 'foo' это имя переменной. Имена должны начинаться с буквы и могут состоять из любых цифр и букв, но существуют предопределенные имена, вот некоторые из них:
${CONTEXT}Текущий контекст.
${EXTEN}Текущий екстеншен.
${EXTEN:x}Текущий екстеншен с удалением первых цифр(где х кол-во удаляемых цифр)
${PRIORITY}Текущий приоритет
${CALLERID}Текущий CallerID (имя и номер)
${CALLERIDNUM}Текущий номер Caller ID
${CALLERIDNAME}Текущее имя Caller ID
${RDNIS}перенаправление DNIS
Глобальные переменные назначаются в секции [globals] диалплана. Рассмотрим следующий пример:
[globals] MARK => DAHDI/1 GREG => DAHDI/2&SIP/telephone WIL => DAHDI/3 JUDY => DAHDI/4 [mainmenu] exten => 1,1,Dial(${GREG}&${MARK}) exten => 2,1,Dial(${WIL}&${JUDY}) exten => 3,1,Dial(${JUDY}&${MARK})
Организуя диалплан таким образом, можно быстро и легко переназначать физические интерфейсы для конкретных пользователей, часто используемых в контекстах.
смотри подробнее Использование переменных в плане набора Asterisk