Страница 3 из 3

Re: AGI variables in Bash

Добавлено: 19 окт 2013, 08:52
gosha
agi set debug on

пхп наверное с правильной либой пользыете ? (php-agi)

Re: AGI variables in Bash

Добавлено: 19 окт 2013, 09:12
virus_net
TVMaker писал(а):Не мешает, конечно же. Но хотелось бы понять причину, ее вызывающую.
например print или echo, а не вывод инфы через команду verbose
так же это может быть из-за наличия переноса строки в конце файла после закрывающего php тега ?>
так же из-за вывода ошибок или notice`ов от php, вообщем любой необоснованный принт

добавь в начало:

Код: Выделить всё

#!/usr/local/bin/php -q
<?
set_time_limit(5);
ob_implicit_flush();
error_reporting(0);
функции, например is_file, пользуй с @ впереди:

Код: Выделить всё

@is_file
см. Asterisk AGI php
создай два тестовых AGI:
Первый с командой

Код: Выделить всё

#!/usr/local/bin/php -q
<?
set_time_limit(5);
ob_implicit_flush();
error_reporting(0);


    while (!@feof(STDIN)) {
        $temp = @fgets(STDIN);
        $temp = str_replace("\n","",$temp);
        $s = explode(":",$temp);
        $agivar[$s[0]] = trim($s[1]);
        if (($temp == "") || ($temp == "\n")) {
                break;
        }
    }

print "AAA";
Второй такой же, но без print и с добавлением и использованием функции из примера:

Код: Выделить всё

log_agi('TEST Log message');
выполни оба и почувствуй разницу.

Re: AGI variables in Bash

Добавлено: 19 окт 2013, 15:07
TVMaker
Да, действительно, был лишний fwrite в stdout - не закомментил после тестирования. Получается, что при вызове AGI непрочтенные данные из STDOUT приводят к возникновению той самой хрени "broken pipe". Так и запишем, и запомним :D Всем спасибо, разобрался!