libmsc: Don't send SMS STATUS REPORT locally if the ESME accepted it.

When using smpp-first, after the ESME accepts our STATUS REPORT,
we were sending it locally into gsm340_rx_sms_submit() anyway.
In the case of the ESME mirroring the report back to us, this
would result in two copies of the status report in the SMS
database, which were also both then delivered to the MS.
This causes no visible error to the user but is a waste of radio
resources.

With this patch, we check if it is the sms_report that has had 
receiver set in sms_route_mt_sms() and not the original SMS we
are reporting on, which of course already has receiver set.

Change-Id: I3529b89535800eaa1127721d613fa7bbcb8b23be
This commit is contained in:
Keith Whyte 2018-11-16 13:29:05 +00:00
parent ba8a007a2d
commit bea25f1302
1 changed files with 1 additions and 1 deletions

View File

@ -691,7 +691,7 @@ static void sms_status_report(struct gsm_sms *gsms,
}
/* No route via SMPP, send the GSM 03.40 status-report now. */
if (gsms->receiver)
if (sms_report->receiver)
gsm340_rx_sms_submit(sms_report);
LOGP(DLSMS, LOGL_NOTICE, "Status report has been sent\n");