VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

AGI variables in Bash

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

gosha
Сообщения: 375
Зарегистрирован: 06 сен 2010, 17:41
Контактная информация:

Re: AGI variables in Bash

Сообщение gosha »

agi set debug on

пхп наверное с правильной либой пользыете ? (php-agi)
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: AGI variables in Bash

Сообщение 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');
выполни оба и почувствуй разницу.
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
TVMaker
Сообщения: 134
Зарегистрирован: 05 сен 2013, 19:01

Re: AGI variables in Bash

Сообщение TVMaker »

Да, действительно, был лишний fwrite в stdout - не закомментил после тестирования. Получается, что при вызове AGI непрочтенные данные из STDOUT приводят к возникновению той самой хрени "broken pipe". Так и запишем, и запомним :D Всем спасибо, разобрался!
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH