Message Loss while using asynchronous message sending

.NET library for SMPP protocol
koolpitt
Posts: 3
Joined: Thu Sep 26, 2013 6:32 pm

Re: Message Loss while using asynchronous message sending

Post by koolpitt » Tue Jul 29, 2014 2:18 pm

Hi Nick,

1) I prepare my message to send using InetLab, this splits the message into 1 or more parts that are required.

Please how did you achieve that.
NickAskew
Posts: 60
Joined: Tue Oct 07, 2008 1:35 pm

Re: Message Loss while using asynchronous message sending

Post by NickAskew » Tue Jul 29, 2014 3:39 pm

Hi KoolPitt,

Dim m_SmppClient. As Inetlab.SMPP.SmppClient = New Inetlab.SMPP.SmppClient

Dim listOfSubmitSm As List(Of SubmitSm) = m_SmppClient.PrepareSubmit(SubmitMode.ShortMessage, m_SourceAddrTon, m_SourceAddrNpi, SourceMobileNum, m_DestAddrTon, m_DestAddrNpi, DestMobileNum, DataCodings.Default, TextMessageBody)

For Each ssm As SubmitSm In listOfSubmitSm
' ssm is now equal to one of the parts of the long message
' My back end database has a table (message table) that stores every message (for example: 543 characters of a long message)
' I then have a related table (message table->message part table) which stores the key information from the SubmitSm for each part of that message
' I then have a related table (message parts table->message part statuses) which stores the key information about the delivery of attempt of this particular piece of the long message (like sent to SMSC, intermediate notification from destination network, final delivery state)
Next

It is very important you know what the language of the message is so that you can specify the appropriate [DataCodings.] enumeration because this has a final influence on how many parts a long message is split into (UCS2 character set can only support 70 characters per single sms, Default/Latin/7 Bit can support 160, 8 Bit only 140..)

Regards
Nick
ProcessFlows UK Ltd
http://www.processflows.co.uk/
koolpitt
Posts: 3
Joined: Thu Sep 26, 2013 6:32 pm

Re: Message Loss while using asynchronous message sending

Post by koolpitt » Tue Aug 05, 2014 3:59 pm

Thanks Nick.

I could not find a "PrepareSubmit" method on v1.1 but used the "Create" method of the ISubmitSmBuilder to generate the List<SubmitSm> for a long message.

Please how can I set the Concatenation parameters for each part when recreating a SubmitSm object from the information already saved in the database.

Thanks once again.
NickAskew
Posts: 60
Joined: Tue Oct 07, 2008 1:35 pm

Re: Message Loss while using asynchronous message sending

Post by NickAskew » Tue Aug 05, 2014 4:20 pm

Hi KoolPitt,

That information has to be included in the UDH (User Data Header), you can find everything you ever wanted to know about the SMPP 3.4 protocol in this PDF http://docs.nimta.com/SMPP_v3_4_Issue1_2.pdf.

Personally I would store the original message text and data coding and recreate it from that so that the UDH is created for you, or if you really want to store the SubmitSm's unmodified in your database you will find you can serialize/deserialize them and store them in a varbinary field in a database.

If you tell me what you are trying to achieve I may have done something similar and be able to advise you further.

Regards
Nick
ProcessFlows UK Ltd
http://www.processflows.co.uk/
koolpitt
Posts: 3
Joined: Thu Sep 26, 2013 6:32 pm

Re: Message Loss while using asynchronous message sending

Post by koolpitt » Tue Aug 05, 2014 4:54 pm

I simply needed to save the text and concatenation parameters for each message part and recreate the SubmitSm from it with the udh in place when sending.

I have been able to do that now.

Thanks.
majortargets
Posts: 54
Joined: Mon Nov 16, 2009 3:48 pm
Location: United Kingdom
Contact:

Re: Message Loss while using asynchronous message sending

Post by majortargets » Fri Oct 24, 2014 4:45 pm

Hey Koolpit,

Could you share your implementation of the code with us please.

Thanks
Locked