public SmppSubmitSmResEventArgs(SmppSubmitSmRes Pdu)
 {
     this.Pdu = Pdu;
 }
        private bool SendPlainSMS(TransactionMessage transactionmessage)
        {
            bool sendSuccess = false;

            SmppSubmitSmReq.BodyPdu ReqSubmit_Sm = new SmppSubmitSmReq.BodyPdu();

            SmppSubmitSmRes ResSubmit_Sm = null;

            if (smppconn.Connected == false)
            {
                this.Connect();


                if (ResBind.Header.CommandStatus == 0)
                {
                    try
                    {
                        ReqSubmit_Sm = new SmppSubmitSmReq.BodyPdu();
                        //SmppSubmitSmRes ResSubmit_Sm;
                        // ReqSubmit_Sm.EsmClass = new BitBuilder((byte)0x40); // UHDI this should always be 0x40
                        // ReqSubmit_Sm.ShortMessage.DataCoding = SmppDataCoding.FromValue((byte)0x00); //if it is unicode use 0x08 like for arabic or other unicode lang.
                        ReqSubmit_Sm.SourceAddressTon      = new BitBuilder(5).Value;
                        ReqSubmit_Sm.SourceAddressNpi      = new BitBuilder(0).Value;
                        ReqSubmit_Sm.DestinationAddressTon = new BitBuilder(1).Value;
                        ReqSubmit_Sm.DestinationAddressNpi = new BitBuilder(1).Value;
                        ReqSubmit_Sm.RegisteredDelivery    = new BitBuilder(1);

                        ReqSubmit_Sm.DestinationAddress = transactionmessage.Msisdn;
                        ReqSubmit_Sm.SourceAddress      = transactionmessage.ShortCode; //
                        ReqSubmit_Sm.ShortMessage.SetValue(transactionmessage.ResponseMessage);
                        if (smppconn.Connected == true)
                        {
                            try
                            {
                                ResSubmit_Sm = smppconn.SubmitSm(new SmppSubmitSmReq(ReqSubmit_Sm));
                                // No copy to logger

                                //logger.Error(tProtocol.NetworkID + ":" + tProtocol.OperatorID + ": EnquireLink SequenceNumber: " + enquireLinkResponse.Header.SequenceNumber.ToString() + "\n");

                                //logger.Info( transactionmessage.NetworkID + ":" + transactionmessage.OperatorID  +  " Send Message to: " + Transmitter Client Connected Successfully\n");

                                logger.Info(transactionmessage.NetworkID + ":" + transactionmessage.OperatorID + ":Out Message: Destination [" + transactionmessage.Msisdn + "] Source [" + transactionmessage.ShortCode
                                            + "]Body [" + transactionmessage.ResponseMessage + "]\n");



                                //Console.WriteLine("|" +  + ":" +  + ":" +  DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + ": Sent Message to: "  + transactionmessage.Msisdn + " : Message: " + transactionmessage.ResponseMessage);
                            }
                            catch (Exception ex01)
                            {
                                logger.Error(transactionmessage.NetworkID + ":" + transactionmessage.OperatorID + ":Out Message Destination[" + transactionmessage.Msisdn + "] Source [" + transactionmessage.ShortCode
                                             + "]Error [" + ex01.Message + "]\n");
                            }

                            //ResSubmit_Sm = smppconn.SubmitSm(new SmppSubmitSmReq(ReqSubmit_Sm));
                        }
                        else
                        {
                            return(sendSuccess);
                        }
                        // if (ResSubmit_Sm.Header.CommandStatus == 0)

                        try
                        {
                            if (ResSubmit_Sm.Header.CommandStatus == 0)
                            {
                                sendSuccess = true;
                            }
                        }
                        catch (Exception ex02)
                        {
                            logger.Error(transactionmessage.NetworkID + ":" + transactionmessage.OperatorID + ":Out Message Destination[" + transactionmessage.Msisdn + "] Source [" + transactionmessage.ShortCode
                                         + "]Error [" + ex02.Message + "]\n");
                        }
                    }
                    catch (Exception exception)
                    {
                        logger.Error(exception.Message + "\n");
                    }
                }
            }
            else
            {
                try
                {
                    ReqSubmit_Sm.DestinationAddressTon = Convert.ToByte(1);
                    ReqSubmit_Sm.DestinationAddressNpi = Convert.ToByte(1);
                    ReqSubmit_Sm.SourceAddressNpi      = Convert.ToByte(0);
                    ReqSubmit_Sm.SourceAddressTon      = Convert.ToByte(5);
                    ReqSubmit_Sm.RegisteredDelivery    = new BitBuilder(1);
                    ReqSubmit_Sm.DestinationAddress    = transactionmessage.Msisdn;
                    ReqSubmit_Sm.ShortMessage.SetValue(transactionmessage.ResponseMessage); // = mySmppClient.SetShortMessage(ReqSubmit_Sm.Data_Coding, m_Message);
                    ReqSubmit_Sm.SourceAddress = transactionmessage.ShortCode;

                    if (smppconn.Connected == true)
                    {
                        try
                        {
                            ResSubmit_Sm = smppconn.SubmitSm(new SmppSubmitSmReq(ReqSubmit_Sm));
                            // No copy to logger

                            logger.Info(transactionmessage.NetworkID + ":" + transactionmessage.OperatorID + ":Out Message: Destination [" + transactionmessage.Msisdn + "] Source [" + transactionmessage.ShortCode
                                        + "]Body [" + transactionmessage.ResponseMessage + "]\n");
                        }
                        catch (Exception ex03)
                        {
                            logger.Error(transactionmessage.NetworkID + ":" + transactionmessage.OperatorID + ":Out Message Destination[" + transactionmessage.Msisdn + "] Source [" + transactionmessage.ShortCode
                                         + "]Error [" + ex03.Message + "]\n");
                        }
                    }
                    else
                    {
                        return(sendSuccess);
                    }
                    //ResSubmit_Sm = smppconn.SubmitSm(new SmppSubmitSmReq(ReqSubmit_Sm));

                    try
                    {
                        if (ResSubmit_Sm.Header.CommandStatus == 0)
                        {
                            sendSuccess = true;
                        }
                    }
                    catch (Exception ex04)
                    {
                        logger.Error(transactionmessage.NetworkID + ":" + transactionmessage.OperatorID + ":Out Message Destination[" + transactionmessage.Msisdn + "] Source [" + transactionmessage.ShortCode
                                     + "]Error [" + ex04.Message + "]\n");
                    }
                }
                catch (SmppException exception)
                {
                    logger.Error(exception.Message + "\n");
                }
            }

            return(sendSuccess);
        }
Exemplo n.º 3
0
 public SmppAsyncSubmitSmResEventArgs(SmppSubmitSmRes ResponsePdu)
 {
     _ResponsePdu = ResponsePdu;
 }
Exemplo n.º 4
0
        void ProcessAsyncPdu(SmppAsyncObject AsyncObject, SmppAsyncObject.SmppAsyncCompleted CompletionReason)
        {
            try {
                Exception exception = null;
                object    obj2      = null;
                FindAndRemoveTransaction(AsyncObject);
                switch (CompletionReason)
                {
                case SmppAsyncObject.SmppAsyncCompleted.Response: {
                    var header = new SmppHeader(AsyncObject.PduRes);
                    if (header.CommandId != -2147483648)
                    {
                        break;
                    }
                    exception = new SmppGenericNackException();
                    goto Label_008E;
                }

                case SmppAsyncObject.SmppAsyncCompleted.Timeout:
                    exception = new SmppTimeOutException();
                    Interlocked.Increment(ref ConsecutiveTimeouts);
                    if (ConsecutiveTimeouts > Settings.WindowSize)
                    {
                        BeginUnBind();
                    }
                    goto Label_008E;

                case SmppAsyncObject.SmppAsyncCompleted.Disconnection:
                    exception = new SmppInvalidConnectionStateException();
                    goto Label_008E;

                default:
                    goto Label_008E;
                }
                obj2 = new SmppSubmitSmRes(AsyncObject.PduRes);
                ConsecutiveTimeouts = 0;
Label_008E:
                switch (AsyncObject.Request.Header.CommandId)
                {
                case 3: {
                    var args3 = new SmppAsyncQuerySmResEventArgs();
                    args3._State            = AsyncObject.State;
                    args3._ProcessException = exception;
                    args3._RequestPdu       = AsyncObject.Request as SmppQuerySmReq;
                    args3._ResponsePdu      = obj2 as SmppQuerySmRes;
                    var handler3 = AsyncObject.Callback as SmppQuerySmResHandler;
                    handler3(this, args3);
                    return;
                }

                case 4: {
                    var args = new SmppAsyncSubmitSmResEventArgs();
                    args._State            = AsyncObject.State;
                    args._ProcessException = exception;
                    args._RequestPdu       = AsyncObject.Request as SmppSubmitSmReq;
                    args._ResponsePdu      = obj2 as SmppSubmitSmRes;
                    var handler = AsyncObject.Callback as SmppSubmitSmResHandler;
                    handler(this, args);
                    return;
                }

                case 0x15:
                    break;

                default:
                    return;
                }
                var e = new SmppAsyncEnquireLinkResEventArgs();
                e._State            = AsyncObject.State;
                e._ProcessException = exception;
                e._RequestPdu       = AsyncObject.Request as SmppEnquireLinkReq;
                e._ResponsePdu      = obj2 as SmppEnquireLinkRes;
                var callback = AsyncObject.Callback as SmppAsyncEnquireLinkResHandler;
                callback(this, e);
            } catch (Exception exception2) {
                log.Error("Devshock: " + exception2);
            }
        }
Exemplo n.º 5
0
 public int SubmitSmRes(Guid ConnGuid, SmppSubmitSmRes ResponsePdu)
 {
     return(TcpServer.Send(ConnGuid, ResponsePdu.ToByteArray()));
 }