Вообще, сегодняшняя ситуация была из ряда вон выходящей. Одного из наших технологических партнеров угораздило обавестись SMS-шлюзом, который по SMPP на один ESME отдает не более чем 1 DLR (Delivery Report) в секунду.
Однако, спустя несколько недель камлания и плясок с бубном, партнер выяснил, что можно и повысить скорость отправки DLR, если организовать несколько подключений (ESME). При этом, как оказалось, можно вполне спокойно использовать один и тот же system-id на всех этих подключениях.
И тут меня в очередной раз спасла возможность Kannel подключать несколько SMSC с одинаковым system-id, чем я не преминул воспользоваться. Для начала выяснилось, что идентичные настройки нескольких group=smsc вполне нормально воспринимаются. При этом, не возникает проблем с отработкой DLR (пакет deliver_sm, пришедших через подключение, отличное от используемого для отправки MT SM в пакете submit_sm). В результате мы просто создаем десяток идентичных секций конфига с одинаковыми параметрами подключения к SMSC (включая smsc-id, allowed-smsc-id, preferred-smsc-id) и дальше внешние приложения продолжают думать, что у нас только одно подключение, только уведомления о доставке стали приходить заметно большим потоком.
А еще выяснилось, что при использовании команды remove-smsc административного API нужно ее вызвать стольько же раз, сколько идентичных секций прописано. Если же не все соединения удалены, то добавить еще одно с тем же именем Kannel банально не даст.