1 | изначальная версия редактировать | спросил 2015-04-16 15:48:51 +0400 Аноним |
Здравствуйте!
Не отрабатывает php скрипт которому передает аргумент Asterisk. Передаю ${UNIQUEID} и через Agi и Через System безрезультатно. Точнее значение в скрипт уходит но функция не отрабатывает
Если этому же скрипту передаю руками тот же самое значение UNIQUEID то все корректно работает. Не понимаю в упор в чем проблема. Может в кодировке или в типе данных?
2 | No.2 Revision редактировать |
Здравствуйте!
Не отрабатывает php скрипт которому передает аргумент Asterisk. Передаю ${UNIQUEID} и через Agi и Через System безрезультатно. Точнее значение в скрипт уходит но функция не отрабатывает
Если этому же скрипту передаю руками тот же самое значение UNIQUEID то все корректно работает. Не понимаю в упор в чем проблема. Может в кодировке или в типе данных?
Когда через AGI или System так или иначе аргументы передает астериск функция возвращает пустой массив. А когда руками - нормально данные возвращает. Причем, данные в скрипт уходят и из астериска (проверял скидыванием переменной в лог при проходе скрипта)
Фот как мы вызываем функцию:
#!/usr/bin/php -q
<?php
set_time_limit(2000);
ob_implicit_flush(false);
error_reporting(E_ALL);
require('phpagi220/phpagi.php');
require ('db.inc');
require ('lib.inc');
$file = file_get_contents('/var/log/asterisk/queue_log');
$uniqueid = trim($argv['1']);
if (isset($uniqueid)) {
$queue_vars = parse_qeues($uniqueid, $file);
ну и туда оответственно пустой массив приходит
Вот начало функции (она подключается через require)
function parse_qeues($uniqueid,$file) {
$pattern = "/(^.*?($uniqueid).*?$)/im";
preg_match_all($pattern, $file, $matches);
вот конец
$return = array("status" => $status, "operator" => $operator, "holdtime" => $holdtime, "calltime" => $calltime);
return $return;
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.