Назад | Перейти на главную страницу

Переменная канала Asterisk установлена ​​до выполнения диалплана?

Предыстория состоит в том, что я пытаюсь отладить проблему, с которой я столкнулся с FreePBX в настоящее время. Переменная канала REC_STATUS установлен на RECORDING когда этого не должно быть.

После некоторого устранения неполадок и отсутствия каких-либо признаков в диалплане, который мог бы вызывать это, я решил вставить NoOp(${REC_STATUS}) как первая строка кода диалплана, которая будет выполнена для нового входящего вызова. Угадай, что? REC_STATUS уже установлен на RECORDING с первой строки выполнения диалплана для этих новых вызовов.

У меня такой вопрос: как эта переменная канала уже установлена ​​до начала выполнения диалплана?

Оказывается, есть способ установить глобальные переменные в Asterisk, и когда вы переходите к запросу переменной для канала, глобальное значение будет отображаться, если переменная не была установлена ​​иначе на канале.

Я решил свою проблему, выполнив один раз в диалплане следующее:

Set(GLOBAL(REC_STATUS)=)

Использование любого из этих вариантов не помогло:

Set(REC_STATUS=)
Set(_REC_STATUS=)
Set(__REC_STATUS=)