嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
说明:visual C#编写实现语音卡电话呼叫系统,本实例使用了语音卡中的newsig.dll和tc08a32.dll组件,运行前需将其拷贝到Debug文件夹中。本语音卡程序展示了一个完整的电话来电的处理过程,比如来电接听、响铃、未接电话、遇忙转换等,另外也演示了如何按数字键盘后在屏幕上显示拨打的号码,检测通道总数,并为每个通道分配语音缓冲区,初始化语音卡硬件,作者有版权,仅供学习与参考。
private void timer1_Tick(object sender, EventArgs e)
{
//维持断续振铃及信号音的函数
DJ160API.PUSH_PLAY();
DJ160API.FeedSigFunc();
for (int i = 0; i < m_Chanels; i )
{
switch (Lines[i].State)
{
case CHANNEL_STATE.CH_DIAL:
{
label2.Text = "拨号中...";
//检测某路DTMF发送是否结束,为1,以发送完毕,可以开始信号音检测
if (DJ160API.CheckSendEnd(i) == 1)
{
DJ160API.StartSigCheck(i);
Lines[i].State = CHANNEL_STATE.CH_CHECKSIG;
}
break;
}
case CHANNEL_STATE.CH_CHECKSIG:
{
short tt = DJ160API.Sig_CheckDial(i);
if (tt == S_BUSY)
{
Lines[i].State = CHANNEL_STATE.CH_BUSY;//对方占线
}
else if (tt == S_CONNECT)
{
Lines[i].State = CHANNEL_STATE.CH_Connect;//已连接
}
else if (tt == S_NOSIGNAL)
{
Lines[i].State = CHANNEL_STATE.CH_NOSIGNAL;//没有信号
}
else if (tt == S_NOBODY)
{
Lines[i].State = CHANNEL_STATE.CH_NOBODY;//无人接听
}
else if (tt == S_NODIALTONE)
{
Lines[i].State = CHANNEL_STATE.CH_NODIALTONE;//没有信号音
}
break;
}
case CHANNEL_STATE.CH_NODIALTONE: //没有信号音
pictureBox11_Click(sender, e);
break;
case CHANNEL_STATE.CH_NOSIGNAL: //没有信号
pictureBox11_Click(sender, e);
break;
case CHANNEL_STATE.CH_BUSY: //对方占线(检测到忙音)
{
pictureBox11_Click(sender, e);
break;
}
case CHANNEL_STATE.CH_Connect:
label2.Text = "已连接";
break;
case CHANNEL_STATE.CH_NOBODY:
label2.Text = "无人接听";
pictureBox11_Click(sender, e);
break;
}
}
}