网络通信 频道

TurboWay电话卡的语音服务系统编程(2)

2、当用户按下2键时,会进入相应的留言类型中。这时计算机会提示进行留言的各种信息类型和相应类型的用户按键(0到9)。

例如:

用户按0到9中任一键后,便可进行留言并同时录制留言信息。留言完毕后,可按任一键结束留言并转入初始欢迎的放音文件。

部分代码实现如下:

……(前面代码实现部分省略掉)

else if( inputchar[i] == APPEAL || inputchar[i] == LEAVEWORD)

{

switch (dtmf)

{

case ’1’:

case ’2’:

case ’3’:

case ’4’:

……(此投诉部分代码省略掉)

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);

TW_StartPlayFile (3, 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);

TW_StartPlayFile (3, filename[i], 0 , LONG_MAX) ; //放音模块开始播放

}

break;

}

……(后面代码实现部分省略掉)

3、当用户按下3键时,会进入相应的信息查询(如:水费,电费,气费)中,这时计算机会提示相对应信息查询的按键。信息播放完成后,系统会自动转入初始欢迎的放音文件。

例如:

按1键会播放水费信息。

按2键会播放电费信息。

按3键会播放气费信息。

部分代码实现如下:

……(前面代码实现部分省略掉)

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) ; //放音模块

while(TW_PlayFileRest(i)>0&&TW_PlayFileRest(3)>0);

}

……(后面代码实现部分省略掉)

4、当用户按下0键时,会进入特殊功能(领导使用)中。此功能会提示输入相应密码的信息,密码正确后可以查询用户留言和投诉信息及可录制3键中的信息文件(水费,电费,气费)。

例如:

当输入密码为1999时,会提示查询留言和投诉类型的相应按键(0到3)。按0键查询留言信息,按1到3键分别查询1到3类的投诉信息。(按*键可查询到最近的留言信息,按#键可查询到最近的投诉信息。)

当输入密码为2000时,会提示录制信息文件(水费,电费,气费) 的相应按键,录音完成后按任一键结束录音。否则,当输入密码不正确或等待15秒后仍未输入密码时,进行 自动挂机。

部分代码实现如下:

……(前面代码实现部分省略掉)

else if(inputchar[i]==PARTICULAR) //进入特殊功能输入密码

{

passwordpointer=0;

password[passwordpointer++]=dtmf;

TW_StartTimer(i,30);

CS[i]=WS_WAITFORPASSWORD;

}

case WS_WAITFORPASSWORD

……(后面部分代码实现省略掉)


以上语音服务系统的具体代码实现及其它部分功能(如内线语音服务等),请在下载实例代码后,参看源码及其文档及可。

 

转载地址:http://www.voipchina.cn/technology/2004-03-24/36851.shtml

0
相关文章