exten = _X.,1,Set(MYVAR=1)
exten = _X.,n,GoSub(MainDial,${EXTEN},1)
Будет ли в MainDial видна переменная ${MYVAR}? Или передавать переменные можно в GoSub только в качестве аргументов? И работать с ${ARGn}? С вызовом макросов такая же ситуация?
Я думаю, что так нельзя.
И самый главный вопрос про локальные переменные.
В рамках одного контекста, при использовании GoSub для перехода по экстеншенами, остаются ли доступными переменные установленные через Set?
спросил Apr 16 '15
Аноним
будет. видимость переменных оредляется не контекстом а каналом.
в диалплане астериска нет локальных переменных.
есть переменные канала, обычно они используются.
есть переменные с анследованием - будут установлены также на все подканалы генерируемые этим каналом. обозначаются подчеркиванием двойным __VAR. читай.тся как обычные(без подчеркивания)
есть shared. доступны только через func_SHARED
есть глобальные. доступны через функцию GLOBAL(VAR)
есть переменные макроса(ARG1,ARG2,ARG3) - выставляются при вызове макроса.
gosub никак не влияет ни на какие из этих классов.
Задан: Apr 16 '15
Просмотрен: 637 раз
Обновлен: Apr 16 '15
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Может это будет больше похоже на придирчивость , но почему бы это просто не проверить?
zzuz (Apr 16 '15)edit+1 к zzuz
вы наверняка дольше сообщение тут писали, чем просто взяли бы и проверили сами
virus_net (Apr 17 '15)edit