我是星号的新手,我必须在挂机后做一个过程,我有一个类似的代码:
exten => 12345,1,wait(1)
same => n,agi(myagi.php)
same => n,hangup()
exten => h,1,noop("hangup")
same => n,System(sleep 1m)
same => n,agi(sendemail.php)
所以,当因为睡眠而进入h分机时,呼叫不会挂断,但我需要在发送电子邮件之前延迟,我如何断开呼叫者但仍继续h扩展中的过程?还是有另一种方法可以做到这一点?
谢谢
答案 0 :(得分:0)
您需要更改设置才能异步发送电子邮件。基本上在您的拨号方案中,您将调用一个仅在后台执行电子邮件脚本并立即返回的shell脚本。您将使用PHP的sleep()
函数将延迟添加到电子邮件脚本中。我之前没有这样做,所以没有提供任何示例代码,但是this looks like a good place to start。
答案 1 :(得分:0)
最好的方法是标记cdr,例如CDR(userfield)= EMAILTO:address。
之后每隔几秒钟/几分钟检查一次所有的cdrs并执行您需要的操作。
请永远不要将h-extension用于可能需要0.5秒以上的任务,这可能会导致问题。