PHPAGI保持频道直播

时间:2013-05-12 11:10:01

标签: asterisk

我在扩展程序h上有一个PHP脚本。我认为扩展h应该在调用完成后执行,但是当其中一方挂断并且正在执行AGI脚本时 - 另一方仍然可以看到该调用为“活动”,直到脚本完成处理。

在这种情况下,我需要脚本执行一些操作5秒钟,但是对于其中一方来说,呼叫持续时间增加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脚本之前挂断双方?

1 个答案:

答案 0 :(得分:1)

这是预期的行为。

h扩展程序专为日志记录而设计,而不是针对可能需要几秒钟的内容。如果它占用太多(僵尸预防),它也可以挂起脚本。

如果你需要在呼叫结束后做长时间的动作,正确的方法将被放入agi(更好的fastagi)脚本只需要代码来记录/准备所需的动作(把信息放在临时的sql表或文件中)。

之后,您可以根据外部守护程序/脚本中保存的信息执行操作。因此,每个动作都可能需要数小时而不会影响星号性能或调用