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); }
public SmppAsyncSubmitSmResEventArgs(SmppSubmitSmRes ResponsePdu) { _ResponsePdu = ResponsePdu; }
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); } }
public int SubmitSmRes(Guid ConnGuid, SmppSubmitSmRes ResponsePdu) { return(TcpServer.Send(ConnGuid, ResponsePdu.ToByteArray())); }