public virtual async System.Threading.Tasks.Task <WriteResponse> attachAsync(AttachReference attachReference)
        {
            var request = new attachRequest()
            {
                passport        = passport,
                tokenPassport   = tokenPassport,
                applicationInfo = applicationInfo,
                partnerInfo     = partnerInfo,
                preferences     = preferences,
                attachReference = attachReference,
            };
            var response = await((NetSuitePortType)this).attachAsync(request);

            return(response.writeResponse);
        }
Exemple #2
0
        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);
        }