public virtual async System.Threading.Tasks.Task <WriteResponse> detachAsync(DetachReference detachReference) { var request = new detachRequest() { passport = passport, tokenPassport = tokenPassport, applicationInfo = applicationInfo, partnerInfo = partnerInfo, preferences = preferences, detachReference = detachReference, }; var response = await((NetSuitePortType)this).detachAsync(request); return(response.writeResponse); }
public void plain(byte[] a)//注意当此函数被调用时,传进来的int i是不同的 { str1 = " "; str2 = " "; identity = ""; cause_str = ""; ue_ip = ""; byte proDiscriminator = 0; proDiscriminator = (byte)(a[0] & 0x0f); if (proDiscriminator == 0x07)//头部为security header identity { emmType = a[1]; str1 = hash1.name(emmType); if (emmType == 0x41)//attach request { attachRequest req = new attachRequest(); byte length1 = 0, length2 = 0; length1 = a[3]; length2 = a[length1 + 4]; esmType = a[length1 + length2 + 9]; str2 = hash1.name(esmType); identity = req.identity(a); } else if (emmType == 0x42)//attach accept { attachAccept acp = new attachAccept(); byte length1 = 0, length2 = 0, length3 = 0, length4 = 0, type = 0; int length5 = 0, length6 = 0; length1 = a[4]; esmType = a[length1 + 9]; length2 = a[length1 + 10]; //QOS 长度 length3 = a[length1 + 11 + length2]; //APN 长度 length4 = a[length1 + 12 + length2 + length3]; type = a[length1 + 13 + length2 + length3]; length5 = length1 + 13 + length2 + length3 + 1; int leng1 = 0; for (leng1 = length5; leng1 < length5 + length4 - 2; leng1++) { ue_ip += a[leng1].ToString() + ".";//终端的IP地址 BitConverter.ToString(a,length5,length4-1) } ue_ip += a[leng1].ToString(); str2 = hash1.name(esmType); identity = acp.Guti(a); } else if (emmType == 0x43) //attach complete { esmType = a[6]; //esm message container的编码长度为(5...n) str2 = hash1.name(esmType); } else if (emmType == 0x44) //attach reject { esmType = a[8]; //注意attach reject的esm message container的编码与其他的不同(5...n),它是(6...n) str2 = hash1.name(esmType); } else if (emmType == 0x45)//detach request(由于detach request的IMSI、TMSI解析函数与attach request完全一致) { detachRequest req = new detachRequest(); identity = req.identity(a); } else if (emmType == 0x48)//TAU request { TAU_request1 tau_req = new TAU_request1(); identity = tau_req.guti(a); } else if (emmType == 0x49)//TAU accept { TAU_accept1 tau_acp = new TAU_accept1(); identity = tau_acp.guti(a); } else if (emmType == 0x50)//GUTI allocation command { guti_reall reall = new guti_reall(); identity = reall.guti(a); } else if (emmType == 0x5d) //security mode command { algorithm = (byte)((a[2] & 0x70) >> 4); //从该信令中获得所选择的加密算法 } } if (proDiscriminator == 0x02)//头部为EPS bearer identity { esmType = a[2]; } str2 = hash1.name(esmType); }