Предыстория состоит в том, что я пытаюсь отладить проблему, с которой я столкнулся с FreePBX в настоящее время. Переменная канала REC_STATUS
установлен на RECORDING
когда этого не должно быть.
После некоторого устранения неполадок и отсутствия каких-либо признаков в диалплане, который мог бы вызывать это, я решил вставить NoOp(${REC_STATUS})
как первая строка кода диалплана, которая будет выполнена для нового входящего вызова. Угадай, что? REC_STATUS
уже установлен на RECORDING
с первой строки выполнения диалплана для этих новых вызовов.
У меня такой вопрос: как эта переменная канала уже установлена до начала выполнения диалплана?
Оказывается, есть способ установить глобальные переменные в Asterisk, и когда вы переходите к запросу переменной для канала, глобальное значение будет отображаться, если переменная не была установлена иначе на канале.
Я решил свою проблему, выполнив один раз в диалплане следующее:
Set(GLOBAL(REC_STATUS)=)
Использование любого из этих вариантов не помогло:
Set(REC_STATUS=)
Set(_REC_STATUS=)
Set(__REC_STATUS=)