📄 dbtestview.cpp
字号:
{
TW_PlayFileRest(i);
TW_PlayFileRest(3);
}
break;
}
break;
case WS_WAITFORPASSWORD : //等待密码状态
Sig = TW_CheckSignal (i, &SigCount, &SigLen);
if ((Sig == SIG_BUSY1 || Sig == SIG_BUSY2) && SigCount >= 3) //忙音
{
sprintf (ChMess[i], "通道%2d (外线) : 等待口令期间用户挂机!", i);
ChPaint (i);
TW_HangUpCtrl (i);
CS[i] = WS_HANGUP;
}
else if((dtmf=TW_GetDTMFChar (i)) != -1) //用户有按键
{
password[passwordpointer++]=dtmf;
if(passwordpointer>=4) //输入键达到4个
{
password[4]='\0';
if(strcmp(password,truepassword1)==0) //选择放音文件密码正确
{
strcpy(filename[i],choosecommand); //播放选择播放命令文件
TW_StartPlayFile(i , filename[i] , 0 , LONG_MAX);
TW_StartPlayFile (3, filename[i], 0 , LONG_MAX) ;
sprintf(ChMess[i],"通道%2d (外线) : 正在选择相应留言或投诉信息文件.",i);
ChPaint(i);
inputchar[i]=CHOOSECOMMAND;
CS[i]=WS_PLAY;
}
else if(strcmp(password,truepassword2)==0)
{
sprintf(ChMess[i],"通道%2d (外线) : 正在选择录制相应信息文件.",i);
ChPaint(i);
strcpy(filename[i],recordinf); //播放选择录音文件类型
TW_StartPlayFile (3, filename[i], 0 , LONG_MAX) ; //放音模块放音
TW_StartPlayFile(i , filename[i] , 0 , LONG_MAX);
inputchar[i]=RECORDINF;
CS[i]=WS_PLAY;
}
else
{
sprintf(ChMess[i],"通道%2d (外线): 输入口令错,计算机自动挂机!",i);
ChPaint(i);
TW_HangUpCtrl (i);
CS[i] = WS_HANGUP;
}
}
}
else if (TW_TimerElapsed (i) < 0) //等待时间到
{
sprintf (ChMess[i], "通道%2d (外线) : 等待时间超时,计算机自动挂机.", i);
ChPaint (i);
TW_HangUpCtrl (i);
CS[i] = WS_HANGUP;
}
break;
case WS_WAITFORFILE:
//查询相应的文件名区,若不为空时播放文件且
//取出第一个文件的指针开始放音
if(Key=='*')
{
if(m_pSet->m_type=='0')
{
if(m_pSet->m_FileName=="")
{
sprintf(ChMess[i],"通道%2d (外线) : 找到留言记录所对应的语音文件为空!",i);
ChPaint(i);
}
else
{
strcpy(filename[i],m_pSet->m_FileName);
TW_StartPlayFile(i,filename[i],0,LONG_MAX);
TW_StartPlayFile (3, filename[i], 0 , LONG_MAX) ; //放音模块放音
while(TW_PlayFileRest(i)>0&&TW_PlayFileRest(3)>0) ;
}
}
else
{
if(m_pSet->IsBOF())
{
sprintf(ChMess[i],"通道%2d (外线) : 没有找到相应类型的留言记录.",i);
ChPaint(i);
}
else
{
m_pSet->MovePrev();
break;
}
}
}
else if(Key=='#')
{
if(m_pSet->m_type=='1'||m_pSet->m_type=='2'||m_pSet->m_type=='3')
{
if(m_pSet->m_FileName=="")
{
sprintf(ChMess[i],"通道%2d (外线) : 找到投诉记录所对应的语音文件为空!",i);
ChPaint(i);
}
else
{
strcpy(filename[i],m_pSet->m_FileName);
TW_StartPlayFile(i,filename[i],0,LONG_MAX);
TW_StartPlayFile (3, filename[i], 0 , LONG_MAX) ; //放音模块放音
while(TW_PlayFileRest(i)>0&&TW_PlayFileRest(3)>0) ;
}
}
else
{
if(!m_pSet->IsBOF())
{
m_pSet->MovePrev();
break;
}
else
{
sprintf(ChMess[i],"通道%2d (外线) : 没有找到相应类型的投诉记录!",i);
ChPaint(i);
}
}
}
else
{
if(!m_pSet->IsEOF())
{
if(Key==m_pSet->m_type)
{
if(m_pSet->m_FileName=="")
{
sprintf(ChMess[i],"通道%2d (外线) : 找到记录所对应的语音文件为空!",i);
ChPaint(i);
}
else
{
strcpy(filename[i],m_pSet->m_FileName);
TW_StartPlayFile(i,filename[i],0,LONG_MAX);
TW_StartPlayFile (3, filename[i], 0 , LONG_MAX) ; //放音模块放音
while(TW_PlayFileRest(i)>0&&TW_PlayFileRest(3)>0) ;
}
}
m_pSet->MoveNext();
break;
}
else
{
sprintf(ChMess[i],"通道%d (外线) : 查询放音全部结束!",i);
ChPaint(i);
TW_FlushDTMF(i);
strcpy(filename[i],welcomfile);
TW_StartPlayFile(i,filename[i],0,LONG_MAX);
TW_StartPlayFile (3, filename[i], 0 , LONG_MAX) ;
CS[i]=WS_PLAY;
inputchar[i]=START;
break;
}
}
sprintf(ChMess[i],"通道%d (外线) : 查询放音全部结束!",i);
ChPaint(i);
TW_FlushDTMF(i);
strcpy(filename[i],welcomfile);
TW_StartPlayFile(i,filename[i],0,LONG_MAX);
TW_StartPlayFile (3, filename[i], 0 , LONG_MAX) ;
CS[i]=WS_PLAY;
inputchar[i]=START;
break;
case WS_BUSY :
if (!TW_OffHookDetect (2))
{
sprintf (ChMess[2], "通道%2d (内线) : 内线已在忙音等待下挂机.", i);
ChPaint (2);
TW_GenerateSignal (2, SIG_SILENCE);
CS[2] = WS_HANGUP;
}
break;
default:
break;
}
}
// 内线模块实现如下
void CDBtestView::InternalChannels(WORD i)
{
WORD Sig;
DWORD SigCount, SigLen;
int dtmf,j ;
//char ch;
//int point=1,result;
// long fail;
switch (CS[i]) {
case WS_DEFAULT:
TW_StartTimer(2,30);
if(TW_OffHookDetect(2))
{
TW_PowerCtrl(2);
if(TW_StartPlayFile(2,ad.FileName,0,LONG_MAX)==0)
{
sprintf(ChMess[2],"通道%2d (内线) : 相应投诉语音是空文件或不存在!",i);
ChPaint(2);
strcpy(filename[i],welcomfile);
TW_StartPlayFile(2,filename[i],0,LONG_MAX);
TW_StartPlayFile (3, filename[i], 0 , LONG_MAX) ; //放音模块放音
inputchar[2]=START;
CS[2]=WS_PLAY;
}
else
{
TW_StartPlayFile (2, ad.FileName, 0 , LONG_MAX) ; //内线模块正在放音
TW_StartPlayFile(3,ad.FileName,0,LONG_MAX);
for(j=0;j<3;j++)
{
while(TW_PlayFileRest(2)>0&&TW_PlayFileRest(3)>0)
{
sprintf(ChMess[2],"通道%2d (内线) : 正在播放相应投诉语音记录... ",i);
ChPaint(2);
TW_PlayFileRest(2);
TW_PlayFileRest(3);
}
}
sprintf(ChMess[2],"通道%2d (内线) : 计算机已完成放音,结束放音...",i);
ChPaint(2);
TW_GenerateSignal (2, SIG_BUSY1);
CS[i] = WS_BUSY;
}
}
else if (TW_TimerElapsed (2) < 0)
{
sprintf (ChMess[2], "通道%2d (内线) : 等待时间超时,自动停止振玲.", i);
ChPaint (2);
TW_PowerCtrl(2);
CS[i]=WS_HANGUP;
}
break;
case WS_HANGUP :
if (TW_OffHookDetect (i))
{
sprintf (ChMess[i], "通道%2d (内线) : 有电话摘机.", i);
ChPaint (i);
TW_FlushDTMF (i);
inputchar[i]=START;
strcpy(filename[i],welcomfile);//播放初始放音文件
if (TW_StartPlayFile (i, filename[i] , 0 , LONG_MAX) == -1)
{
sprintf (ChMess[i], " 通道%d (内线) : 初始放音失败.", i);
ChPaint (i);
TW_StartTimer (i, 10);
CS[i] = WS_TIMER;
}
else
{
TW_StartPlayFile (3, filename[i], 0 , LONG_MAX) ; //放音模块放音
sprintf (ChMess[i], "通道%2d (内线) : 正在播放提示音...", i);
ChPaint (i);
CS[i] = WS_PLAY;
}
}
break;
case WS_PLAY :
//CheckDtmf (i);
if((dtmf=TW_GetDTMFChar (i)) != -1)
{
TW_StopPlayFile(i);
/*************在初使状态时按键***************/
if(inputchar[i]==START)
{
switch (dtmf)//根据按键不同转入不同功能
{
// case '1' ://进入投诉功能
// inputchar[i]=APPEAL;
// strcpy(filename[i] , chooseappeal);
// break;
// case '2' ://进入留言功能
// inputchar[i]=LEAVEWORD;
// strcpy(filename[i] , leaveword);
// break;
case '3' ://进入查询功能
inputchar[i]=INQUIRE;
strcpy(filename[i] , chooseinf);
break;
case '0' ://进入领导功能
inputchar[i]=PARTICULAR;
TW_FlushDTMF(i);
strcpy(filename[i] , particular);
break;
case '*': //进入呼出功能
CS[i]=WS_DIALOUT;
strcpy(filename[i],dialout);
break;
default:
strcpy(filename[i] , welcomfile);
break;
}
TW_StartPlayFile(i , filename[i] , 0 , LONG_MAX);
TW_StartPlayFile(3, filename[i], 0 , LONG_MAX) ; //放音模块放音
}
/**************在播放选择投诉或留言提示过程中按键***********/
/* else if( inputchar[i] == APPEAL || inputchar[i] == LEAVEWORD)
{
switch (dtmf)
{
case '1':
case '2':
case '3':
if(inputchar[i]==LEAVEWORD) dtmf='0';
filenamestr=GetFileName(dtmf,i);
strcpy(filename[i],filenamestr);
fail=TW_StartRecordFile( i , filename[i] , 0 , LONG_MAX);
if( fail==-1)
{
MessageBox("开始录音失败!","错误",MB_ICONSTOP);
strcpy(filename[i],welcomfile);
TW_StartPlayFile(i,filename[i],0,LONG_MAX);
CS[i]=WS_PLAY;
inputchar[i]=START;
}
else
CS[i]=WS_RECORD;
break;
default:
if(inputchar[i]==LEAVEWORD)
{
filenamestr=GetFileName('0',i);
strcpy(filename[i],filenamestr);
fail=TW_StartRecordFile(i,filename[i],0,LONG_MAX);
if (fail==-1)
{
MessageBox("开始录音失败!","错误",MB_ICONQUESTION);
strcpy(filename[i],welcomfile);
TW_StartPlayFile(i,filename[i],0,LONG_MAX);
CS[i]=WS_PLAY;
inputchar[i]=START;
}
else
CS[i]=WS_RECORD;
}
else
{
strcpy(filename[i],welcomfile);
inputchar[i]=START;
TW_StartPlayFile( i , filename[i] , 0 , LONG_MAX);
}
break;
}
} */
else if(inputchar[i]==INQUIRE)//进入查询功能
{
switch (dtmf)
{
case '1':
strcpy(filename[i],INFORMATION1);
CS[i]=WS_PLAYINF;
break;
case '2':
strcpy(filename[i],INFORMATION2);
CS[i]=WS_PLAYINF;
break;
case '3':
strcpy(filename[i],INFORMATION3);
CS[i]=WS_PLAYINF;
break;
default:
strcpy(filename[i],chooseinf);
break;
}
TW_StartPlayFile(i , filename[i] , 0 , LONG_MAX);
TW_StartPlayFile(3, filename[i], 0 , LONG_MAX) ; //放音模块放音
}
else if(inputchar[i]==PARTICULAR) //进入特殊功能输入密码
{
passwordpointer=0;
password[passwordpointer++]=dtmf;
TW_StartTimer(i,15);
CS[i]=WS_WAITFORPASSWORD;
}
else if(inputchar[i]==CHOOSECOMMAND)//正在播放选择放音文件时有按键则停止放音
{
//将放音要求送入放音队列并等待
Key=dtmf;
if((Key=='*'||Key=='#')&&!(m_pSet->IsEOF()))
m_pSet->MoveLast();
else if(!m_pSet->IsBOF())
m_pSet->MoveFirst();
CS[i]=WS_WAITFORFILE;
}
else if(inputchar[i]==RECORDINF)//正在选择录制信息文件时有按键则进入相应录音状态
{
switch (dtmf)
{
case '1':
TW_StartRecordFile(i , INFORMATION1 , 0 , LONG_MAX);
sprintf(ChMess[i],"通道%2d (内线) : 正在录制信息文件1...",i);
ChPaint(i);
for(j=0;j<30000;j++) ;
CS[i]=WS_RECORD;
break;
case '2':
TW_StartRecordFile(i , INFORMATION2 , 0 , LONG_MAX);
sprintf(ChMess[i],"通道%2d (内线) : 正在录制信息文件2...",i);
ChPaint(i);
for(j=0;j<30000;j++);
CS[i]=WS_RECORD;
break;
case '3':
TW_StartRecordFile(i , INFORMATION3 , 0 , LONG_MAX);
sprintf(ChMess[i],"通道%2d (内线) : 正在录制信息文件3...",i);
ChPaint(i);
for(j=0;j<30000;j++);
CS[i]=WS_RECORD;
break;
default :
sprintf(ChMess[i],"通道%2d (内线) : 选择录制文件的类型错!",i);
ChPaint(i);
strcpy(filename[i],welcomfile);
TW_StartPlayFile(i,filename[i],0,LONG_MAX);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -