Я надеюсь, что кто-нибудь поможет мне решить мою проблему, связанную с тем, что DLR "промежуточного" типа (т.е. type=4) продолжают стоять в очереди.
Насколько я понимаю, в США DLR, которые являются успешными и окончательными (т.е. ДОСТАВЛЕНЫ (1)), встречаются редко, в то время как промежуточные DLR, такие как «Очередь на SMSC». ACCEPTD, REJECTD встречаются гораздо чаще, поскольку операторы связи принимают сообщения от имени своих клиентов.
SMSC, который мы используем, отправляет обратно исключительно type=2 для недоставленных сообщений и type=4 DLR для сообщений, которые успешно доставлены оператору. Мы используем внутреннее хранилище DLR в Kannel (не используя mysql), и проблема в том, что DLR типа = 4 не считается окончательным и, следовательно, не покидает очередь DLR. Когда мы получаем обратно DLR type=4, в журнале Bearerbox появляются следующие сообщения.
2013-11-05 14:59:06 [15084] [6] DEBUG: DLR[internal]: Looking for DLR smsc=test, ts=4154168431, dst=<censored>, type=4
2013-11-05 14:59:06 [15084] [6] DEBUG: DLR[internal]: created DLR message for URL <http://localhost/dlr.php>
2013-11-05 14:59:06 [15084] [6] DEBUG: DLR[internal]: DLR not destroyed, still waiting for other delivery report
Похоже, что Kannel ожидает прихода DLR типа = 1 или 2, прежде чем он уберет DLR из своей очереди.
Есть ли настройка Kannel, чтобы сделать так, чтобы DLR типа = 4 считался окончательным DLR и, таким образом, очищал DLR от памяти? Я запутался с настройкой dlr-маски в Kannel, но не думаю, что этот атрибут содержит мой ответ.
Заранее спасибо и, пожалуйста, дайте мне знать, если я могу предоставить дополнительную информацию.
TL;DR: Как я могу заставить Kannel считать DLR типа = 4 окончательным DLR.