Example #1
0
        /// <summary>
        /// 连接USSD网关
        /// </summary>
        private void ConnectToUSSDG()
        {
            if (this._asClient != null)
            {
                this._asClient.Disconnect();
            }

            this.StopUssdTimer();


            //connect USSDG
            this._asClient = new AsyncSocketClient(this.ListenBufferSize, null,
                                                   new AsyncSocketClient.MessageHandler(this.ClientMessageHandler), null,
                                                   new AsyncSocketClient.ErrorHandler(this.ClientErrorHandler));

            this._asClient.Connect(this.Host, this.Port);

            UapBind request = new UapBind();

            request.SystemId         = this.SystemId;
            request.Password         = this.Password;
            request.SystemType       = this.SystemType;
            request.InterfaceVersion = this.InterfaceVersion;

            this.SendUap(request);

            this.StartUssdTimer();
        }
Example #2
0
        /// <summary>
        /// Gets a single Uap based on the response bytes.
        /// </summary>
        /// <param name="response">The response.</param>
        /// <returns>The Uap corresponding to the bytes.</returns>
        private static UapBase GetUap(byte[] response)
        {
            UapBase.CommandIdType commandID = UapBase.DecodeCommandId(response);
            UapBase packet;

            switch (commandID)
            {
            case UapBase.CommandIdType.Bind:
                packet = new UapBind(response);
                break;

            case UapBase.CommandIdType.BindResp:
                packet = new UapBindResp(response);
                break;

            case UapBase.CommandIdType.Unbind:
                packet = new UapUnbind(response);
                break;

            case UapBase.CommandIdType.UnbindResp:
                packet = new UapUnbindResp(response);
                break;

            case UapBase.CommandIdType.EnquireLink:
                packet = new UapEnquireLink(response);
                break;

            case UapBase.CommandIdType.EnquireLinkResp:
                packet = new UapEnquireLinkResp(response);
                break;

            case UapBase.CommandIdType.Begin:
                packet = new UapBegin(response);
                break;

            case UapBase.CommandIdType.Continue:
                packet = new UapContinue(response);
                break;

            case UapBase.CommandIdType.End:
                packet = new UapEnd(response);
                break;

            case UapBase.CommandIdType.Abort:
                packet = new UapAbort(response);
                break;

            case UapBase.CommandIdType.Switch:
                packet = new UapSwitch(response);
                break;

            case UapBase.CommandIdType.Chargeind:
                packet = new UapChargeind(response);
                break;

            case UapBase.CommandIdType.ChargeindResp:
                packet = new UapChargeindResp(response);
                break;

            case UapBase.CommandIdType.SwitchBegin:
                packet = new UapSwitchBegin(response);
                break;

            case UapBase.CommandIdType.None:
            default:
                packet = null;
                break;
            }
            return(packet);
        }