Page 1 of 1

Help for SmppClient.Submit()

Posted: Mon May 26, 2014 8:21 am
by jfl
Hi, where can I find a list of ALL the possible values for the Submit Response Status which can be returned by Submit()?

The reason why I am asking this is because in some cases, a message needs to be submitted again, for example when I got a status of ESME_RTHROTTLED, or SMPPCLIENT_RCVTIMEOUT, but I do not want to get in a scenario where I submit messages that was already submitted, like an infinite loop that will generate an infinite bill....

Or can I reason that if I got a MessageId in the response, then the message was submitted, otherwise not and should be re-sent?

Re: Help for SmppClient.Submit()

Posted: Tue May 27, 2014 8:02 am
by jfl
I went through all the possible values of Inetlab.SMPP.Common.CommandStatus and I think that I will need to retry to send the messages in the following cases:

ESME_RTHROTTLED: The message was only rejected because it was sent too fast, so it needs to be sent again later.

ESME_RINVBNDSTS: The message needs to be sent again, because the bind should have a proper status a bit later.

SMPPCLIENT_NOCONN: The message was not sent because there is a problem with the connection. Eventually the connection will be fine again and then the message needs to go out.

SMPPCLIENT_RCVTIMEOUT: The message was not sent because there is a problem with the connection. Eventually the connection will be fine again and then the message needs to go out.

SMPPCLIENT_UNBOUND: The message was not sent because there is a problem with the connection. Eventually the connection will be fine again and then the message needs to go out.

Do you agree?

Re: Help for SmppClient.Submit()

Posted: Wed May 28, 2014 2:28 pm
by jfl
I have in the meanwhile figured out that I should be using SubmityAsync instead... Also I was getting timeouts because I set the timeout value to 120 and then I see it is in milliseconds, not seconds.

Re: Help for SmppClient.Submit()

Posted: Fri Jun 06, 2014 7:34 am
by alt
Everything right.

also you can use increase number of worker threads for processing messages from remote side. Sometimes it helps to avoid SMPPCLIENT_RCVTIMEOUT.
It can be done with property client.WorkerThreads. Default is 3.