Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

История изменений [назад]

нажмите, чтобы скрыть/показать версии 1
изначальная версия
редактировать

спросил 2015-04-16 15:48:51 +0400

анонимный пользователь

Аноним

В какой кодировке передаются аргументы в Agi/System

Здравствуйте!

Не отрабатывает php скрипт которому передает аргумент Asterisk. Передаю ${UNIQUEID} и через Agi и Через System безрезультатно. Точнее значение в скрипт уходит но функция не отрабатывает

Если этому же скрипту передаю руками тот же самое значение UNIQUEID то все корректно работает. Не понимаю в упор в чем проблема. Может в кодировке или в типе данных?

В какой кодировке передаются аргументы в Agi/System

Здравствуйте!

Не отрабатывает 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.