koodoo 百科内容来自于: 百度百科

百科名片

Koodoo语言是一种简单高效的脚本语言,有现代脚本语言动态变量、动态数组等容易上手的特点,同时又适应电信行业高性能的要求。它主要应用在语音系统相关的开发,即CTI(计算机电话集成)领域,如IVR(交互式语音应答,即电话自动语音应答,如电话银行、证券电话委托、声讯系统等),CallCenter(呼叫中心、客服中心)等。对于语音系统来说存在多通道并发的问题,传统的解决方法就是状态机,对语音系统的开发人员实在太麻烦了,摒弃状态机,创造一种运行在单独通道上的高级脚本语言,给语音系统的开发带来了开发效率上的飞跃。

简介

开发历程:Koodoo语言采用C++完全独立开发的,并没有参考任何开源代码,在2001年推出了第一个版本,随后提供了多种主流语音卡硬件平台的支持,并实现了可视化的调试环境和运行环境。
版本升级Koodoo语言采用类似开源代码的小版本号,目前版本号是ver2.19j,大概一个月左右就会推出一个小的升级版本。
应用领域:Koodoo语言有不少电信、金融等行业的用户,随着IVR、CTI市场的发展,甚至3G等应用的展开,Koodoo语言将支持更多的硬件和电信协议,一定有更广泛的应用。
开发工具:
采用任何一个文本编辑器--比如记事本, 写上一段Koodoo语言脚本代码, 最好保存为".bss"的扩展名.
推荐使用UltraEdit,这款编辑器功能很强大,简单设置后可以使用语法加亮、代码缩进和代码折叠等功能, 使用命令行编译器可在UltraEdit-32下即时编译,构成IDE,请参考: 用UltraEdit来开发
也可以使用EditPlus编辑器,参考: 用EditPlus来开发
也很多人使用Visual Studio或C++Builder等自己熟悉的高级语言编辑器,非常好。但最好不要使用VB的编辑器,因为它会自动把关键字首字母变成大写. 注意:我们的脚本语言和C或Java一样是大小写敏感的.
运行平台:
运行蓝星际语音开发平台, 弹出画面:
指定脚本文件, 如果不愿意输入, 可以点击菜单:"文件/打开", 然后选择一个脚本文件。
选择线路, “线路”相当于语音卡硬件的通道或通道号,选择你连接了电话线的线路号,如果您没有任何语音卡线路,请选择最后一条也就是“虚拟线路”,该线路会自动采用声卡来放音或录音。
点击"编译(F7)"按钮, 如果顺利就会在中间生成主流程的语法树, 如果有语法错误, 将会弹出一个错误窗口, 告诉你错误的行数, 错误的原因, 这时您需要修改脚本直到没有任何错误.
点击"运行(F9)"按钮,脚本将执行; 您可以点击"刷新(F5)"按钮, 然后在变量列表栏目去察看变量, 您可以对变量排序, 也可以双击变量查看其详细内容. 如果脚本运行在虚拟线路上(声卡模拟环境),可以点击“模拟按键”输入框,在里面输入数字来模拟电话DTMF按键输入。
调试: 在运行之前您可以在语法树上设置很多断点, 这样运行到断点处就会停下来, 这时您还可以"单步(F8)"执行语句, 便于跟踪流程和了解变量在当前时刻的值。在单步状态,可以双击主流程或子函数语法树上的任意语句,这时将显示该语句的相关变量,和他们的值。
显示调用列表: 设置断点后, 当运行到断点处停下来时, 可选择主菜单“运行/显示调用堆栈”,在子窗口中将显示当前函数的调用堆栈列表,双击列表中的任一函数名将显示该函数全部变量的当前值。
命令行或快捷方式: “BsTel.exe 脚本文件名 线路号” --将自动在指定的线路编译并运行该脚本.

常见代码示例

Koodoo语言的"Hello, world!":
WaitRing(1); // 等待来电
Play("Welcome.wav"); // 播放欢迎语音
Hangup(); // 挂断
就这三行语句,构成了一个最简单的语音应答机(IVR).
当然,运行上面的例子最好有语音卡硬件或者语音猫,还需要录制那个欢迎语音Welcome.wav文件。
有朋友会说,我暂时没有语音卡也没有语音猫,怎么办呢?没关系,电脑上只要安装声卡就可以了。
如果你安装了微软的SAPI--是免费的,你也可以不录音:
WaitRing(1); // 等待来电
TxtSpeak("您好,欢迎来电!", false, false); // TTS合成欢迎语音
Hangup(); // 挂断
让我们看看别的方式输出"Hello, world!":
在第一个信息栏显示信息:
DispInfo(0, "Hello, world!");
return(0);
在日志文件记录信息:
TextFileAppend("userlog.txt", "Hello, world!", true); // 日志文件名为:"userlog.txt"
return(0);
常量
Koodoo语言支持常量定义,如:
const PAI = 3.1415926;
const BLUE_SPACE = "深圳市蓝星际公司";
"const"关键字,表示后面的符号是个常量,常量在运行时不会被改变。
注意,系统也提供了几个有用的常量:
_lineNo // 当前线路号, 整型, 从0开始
_bssFile // 本线路执行的脚本文件名, 字符串类型
true //逻辑真, 也就是整型1
false // 逻辑假, 也就是整型0
变量
Koodoo语言支持动态的变量,如:
i = 0; // i现在是整型0
i= "Space"; // i现在是字符串"Space"
i = 19.34; // i现在是双精度浮点型值为19.34
可以进行复杂的变量运算:
a = 23;
i1 = 99*88;
v = 10 - 8*2 + a*(i1-10);

朱东宁介绍

网名:bluesen,真名朱东宁。大学专业为物理学,曾任物理教师和光谱分析工程师。在大学时代曾学习APPLE II的BASIC语言,而后喜欢写程序,90年代初到深圳成为专业程序员,96年和朋友创建蓝星际公司至今,几乎每天都在写程序,常用C/C++。
早年做金融行业软件,近年来专注于语音平台系统软件开发,设计并实现了高级脚本语言Koodoo语言,Koodoo语言可以在大容量的线路上并发执行,如单机几十个电信E1线路即上千个并发话路,系统仍能稳定高效运行。在CTI(计算机电话语音集成)行业有14年的开发经验。
“业余喜欢阅读和写作。得意之作是在网上发表的技术文章“从历史的角度再论状态机”,曾被 中南大学教授在专业论文中引用。喜欢有技术含量的网络辩论,痛快,痛快。”
$firstVoiceSent
- 来自原声例句
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定
小调查
请问您想要如何调整此模块?

感谢您的反馈,我们会尽快进行适当修改!
进来说说原因吧 确定