📄 c_trkin.c
字号:
break;
default:
{
error_chuli(user_num);//出错处理
}
break;
}
audio_dtmf_resource[user_e1[user_num].dtmf].buf = IDLE;
}
}
break;
case REGISTER_NO://用户选择私聊而没有注册
{
clr_duan(user_num);
play_one(user_num,USER_SEX_DUAN);
user_e1[user_num].user_state = USER_SEX;//提示输入性别
user_e1[user_num].user_index = 0;
}
break;
case SELECT_TYPE://选择共聊或私聊
{
if(user_select != IDLE)//用户按键了
{
if(user_monitor_num == user_num)//往后台回应监视信息
{
command(1,0,user_num,USER_PRESS_SIGNAL,user_select,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE);
}
switch(user_select)
{
case 1://情感交友私人聊天室
{
if(user_e1[user_num].first_select == IDLE)
{
user_e1[user_num].first_select = PRIVATE_FEELING;
}
user_e1[user_num].chat_type = PRIVATE_FEELING;
command(5,0,user_num,1,user_e1[user_num].telephone[0],user_e1[user_num].telephone[1],user_e1[user_num].telephone[2],user_e1[user_num].telephone[3],user_e1[user_num].telephone[4],user_e1[user_num].telephone[5],IDLE,IDLE,IDLE,IDLE,IDLE,IDLE);
audio_stop(user_e1[user_num].dtmf);//停止当前操作
user_e1[user_num].user_state = IDLE;//提示输入性别
}
break;
case 2://情感交友公共聊天室
{
if(user_e1[user_num].first_select == IDLE)
{
user_e1[user_num].first_select = COMMON_FEELING;
}
audio_stop(user_e1[user_num].dtmf);//停止当前操作
audio_dtmf_resource[user_e1[user_num].dtmf].auto_flag = LEISURE;//清自动放音标志
clr_duan(user_num);
play_one(user_num,FEELING_COMMON);
user_e1[user_num].chat_type = COMMON_FEELING;
user_e1[user_num].user_state = JUDGE_USER;//转到聊天室人数判断
}
break;
default:
{
error_chuli(user_num);//出错处理
}
break;
}
audio_dtmf_resource[user_e1[user_num].dtmf].buf = IDLE;
}
}
break;
case USER_SEX://等待用户输入性别
{
if(user_select != IDLE)
{
if(user_monitor_num == user_num)//往后台回应监视信息
{
command(1,0,user_num,USER_PRESS_SIGNAL,user_select,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE);
}
switch(user_select)
{
case 1://男
case 2://女
{
audio_stop(user_e1[user_num].dtmf);//停止当前操作
clr_duan(user_num);
if(user_select == 1)
{
user_e1[user_num].user_sex = MAN;
}
else
{
user_e1[user_num].user_sex = WOMAN;
}
play_one(user_num,USER_AGE_DUAN);
user_e1[user_num].user_state = USER_AGE;//提示输入年龄
user_e1[user_num].user_index = 0;
}
break;
default://错误的输入
{
error_chuli(user_num);
}
break;
}
audio_dtmf_resource[user_e1[user_num].dtmf].buf = IDLE;
}
}
break;
case USER_AGE://等待用户输入年龄
{
if(user_select != IDLE)
{
if(user_monitor_num == user_num)//往后台回应监视信息
{
command(1,0,user_num,USER_PRESS_SIGNAL,user_select,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE);
}
if(user_select < 10)
{
if(user_e1[user_num].user_index == 0)
{
audio_stop(user_e1[user_num].dtmf);//停止当前操作
user_e1[user_num].user_age = user_select * 10;
user_e1[user_num].user_index++;
}
else
{
user_e1[user_num].user_age = user_e1[user_num].user_age + (user_select & 0x0f);
clr_duan(user_num);
audio_dtmf_resource[user_e1[user_num].dtmf].auto_flag = LEISURE;//清自动放音标志
command(5,2,user_num,0,user_e1[user_num].user_sex,user_e1[user_num].user_age,user_e1[user_num].telephone[0],user_e1[user_num].telephone[1],user_e1[user_num].telephone[2],user_e1[user_num].telephone[3],user_e1[user_num].telephone[4],user_e1[user_num].telephone[5],IDLE,IDLE,IDLE,IDLE);
user_e1[user_num].user_state = IDLE;
}
}
else//错误的输入
{
error_chuli(user_num);
}
audio_dtmf_resource[user_e1[user_num].dtmf].buf = IDLE;
}
}
break;
case OPP_SEX://等待用户输入对方性别
{
if(user_select != IDLE)
{
if(user_monitor_num == user_num)//往后台回应监视信息
{
command(1,0,user_num,USER_PRESS_SIGNAL,user_select,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE);
}
switch(user_select)
{
case 1://男
case 2://女
{
audio_stop(user_e1[user_num].dtmf);//停止当前操作
clr_duan(user_num);
if(user_select == 1)
{
user_e1[user_num].opp_sex = MAN;
}
else
{
user_e1[user_num].opp_sex = WOMAN;
}
clr_duan(user_num);
play_one(user_num,OPP_AGE_DUAN);
user_e1[user_num].user_state = OPP_AGE;//提示输入年龄
}
break;
default://错误的输入
{
error_chuli(user_num);
}
break;
}
audio_dtmf_resource[user_e1[user_num].dtmf].buf = IDLE;
}
}
break;
case OPP_AGE://等待用户输入对方的年龄
{
if(user_select != IDLE)
{
if(user_monitor_num == user_num)//往后台回应监视信息
{
command(1,0,user_num,USER_PRESS_SIGNAL,user_select,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE);
}
if(user_e1[user_num].user_index == 0)
{
if(user_select < 10)
{
audio_stop(user_e1[user_num].dtmf);//停止当前操作
user_e1[user_num].opp_age = user_select * 10;
user_e1[user_num].user_index++;
}
else
{
if(user_select == 12)//用户对聊友的年龄没有要求
{
audio_dtmf_resource[user_e1[user_num].dtmf].count = 1;//本段音播放次数加1
user_e1[user_num].user_state = JUDGE_USER;
audio_dtmf_resource[user_e1[user_num].dtmf].auto_flag = LEISURE;//清自动放音标志
}
else
{
error_chuli(user_num);//输入错误
}
}
}
else
{
if(user_select < 10)
{
clr_duan(user_num);
audio_dtmf_resource[user_e1[user_num].dtmf].count = 1;//本段音播放次数加1
user_e1[user_num].opp_age = user_e1[user_num].opp_age + user_select;
user_e1[user_num].user_state = JUDGE_USER;
audio_dtmf_resource[user_e1[user_num].dtmf].auto_flag = LEISURE;//清自动放音标志
}
else
{
error_chuli(user_num);//输入错误
}
}
audio_dtmf_resource[user_e1[user_num].dtmf].buf = IDLE;
}
}
break;
default:
break;
}
}
void in_mfc_line(unsigned char user_num)//数字中继呼入MFC互控处理
{
unsigned char trk_j;
switch(user_e1[user_num].mfc_state)//以MFC的状态来处理
{
case WAIT_DIGITAL_SIGNAL://等待交换机发电话号码
{
user_e1[user_num].delay--;//等待时间减1
if((chat_mfc_resource[user_e1[user_num].mfc].buf[0] > 0) && (chat_mfc_resource[user_e1[user_num].mfc].buf[0] < 11))
{
if(user_monitor_num == user_num)//往后台回应监视信息
{
command(1,0,user_num,FORWARD_MFC_SIGNAL,chat_mfc_resource[user_e1[user_num].mfc].buf[0],IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE);
}
user_e1[user_num].user_index++;//号码指针加1
if(user_e1[user_num].user_index == ID_num_length)//判断是否应该发A3信令
{
send_mfc_in(user_e1[user_num].mfc,3);//发A3信令
if(user_monitor_num == user_num)//往后台回应监视信息
{
command(1,0,user_num,BACKWARD_MFC_SIGNAL,3,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE);
}
user_e1[user_num].sub_status = 3;//设置为发A3
}
else
{
if(user_e1[user_num].user_index == LAN_num_length)//判断是否应该发A6信令
{
if(user_e1[user_num].a6_flag == 0)//判断有没有发过A6
{
send_mfc_in(user_e1[user_num].mfc,6);//发A6信令
if(user_monitor_num == user_num)//往后台回应监视信息
{
command(1,0,user_num,BACKWARD_MFC_SIGNAL,6,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE);
}
user_e1[user_num].sub_status = 6;//设置为发A6
user_e1[user_num].a6_flag = 1;//置A6发送标志
}
else//已经发过A6信令
{
send_mfc_in(user_e1[user_num].mfc,1);//发A1
if(user_monitor_num == user_num)//往后台回应监视信息
{
command(1,0,user_num,BACKWARD_MFC_SIGNAL,1,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE);
}
user_e1[user_num].sub_status = 1;//设置为发A1
}
}
else//发A1
{
send_mfc_in(user_e1[user_num].mfc,1);//发A1信令
if(user_monitor_num == user_num)//往后台回应监视信息
{
command(1,0,user_num,BACKWARD_MFC_SIGNAL,1,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE);
}
user_e1[user_num].sub_status = 1;//设置为发A1
}
}
user_e1[user_num].mfc_state = WAIT_PAUSE;//转为等待停发
user_e1[user_num].delay = CTRL_TIME;//设置500毫秒的等待时间
}
else
{
if(user_e1[user_num].delay == 0)//500毫秒没有收到正确的号码
{
user_e1[user_num].mfc_state = FAILURE_MFC;//转为MFC失败处理
}
}
}
break;
case WAIT_PAUSE://等待交换机发停发
{
user_e1[user_num].delay--;//等待时间减1
if(chat_mfc_resource[user_e1[user_num].mfc].buf[1] == MFC_PAUSE)//判断有无收到停发
{
if(user_monitor_num == user_num)//往后台回应监视信息
{
command(1,0,user_num,FORWARD_MFC_SIGNAL,0,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE);
}
send_mfc_in(user_e1[user_num].mfc,MFC_PAUSE);//发停发
if(user_monitor_num == user_num)//往后台回应监视信息
{
command(1,0,user_num,BACKWARD_MFC_SIGNAL,0,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE,IDLE);
}
user_e1[user_num].delay = CTRL_TIME;//设置500毫秒的等待时间
for(trk_j = 0;trk_j < 2;trk_j++)//清空接收数据
{
chat_mfc_resource[user_e1[user_num].mfc].buf[trk_j] = IDLE;
}
chat_mfc_resource[user_e1[user_num].mfc].buf_p = 0;//清空接收指针
switch(user_e1[user_num].sub_status)
{
case 1://上一次发的是A1
{
user_e1[user_num].mfc_state = WAIT_DIGITAL_SIGNAL;//转为接收下一位号码
}
break;
case 3://上一次发的是A3
{
user_e1[user_num].mfc_state = WAIT_KD_SIGNAL;//转为接收KD信令
}
break;
case 6://上一次发的是A6
{
user_e1[user_num].mfc_state = WAIT_KA_SIGNAL;//转为接收KA信令
user_e1[user_num].user_index = 0;//清接收指针
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -