我有一个Asterisk拨号方案,它执行一个bash脚本,该脚本将callerID与数据库匹配,以便对调用者进行地理定位(通过匹配国家和地区代码)。由于数据库非常大(全球范围),因此最多需要15秒才能完成。
我需要在应答呼叫后立即运行此脚本(如果用户在呼叫结束前挂断),但不希望用户等待脚本执行。理想情况下,返回值应在挂断之前的拨号方案结束时处理。
Q1:我发现http://www.voip-info.org/wiki/view/Asterisk+AGI#Forkandcontinuedialplan处理我在perl脚本方面的问题。我如何在bash中完成同样的事情?我知道我可以通过添加“&”将任何bash脚本发送到后台最后,但我在拨号方案/使用AGI脚本时如何做到这一点毫无头绪。
Q2:即使用户在拨号方案“退出非零”之前挂断,如何处理这些值?
感谢您的帮助!
答案 0 :(得分:2)
使用fastagi界面。或者使用AMI监听器激活UserEvent。
AGI的设计不符合您的要求,因此不起作用。
当然你可以使用nohup命令获取不朽的bash脚本,但这不是它的方式。