AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Проблема с php AGI выполняеться не выполняясь [РЕШЕНО]

Unix Way 5 сообщений -
#1

Здравствуйте!
Прошу прощения за ужасный заголовок, но инач не мог объяснить с урезанным количеством символов =)

Итак проблема в следующем.
Имеем скрипт AGI написанный на PHP. В нём подключен php-agi скачанный по ссылке на сайте voip.rus.net.
На старом сервере(он был тестовым просто для того что бы разобраться что такое астериск и с чем его едят) на нём стояла Gentoo и скомпиленный из исходников *, версии 1,4. На нём с AGI скриптами особых проблем не было. Они работали.
Теперь на новом сервере стоит тоже Gentoo и тоже скомпиленный из исходников *.
На нём скрипты agi сразу не заработали нужно было поменять первую строку и правильно указать на место где лежит PHP. С этим ни каких проблем.
Но вот незадача. Я не могу понять в чём проблема. В логе астериска пишет так:
Код:
-- Executing Answer("SIP/128-081bebd8", "")
-- Executing AGI("SIP/128-081bebd8", "memberqueuein.php|test|SIP/128-081bebd8|128")
-- Launched AGI Script /var/lib/asterisk/agi-bin/memberqueuein.php
-- AGI Script memberqueuein.php completed, returning 0

Судя по этим логам скрипт выполняется.
Но если написать простейшую операцию вывода в консоль сообщения строчками:
Код:
$agi = new AGI();
$agi->verbose("Proverka");

То ничего не будет. И естественно ничего более сложного тоже не делается.
Пытался исправить пересборкой PHP без флага cgi, только с флагом cli. Результата нет.
Так же пробовал менять первую строку. Делал ссылку на php-cgi так как написано на voip.rus.net.
К сожалению результата нет =(
Незнаю уж что и думать.
Возможно у кого-то есть мысли по этому поводу.

Зарание спасибо!


Последний раз редактировалось: Федот (Ср Авг 06, 2008 15:05)
#2

Ты в скрипте напиши, что бы он что-то записал в файл.
Ты так наверняк узнаешь запускает * php скрипт или нет.

_________________
"Фантазия важнее знания.", Альберт Эйнштейн
#3

скорее всего сам скрипт специфический и требует чтобы php был собран с некоторыми ключами, например pcntl.
если старый сервер все еще не умер то проще всего поглядеть на нем в файле /etc/portage/package.use ключи сборки php и собрать также на новом. также вполне возможно что скрипт использует curl а на новом он не установлен. а также PEAR.
в любом случае вопрос не связан с астериском а чисто юниксовый. переношу в соответствующий раздел.
включайте дебаг у php и смотрите логи.
для начала я бы этот скрипт запустил бы из консоли - "php script.php" и посмотрел бы чего ему не хватает.
#4

Проверить какие модули собраны у php возможно следующей командой в консоли: php -m
_________________
"Фантазия важнее знания.", Альберт Эйнштейн
#5

anest писал(а):
скорее всего сам скрипт специфический и требует чтобы php был собран с некоторыми ключами, например pcntl.
если старый сервер все еще не умер то проще всего поглядеть на нем в файле /etc/portage/package.use ключи сборки php и собрать также на новом. также вполне возможно что скрипт использует curl а на новом он не установлен. а также PEAR.
в любом случае вопрос не связан с астериском а чисто юниксовый. переношу в соответствующий раздел.
включайте дебаг у php и смотрите логи.
для начала я бы этот скрипт запустил бы из консоли - "php script.php" и посмотрел бы чего ему не хватает.

Запустил ПХП срипт из консоли и нашёл ошибки =)
Были они именно в моём коде, при чём там вызывался при не подключении к базе данных exit() =) Поэтому скрипт вроде как и без ошибок выполнялся.

Спс большое что направили на путь истинный! =)