0

我在扩展 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 脚本之前挂断双方?

4

1 回答 1

1

这是预期的行为。

h 扩展是为记录而设计的,而不是用于可能需要几秒钟的事情。如果它需要太多(僵尸预防),它也可以挂断脚本。

如果您需要在通话结束后进行长时间的操作,正确的方法将放在 agi(更好的 fastagi)脚本中,只是代码来记录/准备所需的操作(将信息放在临时 sql 表或文件中)。

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

于 2013-05-12T11:23:57.837 回答