0

拡張子 h に PHP スクリプトがあります。通話が終了した後に内線番号 h を実行する必要があると思いますが、当事者の 1 人が電話を切り、AGI スクリプトが実行されている場合、別の当事者は、スクリプトの処理が完了するまで、通話を「アクティブ」と見なすことができます。

このシナリオでは、スクリプトで 5 秒間いくつかのアクションを実行する必要がありますが、当事者の 1 人の通話時間は 5 "偽" 秒増加します。

[10:54:48]  x.php: >>> [NOTICE] One of the parties hanged up <<<
[10:54:53]  x.php: >>> [NOTICE] Script took 5 seconds <<<
[10:54:53]     -- <SIP/from-sip-00000584>AGI Script x.php completed, returning 0
[10:54:53]   == Spawn extension (from-sip, 123456789, 10) exited non-zero on 'SIP/from-sip-00000584'

質問: AGI スクリプトを実行する前に、両者を切断するにはどうすればよいですか?

4

1 に答える 1

1

これは予期される動作です。

h 拡張機能は、数秒かかるものではなく、ログ記録用に設計されています。また、時間がかかりすぎるとスクリプトをハングアップさせることもできます(ゾンビ防止)。

呼び出しが終了した後に長時間のアクションを実行する必要がある場合は、必要なアクションをログに記録/準備するためのコード (一時的な SQL テーブルまたはファイルに情報を配置する) だけで、正しい方法が agi (より高速な) スクリプトに配置されます。

その後、外部デーモン/スクリプトに保存された情報に基づいてアクションを実行できます。その結果、すべてのアクションは、アスタリスクのパフォーマンスや呼び出しなしで何時間もかかる可能性があります。

于 2013-05-12T11:23:57.837 に答える