亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? q931pdu.cpp

?? asn格式文件的編譯器
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
		"Unknown",		"International number",		"National number",		"Network specific number",		"Subscriber number",		"Reserved",		"Abbreviated number",		"Reserved for extension"	};	int i = Byte[0]&0x70;	i >>= 4;	char buf[80];	int typeOfNumber = Byte[0]&0x70;	FormatBits(buf, 6,4, typeOfNumber);	wsprintf(buf+8," = Type of number - %s", str[typeOfNumber >> 4]);	AttachPropertyInstanceEx(hFrame, hProperty, 1 , (void*)Byte,			strlen(buf)+1 , buf , 0, 2, 0 );}TableEntry numberingPlanTable[] = {	{0x00,"Unknown"},	{0x01,"ISDN/telephony numbering plan (Recommendation E.164)"},	{0x03,"Data numbering plan (Recommendation X.121)"},	{0x04,"Telex numbering plan (Recommendation F.69)"},	{0x08,"National standard numbering plan"},	{0x09,"Private numbering plan"}};void AttachPartyNumber_NumberingPlanIndication(	HFRAME					hFrame, 	HPROPERTY				hProperty, 	const unsigned char*	Byte	){	char buf[120];	int numberingPlan = Byte[0]& 0x0F;	FormatBits(buf, 3 , 0, numberingPlan);	wsprintf(buf+8, " = Numbering plan indication - %s", 		FindString(numberingPlan));	AttachPropertyInstanceEx(hFrame, hProperty, 1 , (void*)Byte,			strlen(buf)+1 , buf , 0, 2, 0 );}voidAttachPartyNumber_PresentationIndicator(	HFRAME					hFrame, 	HPROPERTY				hProperty, 	const unsigned char*	Byte	){	char buf[100];	const char* presentationStr[] = 	{		"Presentation allowed",		"Presentation restricted",		"Number not available due to interworking",		"Reserved"	};	wsprintf(buf, ".%d%d..... = Presentation Indicator - %s", (Byte[0] & 0x40) > 1 		, (Byte[0] & 0x20) > 1, presentationStr[(Byte[0] & 0x60) >> 5]);	AttachPropertyInstanceEx(hFrame, hProperty, 1 ,(void*)Byte,		strlen(buf)+1 , buf , 0, 2, 0 );}voidAttachPartyNumber_ScreeningIndicator(	HFRAME					hFrame, 	HPROPERTY				hProperty, 	const unsigned char*	Byte	){	char buf[100];	const char* ScreeningStr[] = 	{		"User-provided, not screened",		"User-provided, verified and passed",		"User-provided, verified and failed",		"Network provided"	};	wsprintf(buf, "......%d%d = Screening Indicator - %s", (Byte[0] & 0x02) > 1 		, (Byte[0] & 0x01) , ScreeningStr[Byte[0] & 0x03 ]);	AttachPropertyInstanceEx(hFrame, hProperty, 1 ,(void*)Byte,		strlen(buf)+1 , buf , 0, 2, 0 );}void AttachNumberDigits(HFRAME hFrame, HPROPERTY hProperty, const unsigned char* Byte, int length){	char buf[100];	int size;	strcpy(buf,"Number Digits = \"");	size = strlen(buf);	memcpy(buf+size, Byte, length );	size += length ;	buf[size++] = '"';	buf[size] = 0;	AttachPropertyInstanceEx(hFrame, hProperty, length , (void*)Byte,			strlen(buf)+1 , buf , 0, 2, 0 );}voidAttachPartyNumber(	HFRAME					hFrame, 	HPROPERTY				hProperty, 	const unsigned char*	Byte	){	AttachExtensionIndicator(hFrame, hProperty, Byte+2, BOTH);	AttachPartyNumber_TypeOfNumber(hFrame, hProperty, Byte+2);	AttachPartyNumber_NumberingPlanIndication(hFrame, hProperty, Byte+2);	int offset = 3;	if( (Byte[2] & 0x80) == 0)	{		offset++;		AttachExtensionIndicator(hFrame, hProperty, Byte+3, FORCE_1);				AttachPartyNumber_PresentationIndicator(hFrame, hProperty, Byte+3);		AttachPartyNumber_ScreeningIndicator(hFrame, hProperty, Byte+3);	}	AttachNumberDigits(hFrame, hProperty, Byte + offset, Byte[1] - offset +2);}void CalledPartyNumberInformationElement::attachContent(HFRAME hFrame, HPROPERTY hProperty) const{	AttachPartyNumber(hFrame, hProperty, data);}void CallingPartyNumberInformationElement::attachContent(HFRAME hFrame, HPROPERTY hProperty) const{	AttachPartyNumber(hFrame, hProperty, data);}void ConnectedPartyNumberInformationElement::attachContent(HFRAME hFrame, HPROPERTY hProperty) const{	AttachPartyNumber(hFrame, hProperty, data);}void ProgressInformationElement::attachContent(HFRAME hFrame, HPROPERTY hProperty) const{	AttachExtensionIndicator(hFrame, hProperty, data+2, FORCE_1);	AttachCodingStandard(hFrame, hProperty, data+2);	AttachLocation(hFrame, hProperty, data+2);	AttachExtensionIndicator(hFrame, hProperty, data+3, FORCE_1);	const char* str[] = 	{		"",		"Call is not end-to-end ISDN; further call progress information may be available in?band",		"Destination address is non ISDN",		"Origination address is non ISDN",		"Call has returned to the ISDN",		"Interworking has occurred and has resulted in a telecommunication service change",		"",		"",		"In-band information or an appropriate pattern is now available"	};	char buf [120];	const char* description = "";	if ((data[3] & 0x80) < 8)		description = str[data[3] & 0x80];	wsprintf(buf, "Progress description = 0x%02x %s",description);	AttachPropertyInstanceEx(hFrame, hProperty, 1 ,(void*) (data+3),			strlen(buf)+1 , buf , 0, 2, 0 );}TableEntry informationTransferCapabilityTable[] ={	{0x01,"Speech"},	{0x08,"Unrestricted digital information"},	{0x09,"Restricted digital information"},	{0x10,"3.1 kHz audio"},	{0x11,"Unrestricted digital information with tones/announcements"},	{0x18,"Video"},};TableEntry transferRateTable[] = {	{0x00,"This code shall be used for packet mode calls"},	{0x10,"64 kbit/s"},	{0x11,"2 * 64 kbit/s"},	{0x13,"384 kbit/s"},	{0x15,"1536 kbit/s"},	{0x17,"1920 kbit/s"},	{0x18,"Multirate (64 kbit/s base rate)"}};TableEntry userInformationLayer1ProtocolTable[] = {	{0x01,"CCITT standardized rate adaption V.110 and X.30"},	{0x02,"Recommendation G.711 U-law"},	{0x03,"Recommendation G.711 A-law"},	{0x04,"Recommendation G.721 32 kbit/s ADPCM and Recommendation I.460"},	{0x05,"Recommendations H.221 and H.242"},	{0x07,"Non-CCITT standardized rate adaption."},	{0x08,"CCITT standardized rate adaption V.120"},	{0x09,"CCITT standardized rate adaption X.31 HDLC flag stuffing"}};void BearerCapabilityInformationElement::attachContent(HFRAME hFrame, HPROPERTY hProperty) const{	int len = data[1];	const unsigned char* cur = data+2;	AttachExtensionIndicator(hFrame, hProperty, cur, FORCE_1);	AttachCodingStandard(hFrame, hProperty, cur);	int informationTransferCapability = (*cur) & 0x1f;	char buf[150];	FormatBits(buf, 4, 0, informationTransferCapability);	wsprintf(buf+8, " = Information transfer capability (0x%02x) - %s"		, informationTransferCapability		, FindString(informationTransferCapability));	AttachPropertyInstanceEx(hFrame, hProperty, 1 ,(void*) cur,		strlen(buf)+1 , buf , 0, 2, 0 );	AttachExtensionIndicator(hFrame, hProperty, ++cur, FORCE_1);	const char* transferModeStr[] = {"Circuit mode", "Error" ,"Packet mode", "Error"};	int transferMode = (*cur) & 0x60 ;	FormatBits(buf, 6,5, transferMode);	wsprintf(buf+8, " = %s", transferModeStr[transferMode >> 5]);	AttachPropertyInstanceEx(hFrame, hProperty, 1 ,(void*) cur,		strlen(buf)+1 , buf , 0, 2, 0 );	static const char* transferRateStr = "Reserved";	int transferRate = (*cur) & 0x1F;	FormatBits(buf, 4, 0, transferRate);	wsprintf(buf+8, " = Transfer Rate - %s", 		FindString(transferRate));	AttachPropertyInstanceEx(hFrame, hProperty, 1 ,(void*) cur,		strlen(buf)+1 , buf , 0, 2, 0 );		if (transferRate == 0x18) // multirate, octet 4.1* shall be present	{		AttachExtensionIndicator(hFrame, hProperty, ++cur, FORCE_1);		int rateMultiplier = (*cur) & 0x7F;		FormatBits(buf, 6, 0, rateMultiplier);		wsprintf(buf+8, " = Rate Multiplier - %d", rateMultiplier);		AttachPropertyInstanceEx(hFrame, hProperty, 1 ,(void*) cur,			strlen(buf)+1 , buf , 0, 2, 0 );	}	if (cur - data <= len) // octet 5* present	{		AttachExtensionIndicator(hFrame, hProperty, ++cur, BOTH);		int layer1ID = (*cur) & 0x60;		FormatBits(buf, 6, 5, layer1ID);		wsprintf(buf+8, " = Layer 1 Identifer - shall be 01");		AttachPropertyInstanceEx(hFrame, hProperty, 1 ,(void*) cur,			strlen(buf)+1 , buf , 0, 2, 0 );		const char* userInformationLayer1ProtocolStr = "Reserved";		int userInformationLayer1Protocol = (*cur) & 0x1F;		FormatBits(buf, 4, 0, userInformationLayer1Protocol);		wsprintf(buf+8, " = %s", FindString(userInformationLayer1Protocol));		AttachPropertyInstanceEx(hFrame, hProperty, 1 ,(void*) cur,			strlen(buf)+1 , buf , 0, 2, 0 );	}}TableEntry callStateTable[] = {	{0x00,"Null"},	{0x01,"Call initiated"},	{0x02,"Overlap sending"},	{0x03,"Outgoing call proceeding"},	{0x04,"Call delivered"},	{0x06,"Call present"},	{0x07,"Call received"},	{0x08,"Connect request"},	{0x09,"Incoming call proceeding"},	{0x10,"Active"},	{0x11,"Disconnect request"},	{0x12,"Disconnect indication"},	{0x15,"Suspend request"},	{0x17,"Resume request"},	{0x19,"Release request"},	{0x22,"Call abort"},	{0x25,"Overlap receiving"},	{0x3D,"Restart request"},	{0x3E,"Restart"}};void CallStateInformationElement::attachContent(HFRAME hFrame, HPROPERTY hProperty) const{	AttachCodingStandard(hFrame, hProperty, data+2, 7);	const char* callStateStr = "Undefined";	int callState = data[2] & 0x3F;	char buf[100];	FormatBits(buf, 6, 0, callState);	wsprintf(buf+8, " = Call State - %s", FindString(callState));	AttachPropertyInstanceEx(hFrame, hProperty, 1 ,(void*) (data+2),		strlen(buf)+1 , buf , 0, 2, 0 );}void SignalInformationElement::attachContent(HFRAME hFrame, HPROPERTY hProperty) const{	static const char* SignalStrTable[] = 	{		"Dial tone on",		"Ring back tone on",		"Intercept tone on",		"Network congestion tone on",		"Busy tone on",		"Confirm tone on",		"Answer tone on",		"Call waiting tone",		"Off-hook warning tone",		"Preemption tone on"	};	char signalStrBuf[30];	const char* signalStr = "Reserved";	int signalValue = data[2];	if ( signalValue < 10)		signalStr = SignalStrTable[signalValue];	else if (signalValue == 0x3F)		signalStr = "Tones off";	else if ((signalValue & 0xF8) == 0x60)	{		wsprintf(signalStrBuf, "Alerting on - pattern %d", signalValue & 0x07);		signalStr = signalStrBuf;	}	else if (signalValue == 0x4F)		signalStr = "Alerting off";	char buf[80];	wsprintf(buf,"Signal Value = %d (%s)", signalValue, signalStr);	AttachPropertyInstanceEx(hFrame, hProperty, 1 ,(void*) (data+2),		strlen(buf)+1 , buf , 0, 2, 0 );}Q931PDU::Q931PDU(){}Q931PDU::~Q931PDU(){}bool Q931PDU::accept(Q931Decoder& strm) {  data = strm.data;  if (strm.size < 5) 	  return FALSE;  if (data[0] != 0x08 || data[1] != 0x02)	  return FALSE;  if (getMessageTypeName() == NULL)	  return FALSE;  strm.offset = 5;  while (true)  {	  InformationElement* element = InformationElement::Build(strm);	  if (element != NULL)	  {		 ieList.push_back(element);		 if (strcmp(element->getName(), "User-User") == 0)		 {			 UserUserInformationElement* uuie = static_cast<UserUserInformationElement*>(element);			 if (uuie->decodeIE())				 break;			 else				return FALSE;		 }	  }	  else		 break;  }  return strm.size >= (len = strm.offset);}void Q931PDU::attachProperties(HFRAME hFrame, HPROPERTY hProperty){	char buf[80];	wsprintf(buf,"Q.931 %s (Length = %d)", getMessageTypeName(), len);	AttachPropertyInstanceEx(hFrame, hProperty, len , (void*)data,		strlen(buf) + 1, buf , 0, 0, 0);	AttachPropertyInstanceEx(hFrame, hProperty, 5, (void*)data, 		19, "Fixed Q.931 Header", 0, 1, 0);	char* discriminatorStr = "Protocol Discriminator = 0x08";	AttachPropertyInstanceEx(hFrame, hProperty, 1, (void*)data, 		strlen(discriminatorStr)+1, discriminatorStr, 0, 2, 0);	AttachPropertyInstanceEx(hFrame, hProperty, 3,(void*)(data+1), 		15, "Call Reference", 0, 2, 0);	AttachPropertyInstanceEx(hFrame, hProperty, 1,(void*) (data+1), 		26, "Call Reference Length = 2", 0, 3, 0);	if (data[2] & 0x80)		AttachPropertyInstanceEx(hFrame, hProperty, 1, (void*) (data+2), 			28, "1....... = Destination Side", 0, 3, 0);	else		AttachPropertyInstanceEx(hFrame, hProperty, 1,(void*) (data+2), 			28,   "0....... = Originating Side", 0, 3, 0);	FormatBits(buf, 6,0, data[2]);	buf[8] = ' ';	FormatBits(buf+9, 7, 0, data[3]);	wsprintf(buf+17, " = Call Reference Value - 0x%04x", (data[2] & 0x7F) << 8 | data[3] );	AttachPropertyInstanceEx(hFrame, hProperty, 2, (void*)(data+2), 		strlen(buf)+1, buf, 0, 3, 0);	wsprintf(buf, "Message Type = 0x%02x (%s)", data[4], getMessageTypeName());	AttachPropertyInstanceEx(hFrame, hProperty, 2, (void*)(data+4), 		strlen(buf)+1, buf, 0, 3, 0);	IEList::iterator b = ieList.begin(), e = ieList.end();	for ( ; b!= e; ++b)	{		InformationElement* element = *b;		element->attachProperties(hFrame, hProperty);	}}TableEntry msgTable[] = {	{0x00,"Escape"},	{0x01,"Alerting"},	{0x02,"CallProceeding"},	{0x03,"Progress"},	{0x05,"Setup"},	{0x07,"Connect"},	{0x0d,"SetupAck"},	{0x0f,"ConnectAck"},	{0x5a,"ReleaseComplete"},	{0x62,"Facility"},	{0x75,"StatusEnquiry"},	{0x7b,"Information"},	{0x7d,"Status"}};const char* Q931PDU::getMessageTypeName() const{	int msg = data[4];	return FindString(msg);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美不卡一区二区三区四区| 欧美日韩三级视频| 国产精品久久久久aaaa樱花| 久久久久久电影| 国产麻豆精品在线| 精品福利在线导航| 久久亚洲春色中文字幕久久久| 日韩一区二区电影在线| 亚洲不卡av一区二区三区| 欧美mv日韩mv亚洲| 欧美丰满少妇xxxbbb| 国产精品2024| 三级在线观看一区二区| 欧美日韩一区不卡| 国产女主播视频一区二区| 欧美日韩黄色一区二区| 波多野结衣亚洲一区| 久久爱www久久做| 91高清在线观看| 色视频欧美一区二区三区| 国产精品剧情在线亚洲| 日本一区二区三区高清不卡| 日本一区二区三区四区| 日本黄色一区二区| 成人综合婷婷国产精品久久 | 亚洲一区二区在线观看视频| 欧美aaa在线| 国产精品性做久久久久久| 捆绑调教一区二区三区| 日本伊人午夜精品| 亚洲欧洲美洲综合色网| 日韩三级中文字幕| 风流少妇一区二区| 成人av网站免费观看| 成人白浆超碰人人人人| 秋霞午夜鲁丝一区二区老狼| 欧美色老头old∨ideo| 国产99久久久国产精品潘金| 在线观看三级视频欧美| 国产麻豆一精品一av一免费 | 中文字幕五月欧美| 男女性色大片免费观看一区二区 | 日本亚洲最大的色成网站www| 欧美色图一区二区三区| 成人一区二区三区视频在线观看 | 日韩三级.com| 精品一区免费av| 国产精品国产精品国产专区不蜜 | 亚洲国产精品av| 成人黄色a**站在线观看| 日韩一区二区在线观看视频| 精品一区二区在线免费观看| 99精品视频一区| 欧美美女一区二区在线观看| 中文字幕一区二区三区精华液| 国产69精品久久99不卡| 激情五月婷婷综合| 日韩精品午夜视频| 国产一区二区三区电影在线观看| 国产乱妇无码大片在线观看| 男男视频亚洲欧美| 亚洲国产中文字幕在线视频综合| 91在线视频网址| 久久―日本道色综合久久| 亚洲一区在线观看视频| 国产精品一级二级三级| 欧美伦理影视网| 日日夜夜免费精品视频| 在线看一区二区| 一区二区中文视频| 成人国产精品免费观看动漫| 欧美极品xxx| 成人午夜av在线| 中文无字幕一区二区三区 | 国产欧美日韩在线看| 国产乱码精品1区2区3区| 久久丝袜美腿综合| 国产不卡一区视频| 日本一区二区综合亚洲| 国产91精品精华液一区二区三区 | 成人黄色片在线观看| 国产精品久久影院| 91麻豆国产福利在线观看| 亚洲免费观看高清完整| 色婷婷av一区二区三区之一色屋| 国产欧美日韩麻豆91| 亚洲人成亚洲人成在线观看图片| 波多野结衣在线aⅴ中文字幕不卡| 精品国产成人系列| 免费高清在线视频一区·| 1024亚洲合集| 中文字幕一区不卡| 欧美一区二区三区日韩| 日韩av网站免费在线| 久久亚洲综合av| 成人毛片在线观看| 国产不卡在线一区| 国产一区二区三区四区五区美女| 亚洲成人手机在线| 亚洲欧洲av在线| 亚洲国产精品久久久久婷婷884| 亚洲午夜久久久久久久久久久| 欧美亚洲动漫另类| 国产成人日日夜夜| 丝袜美腿亚洲色图| 欧美视频在线播放| 成人免费毛片嘿嘿连载视频| 亚洲一区二区三区国产| 日韩欧美亚洲国产精品字幕久久久 | 在线观看视频一区二区 | 99久久精品一区二区| 精品99999| 偷窥国产亚洲免费视频| 欧美亚洲日本国产| 亚洲美女淫视频| 久久精品国产精品亚洲综合| 欧美videofree性高清杂交| 粉嫩aⅴ一区二区三区四区| 久久网站热最新地址| 国产99久久久久久免费看农村| 欧美日韩国产一二三| 国产精品高潮久久久久无| 中文字幕+乱码+中文字幕一区| 97精品久久久午夜一区二区三区| 色婷婷综合五月| www一区二区| fc2成人免费人成在线观看播放| 色综合久久综合中文综合网| 一道本成人在线| 亚洲欧洲www| 91在线观看成人| 免费成人小视频| 99久久精品国产网站| 亚洲国产成人高清精品| 综合网在线视频| 欧美体内she精高潮| 日韩欧美综合一区| 成人h动漫精品一区二区| 日韩中文字幕1| 亚洲免费资源在线播放| 精品少妇一区二区三区视频免付费| 久久电影网电视剧免费观看| 国产成人亚洲综合a∨婷婷| 欧美在线观看视频一区二区三区| 国内国产精品久久| 亚洲免费三区一区二区| 免费观看日韩av| 欧美在线观看一区| 色视频成人在线观看免| 亚洲精品欧美综合四区| 精品在线视频一区| 国产精品白丝jk白祙喷水网站 | 在线观看免费亚洲| 中文字幕中文字幕在线一区 | 91精品国产黑色紧身裤美女| 久久亚洲欧美国产精品乐播| 亚洲va天堂va国产va久| 日韩精品亚洲一区二区三区免费| 欧美一级理论性理论a| 激情伊人五月天久久综合| 日本麻豆一区二区三区视频| 国产亚洲欧美一级| 91精彩视频在线观看| 亚洲成人一区在线| 亚洲国产成人高清精品| 国产精品资源在线| 日韩成人一级大片| 国产不卡视频一区| 激情综合网最新| 成人午夜免费av| 日韩欧美国产高清| 午夜激情一区二区三区| 美女看a上一区| 狂野欧美性猛交blacked| 中文字幕一区不卡| 国产在线视频一区二区| 91一区二区在线| 亚洲视频一二区| 午夜伦欧美伦电影理论片| 久久久精品中文字幕麻豆发布| 久久一区二区三区国产精品| 91精品国产一区二区三区香蕉| 成人免费毛片a| eeuss鲁片一区二区三区| 久久精品国产亚洲5555| 中文字幕一区二| eeuss鲁片一区二区三区在线看| 91精品国产一区二区三区蜜臀| 美国十次了思思久久精品导航| 欧美在线观看视频在线| 亚洲444eee在线观看| 日韩精品中午字幕| 日本欧美肥老太交大片| 在线免费观看日韩欧美| 亚洲精品久久7777| 五月激情六月综合| 国产一区二区导航在线播放| 精品88久久久久88久久久| 欧美亚洲免费在线一区| 亚洲一区国产视频|