我在扩展程序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脚本之前挂断双方?
答案 0 :(得分:1)
这是预期的行为。
h扩展程序专为日志记录而设计,而不是针对可能需要几秒钟的内容。如果它占用太多(僵尸预防),它也可以挂起脚本。
如果你需要在呼叫结束后做长时间的动作,正确的方法将被放入agi(更好的fastagi)脚本只需要代码来记录/准备所需的动作(把信息放在临时的sql表或文件中)。
之后,您可以根据外部守护程序/脚本中保存的信息执行操作。因此,每个动作都可能需要数小时而不会影响星号性能或调用