东进语音卡公司DJD161A语音卡SetIndex()函数怎么用

VOIP&Research——东进D161A语音处理卡应用
什么是VOIP&&&
&&&&& VoIP是Voice over Internet
Protocol的缩写,指的是将模拟的声音讯号经过压缩与封包之后,以数据封包的形式在IP
网络的环境进行语音讯号的传输,通俗来说也就是互联网电话、网络电话或者简称IP电话的意思。VoIP技术是目前互联网应用领域的一个热门话题,成为全球互联网与电子商务十大趋势之一(eMarketer)。
VOIP的原理
VoIP的基本原理是:通过语音的压缩算法对语音数据编码进行压缩处理,然后把这些语音数据按 TCP/IP 标准进行打包,经过 IP
网络把数据包送至接收地,再把这些语音数据包串起来,经过解压处理后,恢复成原来的语音信号,从而达到由互联网传送语音的目的。 IP
电话的核心与关键设备是 IP 网关,它把各地区电话区号映射为相应的地区网关 IP
地址。这些信息存放在一个数据库中,数据接续处理软件将完成呼叫处理、数字语音打包、路由管理等功能。
如何实现长途电话
  在用户拨打长途电话时,网关根据电话区号数据库资料,确定相应网关的 IP 地址,并将此 IP 地址加入 IP
数据包中,同时选择最佳路由,以减少传输时延, IP 数据包经 Internet 到达目的地的网关。在一些 Internet
尚未延伸到或暂时未设立网关的地区,可设置路由,由最近的网关通过长途电话网转接,实现通信业务。
VOIP的优点
VoIP网络电话会成为将来的主流,技术的可控性、灵活性和经济性优势使网络电话可应用于许多场所。
随着科学技术的不断发展,语音卡被广泛地应用于商业软件中。本例实现了利用语音卡实现电话呼叫的功能。实例运行结果如图13.12所示。
图13.12 语音卡电话呼叫系统
本例采用东进公司开发的8路模拟语音卡,该卡采用灵活的模式化设计,可按需配置外线、内线两种模块。该语音卡可实现坐席、会议、FSK数据收发、语音合成等多种功能,并提供SDK开发工具包。
在安装完驱动程序后,相应的动态链接库(NewSig.dll和
Tc08a32.dll文件)会复制到Windows的系统目录下。在语音卡的开发过程中,主要通过调用NewSig.dll和Tc08a32.dll来实现相应的功能。下面介绍这两个动态库中主要使用的函数。
(1)LoadDRV函数
该函数用于加载动态链接库。
(2)FreeDRV函数
该函数用于关闭驱动程序。
(3)EnableCard函数
该函数用于初始化语音卡硬件,并为每个通道分配语音缓冲区。
(4)CheckValidCh函数
该函数检测在当前机器内可用的通道总数。
(5)CheckChType函数
该函数用于测试某个通道的类型。
(6)PUSH_PLAY函数
该函数用于维持文件录放音的持续进行,需在处理函数的大循环中调用。
(7)SetBusyPara函数
该函数用于设置要检测的挂机忙音的参数。
(8)RingDetect函数
该函数用于测试外线是否振铃或内线是否提机。
(9)OffHook函数
该函数用于外线提机。
(10)HangUp函数
该函数用于外线挂机。
(11)Sig_Init函数
该函数用于完成信号音检测的初始化工作。
(12)Sig_CheckBusy函数
清空忙音检测的缓冲区以及内部计数。
(13)Sig_ResetCheck函数
该函数用于清空忙音检测的缓冲区以及内部计数。
(14)Sig_StartDial函数
该函数用于拨打电话号码。开始某通道的呼出过程。该函数只是设置通道的呼出缓冲区,真正的呼出过程需要循环调用Sig_CheckDial函数来逐步完成。
(15)Sig_CheckDial函数
该函数用于检测呼出结果。
注意:在进行呼出结果检测之前必须调用函数StartSigCheck启动信号音采集过程,并且在进行呼出结果检测时,要循环调用FeedSigFunc函数维持信号音采集过程。
实现过程(1)新建一个项目。
(2)在Form1窗体中,主要添加两个Button控件,用于执行电话拨号和电话挂机,添加一个DataGridView控件,显示语音卡各通道及通道状态,添加Timer组件实现电话的呼出过程,添加一个TextBox控件,用于输入呼出电话号码。
(3)主要程序代码。
在窗体装载事件中,主要进行初始化语音卡驱动程序,并且检测通道总数及状态,为每一条通道分配语音缓冲区。代码如下:
&&&&&&& private void
Form1_Load(object sender, EventArgs e)
&&&&&&& {
&&&&&&&&&&&
//初始化驱动程序&&&&&&&&&&&
long load = DJ160API.LoadDRV();
&&&&&&&&&&&
//检测通道总数,并为每个通道分配语音缓冲区&&&&&&&&&&&
short wuseCh = DJ160API.CheckValidCh();
&&&&&&&&&&&
short wFileBufLen = 16 * 1024;
&&&&&&&&&&&
long card = DJ160API.EnableCard(wuseCh, wFileBufLen);
&&&&&&&&&&&
//设置表格通道的行数&&&&&&&&&&&
dataGridView1.RowCount = wuseCh;
&&&&&&&&&&&
//检测每个通道类型&&&&&&&&&&&
short chanelTpye = 0; //定义通道类型变量&&&&&&&&&&&
string strType = "";
&&&&&&&&&&&
for (short i = 0; i & wuseCh; i++)
&&&&&&&&&&&
&&&&&&&&&&&&&&&
chanelTpye = DJ160API.CheckChType(i);
&&&&&&&&&&&&&&&
dataGridView1[0, i].Value =
&&&&&&&&&&&&&&&
switch (chanelTpye)
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&
case 0:
&&&&&&&&&&&&&&&&&&&&&&&
strType = "内线";
&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&
case 1:
&&&&&&&&&&&&&&&&&&&&&&&
strType = "外线";
&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&
case 2:
&&&&&&&&&&&&&&&&&&&&&&&
strType = "悬空";
&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&
dataGridView1[1, i].Value = strT
&&&&&&&&&&&&&&&
dataGridView1[2, i].Value = "空闲";
&&&&&&&&&&&
&&&&&&& }
在DataGridView控件中选择一个外线空闲通道,单击【拨号】按钮,进行电话拨号,并且将拨号过程中的状态显示在相应的DataGirdView表格中。代码如下:
&&&&&&& private void
button1_Click(object sender, EventArgs e)
&&&&&&& {
&&&&&&&&&&&
short wuseCh = DJ160API.CheckValidCh();
&&&&&&&&&&&
short wFileBufLen = 16 * 1024;
&&&&&&&&&&&
long card = DJ160API.EnableCard(wuseCh, wFileBufLen);
&&&&&&&&&&&
DJ160API.Sig_Init(chanel);
&&&&&&&&&&&
//检查(外线)是否有振铃信号或(内线)是否有提机&&&&&&&&&&&
bool ring = DJ160API.RingDetect(chanel);
&&&&&&&&&&&
//外线提机&&&&&&&&&&&
DJ160API.OffHook(chanel);
&&&&&&&&&&&
byte[] ss =new byte[textBox1.Text.Length];
&&&&&&&&&&&
byte[] s ={ 0 };
&&&&&&&&&&&
for (int i = 0; i & textBox1.Text.L i++)
&&&&&&&&&&&
&&&&&&&&&&&&&&&
ss[i] = Convert.ToByte(textBox1.Text.Substring(i, 1));
&&&&&&&&&&&
&&&&&&&&&&&
DJ160API.Sig_StartDial(chanel, ss, s, 0);
&&&&&&&&&&&
timer1.Enabled =
&&&&&&&&&&&
dataGridView1[2, chanel].Value = "拨号中...";
&&&&&&&&&&&
dataGridView1[3, chanel].Value = textBox1.T
&&&&&&& }
单击【挂机】按钮,实现电话挂机功能。代码如下:
&&&&&&& private void
button2_Click(object sender, EventArgs e)
&&&&&&& {
&&&&&&&&&&&
DJ160API.HangUp(chanel);
&&&&&&&&&&&
DJ160API.Sig_ResetCheck(chanel);
&&&&&&&&&&&
DJ160API.StartSigCheck(chanel);
&&&&&&&&&&&
timer1.Enabled =
&&&&&&&&&&&
dataGridView1[2, chanel].Value = "空闲";
&&&&&&&&&&&
dataGridView1[3, chanel].Value = "";
&&&&&&& }
Sig_StartDial函数用于拨打电话号码。开始某通道的呼出过程。该函数只是设置通道的呼出缓冲区,真正的呼出过程需循环调用Sig_CheckDial函数来逐步完成。代码如下:
&&&&&&& private void
timer1_Tick(object sender, EventArgs e)
&&&&&&& {
&&&&&&&&&&&
DJ160API.Sig_CheckDial(chanel);
&&&&&&& }
单击DataGridView控件的相应行记录相应的通道号,代码如下:
&& private void dataGridView1_CellClick(object sender,
DataGridViewCellEventArgs e)
&&&&&&& {
&&&&&&&&&&&
chanel = (short)e.RowI
&&&&&&& }
参考资料:
完整的东进D161A板卡API函数类:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。&&1using&S &&2using&System.Collections.G &&3using&System.T &&4using&System.Runtime.InteropS &&5 &&6namespace&DJVoiceCard.Lib &&7{ &&8&&&&public&class&DJFunction &&9&&&&{ &10&&&&&&&&/**////&&summary& &11&&&&&&&&///&初始化东进七号信令中继语音卡的硬件 &12&&&&&&&&///&&/summary& &13&&&&&&&&///&&param&name=&sIncFileName&&INI系统配置文件名&/param& &14&&&&&&&&///&&param&name=&sVoiceIncFileName&&提示音对照表文件名,一般使用PROMPT.INI&/param& &15&&&&&&&&///&&returns&<span style="color: #,成功;其他:-12,在读取INI文件时错误; &16&&&&&&&&///&-17,打开驱动程序的设备文件时错误[驱动程序名为:DJPCI-东进七号信令中继语音卡,NT;DJPCI2K&东进七号信令中继语音卡,2000]; &17&&&&&&&&///&-18,检查硬件失败; &18&&&&&&&&///&-19,读取提示音文件时失败; &19&&&&&&&&///&&/returns& &20&&&&&&&&[DllImport(&Tce1_32.dll&,&CharSet&=&CharSet.Ansi)] &21&&&&&&&&public&static&extern&int&DJSys_EnableCard(StringBuilder&sIncFileName,&StringBuilder&sVoiceIncFileName); &22 &23&&&&&&&&/**////&&summary& &24&&&&&&&&///&结束所有中继语音卡的操作,&释放API所占用的资源,&复位中继语音卡的状态,&应该在程序结束前调用。 &25&&&&&&&&///&由于同DJSys_EnableCard类似的原因,当调用此文来自: 马开东博客
转载请注明出处 网址:
相关阅读:
来源:(微信/QQ:,微信公众号:makaidong-com) &&&&&& 欢迎分享本文,转载请保留出处!
&&&&&& 【原文阅读】:
上一篇:没有了
【相关文章】
每日最新文章
每日最热文章
本周最热文章
本月最热文章
本年最热文章
Powered by
Copyright &
, All Rights Reserved您在慧聪网上采购商品属于商业贸易行为。以上所展示的信息由卖家自行提供,内容的真实性、准确性和合法性由发布卖家负责,请意识到互联网交易中的风险是客观存在的。推荐使用,保障您的交易安全!
按字母分类 :
让慧聪网撮合专家为您解决采购难题
您采购的产品:
请输入采购产品
您的手机号码:
请输入手机号码
*采购产品:
请输入采购产品
*采购数量:
请输入采购数量
*采购截止日期:
请输入正确的手机号码
请输入验证码
*短信验证码:
<input id="valid_Code1" maxlength="6" placeholder="请输入验证码" name="VALIDCODE" class="codeInput" onkeyup="this.value=this.value.replace(/\D/g,'')" onkeypress="if(event.keyCode
57) event.returnValue =" type="text">
免费获取验证码
为了安全,请输入验证码,我们将优先处理您的需求!
请输入验证码
发送成功!
慧聪已收到您的需求,我们会尽快通知卖家联系您,同时会派出采购专员1对1为您提供服务,请您耐心等待!
电话:010-7 &&
联系人:葛连杰&
公司名称:北京启泰天成科技有限公司
请输入正确的手机号码
请输入验证码
*短信验证码:
免费获取验证码
为了安全,请输入验证码,我们将优先处理您的需求!
请输入验证码
每一份需求都会在24小时内得到行业多家优质供应商报价。
每一份需求的报价供应商工商信用资质都会经过专业人员检验,交易安全有保障。
免费咨询行业专家
免费咨询行业专家
服务主题:
筛选发货地
验证供应商真伪
提供其他优质供应商
采购数量:
用途描述:
成功加入采购单!
当前采购单共3种货品
成功加入采购单!
当前采购单共3种货品
不能购买自己发布的产品!
选中货品中含失效货品,无法完成下单,可能是:
1.货品库存不足
2.货品已过期,或被卖家删除
3.货品不支持在线交易
卖家暂时不在线,留下联系方式,卖家会主动联系您
*我要采购:
我的姓名:
留言内容:您的访问出错了(404错误)
很抱歉,您要访问的页面不存在。
1、请检查您输入的地址是否正确。
进行查找。
3、感谢您使用本站,1秒后自动跳转}

我要回帖

更多关于 东进语音卡官网 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信