mtp.h

来自「example of SS7 file analyzer & decoder」· C头文件 代码 · 共 37 行

H
37
字号

/* MTP2 header */

#ifndef BYTE
	typedef unsigned char BYTE;
#endif

#define SS7_MTP2_HEADER_OFFSET	3
#define SS7_MTP3_HEADER_OFFSET	5

#define SS7_MTP2_BSN(a) (BYTE)(*((BYTE*)a)& 0x7F)
#define SS7_MTP2_FSN(a) (BYTE)(*((BYTE*)a+1)& 0x7F)
#define SS7_MTP2_LI(a) (BYTE)(*((BYTE*)a+2)& 0x3F)

#define SS7_MTP3_SI(a) (BYTE)(*((BYTE*)a)& 0x0F)
#define SS7_MTP3_SSF(a) (BYTE)((*((BYTE*)a)& 0x30)>>4)
#define SS7_MTP3_DPC(a) (*((unsigned short*)((BYTE*)a+1))& 0x3FFF)
#define SS7_MTP3_OPC(a) (((*((BYTE*)a+2))& 0xC0)>>6 | ((*((BYTE*)a+3))& 0xFF)<<2 | ((*((BYTE*)a+4))& 0x0F)<<10)
#define SS7_MTP3_SLS(a) (BYTE)((*((BYTE*)a+4)& 0xF0)>>4)

#define SS7_PC_FORMAT_3_8_3_PART1(a) ((int) (a & 0x3800) >> 11)
#define SS7_PC_FORMAT_3_8_3_PART2(a) ((int) (a & 0x07F8) >> 3)
#define SS7_PC_FORMAT_3_8_3_PART3(a) ((int) (a & 0x0007))

char* SS7_PC_ZONE[8] = 
{ "?", "?", "EUROPE", "UNITED STATES", "ASIA", "AUSTRALIA", "AFRICA", "SOUTH AMERICA"}; 

char* SS7_MTP_USER[16] = 
	{ "SNM", "MTN", "MTNS", "SCCP", "TUP", "ISUP", "DUP", "Reserved for MTP testing user part.",
	"Not defined", "Not defined", "Not defined", "Not defined", "Not defined", "Not defined", "Not defined", "Not defined"};

#define SS7_SI_DUP	6
#define SS7_SI_ISUP	5
#define SS7_SI_TUP	4
#define SS7_SI_SCCP	3

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?