如何断开调用方但仍继续该过程

时间:2014-11-21 13:17:03

标签: asterisk

我是星号的新手,我必须在挂机后做一个过程,我有一个类似的代码:

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扩展中的过程?还是有另一种方法可以做到这一点?

谢谢

2 个答案:

答案 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秒以上的任务,这可能会导致问题。