0

私は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 ファイルをドロップすると、電話がかかってきます。応答すると、ログに最初の 2 つのメッセージが表示されます。その後、$agi->noop() でハングします。私の電話はライブのままで、電話を切るとスクリプトが続行され、「Success!」がログに記録されます。

アスタリスクには次のログがあります。

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で何か間違っていますか?

4

1 に答える 1

0

問題が見つかりました。私は実際に AGI() にスクリプトを呼び出してもらい、Laravel を職人のコマンドとして実行しています。問題は、標準入出力がスクリプトの exec() コマンドにルーティングされていないことだと思います。別の投稿で別の方法で質問します。

于 2014-06-20T18:50:49.030 に答える