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

AGI + PHP.

Добавлено: 26 мар 2013, 13:30
Dampire
Доброго.
Есть Debian 6, Asterisk 1.6.2 из пакетов и php5-cli.
Также есть простой скрипт (тестовый, поскольку нормальные работать не захотел). По какой-то причине в AGI не срабатывает команда exec (а также system). В консоли скрипт исправно отрабатывает.

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

#!/usr/bin/php -q
<?php
echo "VERBOSE \"STARTING\"\n";
$prefix = '/usr/share/asterisk/';
echo "VERBOSE \"".$prefix."\"\n";
$exec = "/bin/rm ".$prefix."*.alaw";
System($exec);
exec($exec);
echo "VERBOSE \"".$exec."\"\n";
?>
Файл не удаляется. Права к файлу any.alaw 777 (чтобы совсем без вариантов, что это запрет на доступ). Т.е. не работает даже системная команда, не только сторонние проги. VERBOSE соответсвенно работает, так что скрипт срабатывает.

Re: AGI + PHP.

Добавлено: 26 мар 2013, 13:46
ys1797
php <имя скрипта>
И Вам расскажут о синтаксических ошибках в нем.

Re: AGI + PHP.

Добавлено: 26 мар 2013, 13:52
Vlad1983
скрипт работающий в консоли != работающий в app_AGI()

Re: AGI + PHP.

Добавлено: 26 мар 2013, 14:09
Dampire
2ys1797
Что Вы курили, если там нашли синтаксическую ошибку, а php "имя скрипта" не нашел?
2Vlad1983
Окей. Я перефразирую вопрос. Почему скрипт отрабатывает все, но игнорирует exec?

Re: AGI + PHP.

Добавлено: 26 мар 2013, 14:30
Wapo
1. Проверяйте доступ самой папке
2. Попробуйте выполнить через sudo с соответствующим включением пользователя в группы.

Re: AGI + PHP.

Добавлено: 26 мар 2013, 14:41
Dampire
Мать... Вот почему во фре папки астериски создаются от имени астериски, а в дебиане от рута? Вопрос решен. Спасибо.

Re: AGI + PHP.

Добавлено: 26 мар 2013, 15:43
bako
Для операций с файлами вы очень неудачно выбрали каталоги.

http://www.debian.org/doc/packaging-man ... s-2.3.html

Re: AGI + PHP.

Добавлено: 28 мар 2013, 04:00
ded
Dampire писал(а):2ys1797
Что Вы курили, если там нашли синтаксическую ошибку, а php "имя скрипта" не нашел?
Коллега ys1797 имел ввиду
php <имя скрипта>
И Вам расскажут о ВОЗМОЖНЫХ синтаксических ошибках в нем (не желая проверять уровень Вашего знания синтаксиса при написании скриптов, но предполагая, что с этого шага всегда неплохо бы начинать).

Re: AGI + PHP.

Добавлено: 29 мар 2013, 12:18
Dampire
Второй вопрос. Как сделать, чтобы скрипт ожидал выполнения AGI-команды, а не отправлял эхо и шел дальше по своим делам? Из-за этого при записи голоса он мне возвращает broken pipe, при воспроизведении - HangUp.
Про команду sleep(X) я в курсе. Костыльный метод, я не знаю сколько времени будет болтать человек.

Re: AGI + PHP.

Добавлено: 29 мар 2013, 13:26
Dampire
Не помогло.
Набыдлокодил проверку STDIN. Вроде работает.

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

$finished = false;
while(!$finished)
{
	$res = fgets(STDIN);
	$finished = preg_match("/200/i",$res);
}