Don't Store an SMS in the database when the ESME is not Bound

We may never be able to deliver this SMS if it depends on the ESME, as we will
not resubmit the SMS to the ESME. Better to reject it at this time and have the MS
try again later.

Change-Id: I2c50904349dd4ed229b60b8468d776b817c0bd44
Related: OS#4740
This commit is contained in:
Keith Whyte 2020-09-01 16:41:32 +02:00 committed by keith
parent 8c472bd111
commit 192fefe53d
1 changed files with 10 additions and 0 deletions

View File

@ -633,6 +633,16 @@ static int gsm340_rx_tpdu(struct gsm_trans *trans, struct msgb *msg,
if (gsms->smpp.esme) {
return -EINPROGRESS;
}
/* This SMS got routed through SMPP, but the configured ESME was
* unavailable at this time. This is an OOO condition.
* Don't store this SMS in the database as we may never be
* able to deliver it. (we would need to process the stored SMS and
* attempt re-submission to the ESME)
*/
if (rc == GSM411_RP_CAUSE_MO_NET_OUT_OF_ORDER)
return rc;
/*
* This SMS got routed through SMPP or no receiver exists.
* In any case, we store it in the database for further processing.