private void server_evClientSubmitSm(object sender, SmppServerClient client, SubmitSm data) { long messageId = Interlocked.Increment(ref messageIdCounter); // You can set your own MessageId data.Response.MessageId = messageId.ToString(); _log.Info("Client {0} sends message From:{1}, To:{2}, Text: {3}", client.RemoteEndPoint, data.SourceAddress, data.DestinationAddress, data.GetMessageText(client.EncodingMapper)); _messageComposer.AddMessage(data); // Set unsuccess response status //data.Response.Status = CommandStatus.ESME_RSUBMITFAIL; if (data.SMSCReceipt != SMSCDeliveryReceipt.NotRequested) { //Send Delivery Receipt when required string messageText = data.GetMessageText(client.EncodingMapper); var dlrBuilder = SMS.ForDeliver() .From(data.DestinationAddress) .To(data.SourceAddress) .Receipt(new Receipt { DoneDate = DateTime.Now, State = MessageState.Delivered, MessageId = data.Response.MessageId, ErrorCode = "0", SubmitDate = DateTime.Now, Text = messageText.Substring(0, Math.Min(20, messageText.Length)) }); if (data.DataCoding == DataCodings.UCS2) { //short_message field cannot contain user data longer than 255 octets, //therefore for UCS2 encoding we are sending DLR in message_payload parameter dlrBuilder.MessageInPayload(); } client.Deliver(dlrBuilder).ConfigureAwait(false); } }
private void button1_Click(object sender, EventArgs e) { SMPPEncodingUtil.UCS2Encoding = Encoding.BigEndianUnicode; mmSessionBindInfo = new SessionBindInfo(); mmSessionBindInfo.SystemID = "********"; mmSessionBindInfo.Password = "******"; mmSessionBindInfo.ServerName = "*******"; mmSessionBindInfo.Port = 1234; mmSessionBindInfo.InterfaceVersion = InterfaceVersion.v34; mmSessionBindInfo.SystemType = "SMPP"; mmSessionBindInfo.AllowTransmit = true; mmSessionBindInfo.AllowReceive = true; mmSessionBindInfo.AddressNpi = NumberingPlanIndicator.Unknown; mmSessionBindInfo.AddressTon = TypeOfNumber.Unknown; mmSession = SmppClientSession.Bind(mmSessionBindInfo, 0); mmSession.PduReceived += new EventHandler <PduReceivedEventArgs>(PduReceivedEventHander); mmSubmitSm = new SubmitSm(); mmSubmitSm.DataCoding = DataCoding.UCS2; mmSubmitSm.ServiceType = "CMT"; // cellular messaging mmSubmitSm.RegisteredDelivery = RegisteredDelivery.DeliveryReceipt; mmSubmitSm.DestinationAddress.Address = "********"; // destination mmSubmitSm.DestinationAddress.Npi = NumberingPlanIndicator.ISDN; mmSubmitSm.DestinationAddress.Ton = TypeOfNumber.International; mmSubmitSm.SourceAddress.Npi = NumberingPlanIndicator.Unknown; mmSubmitSm.SourceAddress.Ton = TypeOfNumber.Aphanumeric; mmSubmitSm.SourceAddress.Address = "*********"; try { mmSubmitSm.SetMessageText(Encoding.UTF8.GetString(Encoding.UTF8.GetBytes("Текст")), DataCoding.UCS2); mmSubmitSmResp = mmSession.SendPdu(mmSubmitSm) as SubmitSmResp; MessageBox.Show(DateTime.Now.ToString()); } catch (Exception ex) { MessageBox.Show(ex.Message); } MessageBox.Show(mmSubmitSmResp.MessageID + " , " + mmSubmitSmResp.Header.ErrorCode.ToString() + " , " + mmSubmitSm.GetMessageText()); }