phpagi заморозка / остановка / блокировка по любой команде

Я использую PHPAGI и у меня возникли проблемы. Я упростил задачу до нескольких строк кода. Во-первых, мой контекст:

[script]
exten=>s,1,AGI(asterisk_callback.php)

И мой реальный код (используя Laravel 4):

Log::info('[callback script] Creating PHPAGI..');
$agi = new AGI();
Log::info('[callback script] Trying noop..');
$agi->noop('Can you see me?');
Log::info('[callback script] Success!');

Когда я сбрасываю файл.call, я получаю звонок. Как только я отвечаю, мой журнал получает первые два сообщения. Затем он висит на $agi->noop(). Мой телефонный звонок останется живым, и как только я положу трубку, сценарий продолжится и появится сообщение "Удачи!"

Звездочка имеет следующий журнал:

Connected to Asterisk 11.7.0~dfsg-1ubuntu1 currently running on playground (pid = 26298)
       > Channel SIP/vitel-outbound-00000000 was answered
    -- Executing [s@callback_script:1] AGI("SIP/vitel-outbound-00000000", "asterisk_callback.php,53,SIP/vitel-outbound-00000000") in new stack
    -- Launched AGI Script /usr/share/asterisk/agi-bin/asterisk_callback.php
       > 0x7f84dc0181d0 -- Probation passed - setting RTP source address to 64.2.142.190:15106

... Здесь замерзает, пока я не вешаю трубку. Тогда я получаю:

    -- <SIP/vitel-outbound-00000000>AGI Script asterisk_callback.php completed, returning 4
  == Spawn extension (callback_script, s, 1) exited non-zero on 'SIP/vitel-outbound-00000000'
[Jun 20 12:33:44] NOTICE[26511]: pbx_spool.c:402 attempt_thread: Call completed to SIP/2144769335@vitel-outbound/n

Я делаю что-то не так с phpagi?

1 ответ

Нашел проблему. У меня на самом деле AGI() вызывает скрипт, который запускает Laravel как ремесленную команду. Я думаю, проблема в том, что стандартный ввод / вывод не направляется команде exec() в скрипте. Я задам вопрос по-другому в другом посте.

Другие вопросы по тегам