文件名称:C#语音卡实例
文件大小:17KB
文件格式:TXT
更新时间:2015-11-29 07:57:47
C#
最近,正在忙基于三汇语音卡的呼叫中心的项目,真的好迷糊啊!公司在呼叫中心这方面的研发是空白,所有的资料都得从零开始收集,分析,上网查找一些前辈们的技术资料,在这里备个份,好好学习一下! --------------------------------------------------------------------------------------------------------------------- 随着语音技术的不断发展,语音卡在通信行业应用非常广泛。本节通过几个典型实例介绍语音卡程序的开发。 说明-1 实例428 语音卡电话呼叫系统 实例说明 随着科学技术的不断发展,语音卡被广泛地应用于商业软件中。本例实现了利用语音卡实现电话呼叫的功能。实例运行结果如图13.12所示。 说明-2 技术要点 本例采用东进公司开发的8路模拟语音卡,该卡采用灵活的模式化设计,可按需配置外线、内线两种模块。该语音卡可实现坐席、会议、FSK数据收发、语音合成等多种功能,并提供SDK开发工具包。 在安装完驱动程序后,相应的动态链接库(NewSig.dll和Tc08a32.dll文件)会复制到Windows的系统目录下。在语音卡的开发过程中,主要通过调用NewSig.dll和Tc08a32.dll来实现相应的功能。下面介绍这两个动态库中的主要使用函数。 (1)LoadDRV函数 该函数用于加载动态链接库。语法如下: [DllImport("Tc08a32.dll", CharSet = CharSet.Auto)] public static extern long LoadDRV(); 返回值:返回值为0表示成功;?1表示打开设备驱动程序错误。?2表示在读取TC08A-V.INI文件时发生错误;?3表示INI文件的设置与实际的硬件不一致时发生错误。 (2)FreeDRV函数 该函数用于关闭驱动程序。语法如下: [DllImport("Tc08a32.dll", CharSet = CharSet.Auto)] public static extern long EnableCard(short wusedCh, short wFileBufLen); (3)EnableCard函数 该函数用于初始化语音卡硬件,并为每个通道分配语音缓冲区。语法如下: [DllImport("Tc08a32.dll", CharSet = CharSet.Auto)] public static extern long EnableCard(short wusedCh, short wFileBufLen); 参数说明如下。 l wUsedCh:标识通道数量。 l WFileBufLen:标识分配的缓冲区大小。 (4)CheckValidCh函数 该函数检测在当前机器内可用的通道总数。语法如下: [DllImport("Tc08a32.dll", CharSet = CharSet.Auto)] public static extern short CheckValidCh(); l 返回值:通道总数量。 (5)CheckChType函数 该函数用于测试某个通道的类型。语法如下: [DllImport("Tc08a32.dll", CharSet = CharSet.Auto)] public static extern short CheckChType(short wChnlNo); 参数说明如下。 l wChnlNo:标识通道号。 l 返回值:为0表示内线;为1表示外线;为2表示悬空。 (6)PUSH_PLAY函数 该函数用于维持文件录放音的持续进行,需在处理函数的大循环中调用。语法如下: [DllImport("Tc08a32.dll", CharSet = CharSet.Auto)] public static extern void PUSH_PLAY(); (7)SetBusyPara函数 该函数用于设置要检测的挂机忙音的参数。语法如下: [DllImport("Tc08a32.dll", CharSet = CharSet.Auto)] public static extern void SetBusyPara(short BusyLen); 参数说明: l BusyLen:标识忙音的时间长度,单位为毫秒。 (8)RingDetect函数 该函数用于测试外线是否振铃或内线是否提机。语法如下: [DllImport("Tc08a32.dll", CharSet = CharSet.Auto)] public static extern bool RingDetect(short wChnlNo); 参数说明如下。