2011-05-11 132 views
3

我在VoIP方面很新手。在处理这个项目之前,我比较熟悉结构化的& OOP编程,比如Java或C++。现在我必须编写一个非常复杂的IVR脚本(它允许用户呼叫呼叫中心和听音乐&做一些额外的任务,如管理,书签最喜欢等)Asterisk编程技巧?

我对Asterisk代码的第一印象是它有点像Assembly,对我来说是一场噩梦:几乎没有任何结构,许多Gotoif命令(类似于Pascal中的goto,这是非常令人沮丧的),和no(?) IDE用于保持轨迹恒定,可变。

如果我拥有的是记事本+ ++来搜索并按照一些人以前写过的脚本,并且有数百个Gotoif(他已离开公司),那么我的脑袋就会炸毁。

是否有任何提示或工具来帮助编码脚本Asterisk,在处理大量情况时更容易控制流程?

+0

自从我提出这个问题3年多以后回来(因为有人投票通知了系统的通知)。尽管我不再和Asterisk一起工作,但我认为,如果我当时使用Sublime Text,生活本来会容易得多。如果您熟悉Go to或者操作命令,那真的是一个非常棒的编辑:) –

回答

0

看到您使用的是Notepad ++,它告诉我您可能正在使用Windows。如果是这种情况,那么你可以使用CppDepend来帮助分析代码。它可以帮助您快速理解代码库,向您显示图表和矩阵中的所有依赖项和代码度量。在Windows上进行分析之前,您可以使用ProjectMaker.exe准备Asterisk代码。有关于提供的链接和下载的试用版的大量信息。

3

HI,

它看起来像你必须写在纯文本文件拨号计划的问题。

但是,您可以使用AGI或FASTAGI星号架构,并使用C++或JAVA编码来简单地管理您的IVRS脚本以获得更好的可伸缩性,您可以使用JAVA FASTAGI,这对于负载平衡更好。

这么简单的学习Asterisk AGI命令,然后继续。

此外,为了更好地使用IVRS技术,您可以使用vxml,这是一种用于IVRS开发的新型改进技术 。

另外,如果你还想在Asterisk方面工作,你可以使用AEL,它与普通编码惯例相同,看起来像任何语言的简单编程。

http://www.voip-info.org/wiki/view/Asterisk+AEL2

+0

非常感谢!我刚刚了解到,一个完整的拨号计划可以用Java代码取代,我们只需调用AGI即可。例如,一个简单的'Hello World'拨号计划: 'import net.sf.asterisk.fastagi.AGIChannel; 进口.... 公共类HelloAGIScript延伸AbstractAGIScript { 公共无效服务(AGIRequest请求,AGIChannel信道) 抛出AGIException { //回答信道... 答案(信道); \t \t // ...打个招呼... streamFile(channel,“welcome”); \t \t // ...和挂断。 hangup(频道); } }' –

+0

然后设置背景: [默认] ... 讯号分配延长=> 130 0,1,敏捷(AGI://localhost/hello.agi) 如何效率比较纯文本表盘计划,在这两方面:代码编写和服务器的性能?谢谢 顺便说一句,你是Dhaval谁正与PhuongHD先生在Asterisk服务器之间使用IAX进行呼叫分配? –

0

有图书馆这样做几乎所有的编程语言,例如PHPAgi,Astersik的Java,Adhearsion和Astive工具包。如果你的IVR很复杂,我会推荐Astive Toolkit,因为它不仅仅是AGI的包装。看一看http://astive.phonytive.com