Asterisk的自定义IVR行动
题
你能不能有人请我在指向一个方向,示例代码或在线资源完成以下任务:
<强>要求:强> 我想编写将运行脚本(bash或Python)的一个简单的IVR菜单选项。例如,电话Asterisk的机器,并要求对其他Linux机器重新启动服务。 “其他的Linux机器”的细节将被硬编码到IVR菜单选项,而不是需要作为IVR交互的一部分要供给 - 只要重新启动框Y.我有点担心和不确定怎么一会用这个安全服务X密码(即使它是在版本硬编码)。
<强>背景强> 我是一个星号的新手,从AsteriskNow分布安装了它,我还在学习的产品。基本的PBX功能是工作,是通过FreePBX的管理。 Asterisk是不是我们的开发工作,而是在工具箱中的工具的主要焦点。我们主要是做.NET的工作,但有UNIX技能。
如果可能的话我不喜欢花天的学习的Asterisk的整合细节工作做好......
其他提示
星号并不总是等待用户输入。只有背景中,WaitExten,读取命令。如果您在使用播放(),星号会忽略任何DTMF,而它的播放音频文件。
您可以更换播放与阅读(),但你必须读超时设置为一个很小的值或者会有一个沉默后,你读播放每个音频文件()。如果您使用read(),那么你必须由用户来检查值输入到检查出境,这样的事情...
相反
的exten => x,n,Playback(yourfile)
exten => x,n,somethingelse...
需要
exten => x,n,Read(Exit,yourfile,1)
exten => x,n,GotoIf($["${Exit}" = "0"]?0,1)
exten => x,n,somethingelse...
请问您设置的Asterisk只为这抑或是/将它做其他的东西,如PBX,IVR等?
如果你正在做其他的东西与Asterisk,然后建立一个隐藏的扩展名(一个不公布的IVR菜单上),它一旦你连接,你可以拨打;在此扩展,您可以检查来电显示和比较,你的电话号码,所以只有您可以执行脚本(您可以通过要求输入PIN码添加一些更安全,这样你就可以休息更容易,如果你不能找到你的电话)。
像这样:
exten => 9999,1,GotoIf($["${CALLERID(num)}" = "yournumber"]?4)
exten => 9999,2,Playback(sorry)
exten => 9999,3,Hangup
exten => 9999,4,Read(Pin,please-enter-pin,4)
exten => 9999,5,AGI(your-script)
在您的脚本您检查引脚变量,如果它是有效的,执行,否则退出而不做任何事情。这样,您就不必硬编码拨号方案内的针,其他人可能看......这是否是信任的机器,那么你可以验证引脚就在拨号规则:
exten => 9999,5,GotoIf($["Pin" != "1234"]?2)
exten => 9999,6,AGI(your-script)