Page 1 of 1

Sending DeliverSmResp asynchronously

Posted: Fri Apr 13, 2018 6:15 am
by striemer
Hi,
We would like to send the DeliverSmResp message asynchronously ie. after the DeliverSmEventHandler has returned (in case we cannot process the DeliverSm right now due to application state, ie external system not available). Is there a way to do this ?

Or is the correct way of handling the event throwing an exception if for some reason the delivery receipt cannot be processed at this time and this causes the DeliverSm to be resent by the SMSC ?

Thanks,
Stefan

Re: Sending DeliverSmResp asynchronously

Posted: Fri Apr 13, 2018 11:05 am
by alt
Hi Stefan,

I explain how library reacts on evDeliverSm event handler errors.
If handler throws exception, it sends ESME_RSYSERR response status
if handler is not attached to the event, it sends ESME_RDELIVERYFAILURE

You can set any status for data.Response.Status property and library sends DeliverSmResp with this status to SMSC.
When you set data.Response = null, library sends nothing. But there is no ability to send only response.

It would also be a good solution, if SMSC supported response status, that tells him to repeat DeliverSm in some time. Please ask your provider about it.

I would receive DeliverSm PDU and save it to file or database or send to some message broker. When external system is started again, it can take saved PDUs and process them.