📄 preprocmsg.cpp
字号:
Thirdlayermsg(buffer); //提取第三层消息 //提取DTAP消息类型
buffer++;
}
return;
}
//******************************************************************
int CShowMsg::BSSMAPmsgtype(unsigned char *buffer)
{
//提取BSSAP消息类型
int msgstrlen; // 显示消息的字符串长度
msgstrlen=strlen(mshowmsg.msgtype);
switch(*buffer)
{
case 0x01: sprintf(mshowmsg.msgtype+msgstrlen," Assignment Request ");
return 0x01;
case 0x02: sprintf(mshowmsg.msgtype+msgstrlen," Assignment Complete ");
return 0x02;
case 0x03: sprintf(mshowmsg.msgtype+msgstrlen," Assignment Failure ");
return 0x03;
case 0x10: sprintf(mshowmsg.msgtype+msgstrlen," Handover Request ");
return 0x10;
case 0x11: sprintf(mshowmsg.msgtype+msgstrlen," Handover Required ");
return 0x11;
case 0x12: sprintf(mshowmsg.msgtype+msgstrlen," Handover Request Acknowledge ");
return 0x12;
case 0x13: sprintf(mshowmsg.msgtype+msgstrlen," Handover Command ");
return 0x13;
case 0x14: sprintf(mshowmsg.msgtype+msgstrlen," Handover Complete ");
return 0x14;
case 0x16: sprintf(mshowmsg.msgtype+msgstrlen," Handover Failure ");
return 0x16;
case 0x17: sprintf(mshowmsg.msgtype+msgstrlen," Handover Performed ");
return 0x17;
case 0x18: sprintf(mshowmsg.msgtype+msgstrlen," Handover Candidate Enquiry ");
return 0x18;
case 0x19: sprintf(mshowmsg.msgtype+msgstrlen," Handover Candidate Response ");
return 0x19;
case 0x1A: sprintf(mshowmsg.msgtype+msgstrlen," Handover Required Reject ");
return 0x1A;
case 0x1B: sprintf(mshowmsg.msgtype+msgstrlen," Handover Detect ");
return 0x1B;
case 0x20: sprintf(mshowmsg.msgtype+msgstrlen," Clear Command ");
return 0x20;
case 0x21: sprintf(mshowmsg.msgtype+msgstrlen," Clear Complete ");
return 0x21;
case 0x22: sprintf(mshowmsg.msgtype+msgstrlen," Clear Request ");
return 0x22;
case 0x25: sprintf(mshowmsg.msgtype+msgstrlen," SAP“n”Reject ");
return 0x25;
case 0x26: sprintf(mshowmsg.msgtype+msgstrlen," Confusion ");
return 0x26;
case 0x30: sprintf(mshowmsg.msgtype+msgstrlen," Reset ");
return 0x30;
case 0x31: sprintf(mshowmsg.msgtype+msgstrlen," Reset Acknowledge ");
return 0x31;
case 0x32: sprintf(mshowmsg.msgtype+msgstrlen," Overload ");
return 0x32;
case 0x34: sprintf(mshowmsg.msgtype+msgstrlen," Reset Circuit ");
return 0x34;
case 0x35: sprintf(mshowmsg.msgtype+msgstrlen," Reset Circuit Acknowledge ");
return 0x35;
case 0x36: sprintf(mshowmsg.msgtype+msgstrlen," MSC Invoke Trace ");
return 0x36;
case 0x37: sprintf(mshowmsg.msgtype+msgstrlen," BSS Invoke Trace ");
return 0x37;
case 0x40: sprintf(mshowmsg.msgtype+msgstrlen," Block ");
return 0x40;
case 0x41: sprintf(mshowmsg.msgtype+msgstrlen," Block Acknowledge ");
return 0x41;
case 0x42: sprintf(mshowmsg.msgtype+msgstrlen," Unblock ");
return 0x42;
case 0x43: sprintf(mshowmsg.msgtype+msgstrlen," Unblocking Acknowledge ");
return 0x43;
case 0x44: sprintf(mshowmsg.msgtype+msgstrlen," Circuit Group Block ");
return 0x44;
case 0x45: sprintf(mshowmsg.msgtype+msgstrlen," Circuit Group Blocking Acknowledge ");
return 0x45;
case 0x46: sprintf(mshowmsg.msgtype+msgstrlen," Circuit Group Unblock ");
return 0x46;
case 0x47: sprintf(mshowmsg.msgtype+msgstrlen," Circuit Group Unblocking Acknowledge ");
return 0x47;
case 0x48: sprintf(mshowmsg.msgtype+msgstrlen," Unequipped Circuit ");
return 0x48;
case 0x50: sprintf(mshowmsg.msgtype+msgstrlen," Resource Request ");
return 0x50;
case 0x51: sprintf(mshowmsg.msgtype+msgstrlen," Resource Indication ");
return 0x51;
case 0x52: sprintf(mshowmsg.msgtype+msgstrlen," Paging ");
return 0x52;
case 0x53: sprintf(mshowmsg.msgtype+msgstrlen," Cipher Mode Command ");
return 0x53;
case 0x54: sprintf(mshowmsg.msgtype+msgstrlen," Classmark Update ");
return 0x54;
case 0x55: sprintf(mshowmsg.msgtype+msgstrlen," Cipher Mode Complete ");
return 0x55;
case 0x56: sprintf(mshowmsg.msgtype+msgstrlen," Queuing Indication ");
return 0x56;
case 0x57: sprintf(mshowmsg.msgtype+msgstrlen," Complete Layer 3 Information ");
return 0x57;
case 0x58: sprintf(mshowmsg.msgtype+msgstrlen," Classmak Request ");
return 0x58;
case 0x59: sprintf(mshowmsg.msgtype+msgstrlen," Cipher Mode Reject ");
return 0x59;
case 0x5A: sprintf(mshowmsg.msgtype+msgstrlen," Load Indication ");
return 0x5A;
default:
return 0xFF;
}
}
//******************************************************************
void CShowMsg::BSSMAPnumtaking(unsigned char *buffer,unsigned char operatecode)
{
//提取BSSMAP主叫号码
switch(operatecode)
{
case 0x12: //切换请求证实
{
buffer+=2; //指向第三层消息第一字节
Thirdlayermsg(buffer); //提取第三层消息
}
break;
case 0x13: //切换命令
{
buffer+=2; //指向第三层消息第一字节
Thirdlayermsg(buffer); //提取第三层消息
}
break;
case 0x52: //寻呼
{
int imsilen=0; //IMSI号长度
buffer++; //指向IMSI长度指示语
imsilen=*buffer; // IMSI长度
BSSAPIMSIcode(buffer,imsilen); //提取IMSI号
buffer+=imsilen+1;
if(*buffer==0x09) //包含TMSI
{
int tmsilen=0; //TMSI号长度
buffer++;
tmsilen=*buffer; //TMSI长度
BSSAPTMSIcode(buffer,tmsilen); //提取TMSI号
buffer+=tmsilen+1;
}
}
break;
case 0x57:
{
buffer++; //指向小区识别长度
buffer+=*buffer+3; //指向第三层消息第一字节
Thirdlayermsg(buffer); //提取第三层消息
}
}
}
//******************************************************************
void CShowMsg::Thirdlayermsg(unsigned char *buffer)
{
//提取第三层消息
int msgstrlen; // 显示消息的字符串长度
unsigned char operatecode;
msgstrlen=strlen(mshowmsg.msgtype);
switch((((*buffer)&0x06)<<5)|((*(buffer+1))&0x3F))
{
buffer++;
case 0xFB: sprintf(mshowmsg.msgtype+msgstrlen," Additional Assignment ");
operatecode=0xFB;
break;
case 0xFF: sprintf(mshowmsg.msgtype+msgstrlen," Immediate Assignment ");
operatecode=0xFF;
break;
case 0xF9: sprintf(mshowmsg.msgtype+msgstrlen," Immediate Assignment Extended ");
operatecode=0xF9;
break;
case 0xFA: sprintf(mshowmsg.msgtype+msgstrlen," Immediate Assignment Reject ");
operatecode=0xFA;
break;
case 0xF5: sprintf(mshowmsg.msgtype+msgstrlen," Ciphering Mode Command ");
operatecode=0xF5;
break;
case 0xF2: sprintf(mshowmsg.msgtype+msgstrlen," Ciphering Mode Complete ");
operatecode=0xF2;
break;
case 0xEE: sprintf(mshowmsg.msgtype+msgstrlen," Assignment Command ");
operatecode=0xEE;
break;
case 0xE9: sprintf(mshowmsg.msgtype+msgstrlen," Assignment Complete ");
operatecode=0xE9;
break;
case 0xEF: sprintf(mshowmsg.msgtype+msgstrlen," Assignment Failure ");
operatecode=0xEF;
break;
case 0xEB: sprintf(mshowmsg.msgtype+msgstrlen," Handover Command ");
operatecode=0xEB;
break;
case 0xEC: sprintf(mshowmsg.msgtype+msgstrlen," Handover Complete ");
operatecode=0xEC;
break;
case 0xE8: sprintf(mshowmsg.msgtype+msgstrlen," Handover Failure ");
operatecode=0xE8;
break;
case 0xED: sprintf(mshowmsg.msgtype+msgstrlen," Physical Information ");
operatecode=0xED;
break;
case 0xCD: sprintf(mshowmsg.msgtype+msgstrlen," Channel Release ");
operatecode=0xCD;
break;
case 0xCA: sprintf(mshowmsg.msgtype+msgstrlen," Partial Release ");
operatecode=0xCA;
break;
case 0xCF: sprintf(mshowmsg.msgtype+msgstrlen," Partial Release Complete ");
operatecode=0xCF;
break;
case 0xE1: sprintf(mshowmsg.msgtype+msgstrlen," Paging Request Type1 ");
operatecode=0xE1;
break;
case 0xE2: sprintf(mshowmsg.msgtype+msgstrlen," Paging Request Type2 ");
operatecode=0xE2;
break;
case 0xE4: sprintf(mshowmsg.msgtype+msgstrlen," Paging Request Type3 ");
operatecode=0xE4;
break;
case 0xE7: sprintf(mshowmsg.msgtype+msgstrlen," Paging Response ");
operatecode=0xE7;
break;
case 0xD8: sprintf(mshowmsg.msgtype+msgstrlen," System Information Type8 ");
operatecode=0xD8;
break;
case 0xD9: sprintf(mshowmsg.msgtype+msgstrlen," System Information Type1 ");
operatecode=0xD9;
break;
case 0xDA: sprintf(mshowmsg.msgtype+msgstrlen," System Information Type2 ");
operatecode=0xDA;
break;
case 0xDB: sprintf(mshowmsg.msgtype+msgstrlen," System Information Type3 ");
operatecode=0xDB;
break;
case 0xDC: sprintf(mshowmsg.msgtype+msgstrlen," System Information Type4 ");
operatecode=0xDC;
break;
case 0xDD: sprintf(mshowmsg.msgtype+msgstrlen," System Information Type5 ");
operatecode=0xDD;
break;
case 0xDE: sprintf(mshowmsg.msgtype+msgstrlen," System Information Type6 ");
operatecode=0xDE;
break;
case 0xDF: sprintf(mshowmsg.msgtype+msgstrlen," System Information Type7 ");
operatecode=0xDF;
break;
case 0xC2: sprintf(mshowmsg.msgtype+msgstrlen," System Information Type 2bis ");
operatecode=0xC2;
break;
case 0xC3: sprintf(mshowmsg.msgtype+msgstrlen," System Information Type 2ter ");
operatecode=0xC3;
break;
case 0xC5: sprintf(mshowmsg.msgtype+msgstrlen," System Information Type 5bis ");
operatecode=0xC5;
break;
case 0xC6: sprintf(mshowmsg.msgtype+msgstrlen," System Information Type 5ter ");
operatecode=0xC6;
break;
case 0xD0: sprintf(mshowmsg.msgtype+msgstrlen," Channel Mode Modify ");
operatecode=0xD0;
break;
case 0xD2: sprintf(mshowmsg.msgtype+msgstrlen," RR Status ");
operatecode=0xD2;
break;
case 0xD7: sprintf(mshowmsg.msgtype+msgstrlen," Channel Mode Modify Acknowledge ");
operatecode=0xD7;
break;
case 0xD4: sprintf(mshowmsg.msgtype+msgstrlen," Frequency Redefinition ");
operatecode=0xD4;
break;
case 0xD5: sprintf(mshowmsg.msgtype+msgstrlen," Measurement Report ");
operatecode=0xD5;
break;
case 0xD6: sprintf(mshowmsg.msgtype+msgstrlen," Classmark Change ");
operatecode=0xD6;
break;
case 0xD3: sprintf(mshowmsg.msgtype+msgstrlen," Classmark Enquiry ");
operatecode=0xD3;
break;
case 0x81: sprintf(mshowmsg.msgtype+msgstrlen," IMSI Detach Indication ");
operatecode=0x81;
break;
case 0x82: sprintf(mshowmsg.msgtype+msgstrlen," Location Updating Accept ");
operatecode=0x82;
break;
case 0x84: sprintf(mshowmsg.msgtype+msgstrlen," Location Updating Reject ");
operatecode=0x84;
break;
case 0x88: sprintf(mshowmsg.msgtype+msgstrlen," Location Updating Request ");
operatecode=0x88;
break;
case 0x91: sprintf(mshowmsg.msgtype+msgstrlen," Authentication Reject ");
operatecode=0x91;
break;
case 0x92: sprintf(mshowmsg.msgtype+msgstrlen," Authentication Request ");
operatecode=0x92;
break;
case 0x94: sprintf(mshowmsg.msgtype+msgstrlen," Authentication Response ");
operatecode=0x94;
break;
case 0x98: sprintf(mshowmsg.msgtype+msgstrlen," Identity Request ");
operatecode=0x98;
break;
case 0x99: sprintf(mshowmsg.msgtype+msgstrlen," Identity Response ");
operatecode=0x99;
break;
case 0x9A: sprintf(mshowmsg.msgtype+msgstrlen," TMSI Reallocation Commond ");
operatecode=0x9A;
break;
case 0x9B: sprintf(mshowmsg.msgtype+msgstrlen," TMSI Reallocation Complete ");
operatecode=0x9B;
break;
case 0xA1: sprintf(mshowmsg.msgtype+msgstrlen," CM Service Accept ");
operatecode=0xA1;
break;
case 0xA2: sprintf(mshowmsg.msgtype+msgstrlen," CM Service Reject ");
operatecode=0xA2;
break;
case 0xA3: sprintf(mshowmsg.msgtype+msgstrlen," CM Service Abort ");
operatecode=0xA3;
break;
case 0xA4: sprintf(mshowmsg.msgtype+msgstrlen," CM Service Request ");
operatecode=0xA4;
break;
case 0xA8: sprintf(mshowmsg.msgtype+msgstrlen," CM Re-Establishment Request ");
operatecode=0xA8;
break;
case 0xA9: sprintf(mshowmsg.msgtype+msgstrlen," Abort ");
operatecode=0xA9;
break;
case 0xB1: sprintf(mshowmsg.msgtype+msgstrlen," MM Status ");
operatecode=0xB1;
break;
case 0x40: sprintf(mshowmsg.msgtype+msgstrlen," Escape to Nationally Specific ");
operatecode=0x40;
break;
case 0x41: sprintf(mshowmsg.msgtype+msgstrlen," Alarting ");
operatecode=0x41;
break;
case 0x48: sprintf(mshowmsg.msgtype+msgstrlen," Call Confirmed ");
operatecode=0x48;
break;
case 0x42: sprintf(mshowmsg.msgtype+msgstrlen," Call Proceeding ");
operatecode=0x42;
break;
case 0x47: sprintf(mshowmsg.msgtype+msgstrlen," Connect ");
operatecode=0x47;
break;
case 0x4F: sprintf(mshowmsg.msgtype+msgstrlen," Connect Acknowledge ");
operatecode=0x4F;
break;
case 0x4E: sprintf(mshowmsg.msgtype+msgstrlen," Emergency Setup ");
operatecode=0x4E;
break;
case 0x43: sprintf(mshowmsg.msgtype+msgstrlen," Progress ");
operatecode=0x43;
break;
case 0x45: sprintf(mshow
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -