Intereting Posts
ЛАМПА: Как создать .Zip больших файлов для пользователя «на лету», без разбиения диска / процессора php – который лучше подходит к null == или == null PHP / MySQL: динамический подготовленный оператор с запросом на вставку / обновление Как получить содержимое javascript / ajax -loaded div на сайте? REGEX для маскировки всех символов, кроме первого и последнего символов Есть ли какое-либо преимущество в области безопасности для шифрования переменных сеанса? Автозаполнение для ZF2 просмотр помощников в PhpStorm Вставка в таблицу, соединенная с другой таблицей с помощью справочной таблицы? Laravel-Multiauth не работает в Laravel 5.2 PHP – генерировать 8-символьный хеш из целого числа ls -ltr с помощью PHP exec () Может ли кто-нибудь подробно описать функцию индексации Magentos? Javascript beautifier – скрипт PHP Как удалить числа из строки с помощью RegEx Правила проверки формы кода CodeIgniter для флажка

Asterisk AGI: Как получить или установить значение глобальной переменной?

Я использую Asterisk 1.8 с PHP для скриптов AGI.

РЕДАКТИРОВАТЬ:

Я борюсь с настройкой и получением значений глобальных переменных из скрипта AGI PHP. Я могу установить переменные канала, но не глобальные переменные. Использование PHPAGI lib.

Пытался:

Set({$varname}={$value},g) Set({$varname}=\"{$value}\",g) Set(GLOBAL({$varname})={$value}) 

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

У кого-нибудь есть рабочий пример установки и получения глобальных переменных в сценарии AGI?

    Я нашел обходное решение, чтобы заставить его работать.

    Во-первых, глобальная переменная не должна быть объявлена ​​в абонентской группе в разделе [globals]. И, похоже, вы не можете установить глобальную переменную из сценария AGI. Однако вы можете установить переменную канала (локально для текущего канала). Таким образом, чтобы установить глобальную переменную из сценария AGI, вы сначала установите значение для переменной канала, и когда вы вернетесь из сценария в абонентскую группу, вы получите значение переменной канала и присвоите ее глобальной переменной. В принципе, похоже, вы можете назначать глобальные переменные из абонентской группы, а не из сценария AGI.

    образец кода:

     //in dial plan exten => _XXXX,n,AGI(myagiscript.php) exten => _XXXX,n,Set(GLOBAL(someGlobalVariable)=${myLocalVar}) // in myagiscript.php $agi->set_variable("myLocalVar", "value"); 

    Информация о вики Asterisk об AGI говорит о глобальных переменных: … Глобальные переменные не передаются сценарию AGI таким образом. Вы должны получить их, используя команду «получить переменную» AGI …

    а в другой части: … GET VARIABLE: не работает с глобальными переменными. Не работает с некоторыми переменными, которые генерируются модулями ….

    Для установки глобального значения вы можете выполнить:

     EXEC SetGlobalVar <var_name>=<value> 

    Для получения информации о том, что get_variable должен работать, но в Asterisk произошла ошибка: https://issues.asterisk.org/view.php?id=7609

    Эта ошибка была в Asterisk 1.2.20, какую версию Asterisk вы используете?