?? 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 + -