蓝星际语音平台 问与答

一、蓝星际语音平台

1. 蓝星际语音平台能做什么?

答:蓝星际语音平台是一个强大的语音应用开发工具和运行环境。同时,它又十分简单,开发和运行都很简单。它支持功能强大语法简单的脚本语言,可以应用在自动语音应答,自动外呼,短消息收发,语音信息,呼叫中心等各个方面,它支持各种类型的数据库系统,支持多种方法和后台进行通讯。它对应用开发人员有很好的支持,在开发平台上可以进行方便的调试。


2. 开发平台和运行平台有什么不同?

答:开发平台是专门用来测试脚本的,可以对流程进行调试,如设置断点,单步执行,查看变量等等。

开发平台只能在一条线路上运行。

运行平台是用户的最终运行环境,可以支持全部线路,而且提供了一个全面的运行监控环境。

运行平台线路间可以相互通讯,因而可以构造更复杂的应用,运行速度也比开发平台更快。

开发平台是免费的,可以随时到我们的网站上下载最新版本。运行平台需要购买许可。


3. 脚本要不要先用开发平台编译成二进制文件,然后再放到运行平台上去运行?

答:不需要。

无论是运行平台还是开发平台,都是直接加载脚本源代码,即使编译到内存运行。

可以把开发平台看成是1条线的运行环境。因为是免费的,可以利用开发平台来构造个人的桌面应用或短信应用。


4. 作为一个应用开发工程师,我需要哪些知识?

答:对于简单的应用,其实你只需要非常一般的编程知识,而大部分应用的确是很简单的,比如,你需要使你的 电话处于自动应答,当有电话打入时,播放一段语音:

   WaitRing(1);  // 等待来电
   Play("welcome.wav");  // 播放语音文件"welcome.wav"
   Hangup();  // 挂断
	

这简单3条语句构成的脚本,就可以让你的电话成为自动应答机。

当然,面向商用用户的应用要复杂一些,如果你学习过C或VB或Pascal等计算机语言,编制脚本会变得十分容易。


5. 蓝星际语音平台支持哪些硬件?

答:目前支持下列硬件:


6. 下载了开发平台后,怎么运行?

答:可按下列步骤:


7. 我暂时没有语音卡,能够测试脚本吗?

答:可以。只要你的电脑上安装了声卡,声卡能够播放声音就可以了。请下载TAPI3的版本, 要求你的电脑必须是windows 2000或windows XP。这时脚本运行在虚拟线路上,放音函数将自动在声卡上播放, 你还可以在“模拟按键”的输入框来响应收码函数,甚至还能够打断正在播放的语音。


8. 蓝星际语音平台支持什么格式的语音文件?

答:对于TAPI3版本的语音Modem卡通道,支持单声道16位线性PCM格式的wav文件;

对于东进和三汇语音卡的语音通道,支持单声道8位A率格式的wav文件或原始语音数据文件;

对于Dialogic卡的语音通道,支持单声道8位A率格式的wav文件或原始语音数据文件,以及Dialogic ADPCM格式的VOX文件;

对于虚拟线路通道,支持上面讲到的任何一种格式的文件。


9. 我想用TTS来播放文字,可以吗?

答:当然可以。对于简单的数字、数量和号码,系统函数中提供了PlayNumber()来播放。对于复杂的句子,目前有下面几种方法来播放:


二、Koodoo语言

1. 自定义函数怎么用?

答:自定义函数可以降低流程的复杂性,是对业务流程的封装和抽象。

在自定义函数内可以使用局部变量,可以通过参数来传递变量。反复调用的函数也是代码重用的重要方面。

Koodoo语言还提供了线路间函数调用的方法,可以跨线路提供服务。


2. 语音平台和后台数据库之间是如何交互的?

答:蓝星际语音平台提供了一组数据库操作的系统函数,简单、灵活,但功能强大。

该组函数允许用两种方式连接后台的数据库系统,一是ADO方式,微软在windows2000或以上版本已经在操作系统内安装了ADO驱动,所以部署比较简单;另外一种方式是数据库厂商原始API,因为语音平台会自动调用数据库厂商的底层API,所以速度很快,但必须安装数据库的客户端。

上述两种方式,访问数据库的函数都是一样的,也就是接口保持了一致。


3. 怎么访问MySQL数据?

答:可以直接使用MySQL原始API来访问,但注意必须把libmySQL.dll拷贝到工作目录。


4. 在语音平台的系统函数中怎么没有看到执行存储过程的函数?

答:蓝星际语音平台所提供的数据库访问接口是简单的,一致的。

无论是ADO方式还是数据库厂商原始API方式,DbExec()函数既可以传入标准的SQL语句,如select、update、delete等,也可以传入存储过程语句,如"exec sp_help"等等。可以参考相关的例子。


5. 应用很复杂,脚本很长,怎么办?

答:建议分成多个脚本,如某个外线应用,既有IVR,也有外呼,可以使用下列脚本:

只需要在主脚本的前面加上下列文件包含语句:

#include "Cfg.bss"
#include "IvrProc.bss"
#include "DialProc.bss"
	

在开发环境或运行平台指定运行主脚本Main.bss就可以了。


6. 运行之中有些参数想让最终用户去配置,有什么好办法?

答:可以将需要变化的参数专门抽取出来,放置在一个单独的文件里面,供其它文件包含就可以了,如:

配置文件名:Cfg.bss,内容如下:

const TIME_OUT = 20;  // 拨号超时的秒数
const LOOP_NUM = 5;   // 循环的次数
const IP_PRE_CODE = "17909";  // IP电话的前缀
	

等等。其实该文件里面的内容就是普通的Koodoo语句,通常为常量定义语句,当然也可以增加判断逻辑。

当然,也可以把配置项放到数据库里面,然后脚本到数据库里面读取;也可以放到一个外部的.ini文件里面,用文件操作函数去读取。

无论如何,直接包含的方式是最简单,也是最直观的。


7. 如何记录日志?

答:记录文本日志是很简单的,系统提供了一个函数TextFileAppend(sFile, sText, isCR);可以直接调用。

当然,你也可以封装成一个自定义函数,格式化写入的内容,如加上日期时间,线路号等,使记录的日志更加直观。


8. 外部动态库有什么用处?

答:外部动态库(DLL)是对蓝星际语音平台的扩展,在外部动态库中编写的函数可以供Koodoo脚本调用。

在下列场合可能需要开发外部DLL:

当然,外部动态库的编写要遵循一定的规范,请参考文档《外部动态连接库编写规范(PDF)》


9. 如果外部动态库要返回一个列表,里面包含很多数据,怎么办?

答:Koodoo语言和外部动态库交互只能传入普通变量,不允许传入数组。如果要返回一组数据,可以将该数组封装到格式化的字符串里,如逗号分隔或空格分隔或竖线分隔,赋值到Koodoo语言的参数变量中,然后在Koodoo语言脚本里面通过调用函数AnlyStr(s, ch, m);将字符串分解到数组。

脚本中可以直接通过下标访问数组,也可以用for in循环遍历数组,都是很简单的。


10. 什么是好的Koodoo编程风格?

答:Koodoo是一种高级语言,所有现代高级语言的好的编程风格都可以应用到Koodoo语言中。

当然,所谓“风格”向来都是见仁见智,下面写几条我喜欢的风格:

从大的开发过程提出三点建议:


三、蓝星际呼叫中心

1. 呼叫中心和语音平台是什么关系?

答:从本质上讲,蓝星际呼叫中心是语音平台的一个应用,当然是复杂而且重要的应用。

从呼叫中心的角度来看,语音平台及其运行的各脚本组件构成了CTI服务器,包括:

蓝星际呼叫中心的鲜明特点是,所有的CTI服务器组件均由Koodoo脚本写成,因而具有开源的性质,集成商或客户可以自行修改;

其次,蓝星际智能座席客户端非常容易和业务系统集成。 详细内容请参见:完美演绎.蓝星际呼叫中心平台


2. 蓝星际座席软件有什么特点?

答:如上所述,蓝星际智能座席客户端非常容易和业务系统集成,其采用的总体原则是:软电话和业务系统完全分离。

详细内容请参见:《呼叫中心平台技术白皮书》第五章 座席业务集成:如此简单