IOSOR База знань

Збій enquire_link в SMPP не є доставленим трафіком

Дізнайтеся, як обробка збоїв enquire_link та втрачених SMPP-сесій у IOSOR запобігає хибним DLR та захищає баланс від помилкових списань.

Коли запит enquire_link в SMPP не отримує відповіді, з’єднання вважається розірваним, а повідомлення — недоставленими. Помилкове сприйняття розриву сокета як успішної доставки призводить до хибних DLR та неправомірних списань коштів. Платформи повинні негайно закривати неактивні bind, відкидати непідтверджені PDU та скасовувати утримання балансу в IOSOR.

Контроль сесії SMPP через enquire_link та виявлення неактивних bind

У протоколі SMPP запити enquire_link виконують роль основного L7-heartbeat між клієнтом та SMSC. Якщо сокет зависає без відправки пакетів UNBIND або TCP FIN, виникає прихований розрив сесії. Без регулярної перевірки черга продовжує надсилати submit_sm PDU у неактивний канал. У IOSOR суворі таймаути очікування enquire_link_resp виявляють неактивний bind до того, як виникнуть помилкові списання у фінансовому реєстрі.

Запобігання хибним DLR під час розриву сокетного з'єднання

Слабке місце застарілих CPaaS-систем — оптимістичне формування статусів доставки. Якщо сесія обривається після отримання submit_sm_resp, але до підтвердження кінцевої доставки, система не повинна вважати повідомлення доставленим. Списання коштів за недоставлений трафик під час мовчазного обриву сокета створює фінансові розбіжності. IOSOR зупиняє фіксування списань при таймауті enquire_link, переводячи неподтверджені стани у статус збою або резервного переключення.

Повернення балансового резерву у разі таймауту сесії

Під час надходження submit_sm платформа IOSOR створює тимчасове резервування коштів на балансі. Якщо SMPP-bind розривається через відсутність відповідей enquire_link_resp, платформа відхиляє завислі відправки. Зарезервована сума негайно повертається на баланс клієнта, а не списується як остаточна плата. Це запобігає фантомним списанням та гарантує відповідність балансу реальному стану мережі.

Ізоляція збійних каналів та автоматичний резервний маршрут

Виявлення неактивного bind має запускати миттєве перенаправлення трафіку. Коли кількість збоїв enquire_link перевищує поріг, IOSOR ізолює збійну сесію, генерує системну подію та перенаправляє трафік OTP і транзакційних SMS на резервні канали. Це зберігає низьку затримку та запобігає втраті повідомлень.

Синхронізація системних статусів у логах та webhook

Забезпечення узгодженості між протоколом, фінансовим реєстром та webhook вимагає єдиної мови статусів. У разі втрати з'єднання IOSOR фіксує послідовність PDU, відправляє розширені webhook-події та синхронізує білінг. Ознайомтеся з корисними матеріалами для оптимізації:

Почніть з IOSOR

Відкрийте консоль IOSOR та перевірте налаштування таймауту heartbeat для ваших активних SMPP-сесій. Встановіть поріг спроб enquire_link рівним двом непідтвердженим запитам для миттєвої ізоляції мертвого байнду. Переконайтеся, що фінансові холди автоматично знімаються, а статус трафіку не конвертується у фейковий DLR у разі раптового обриву TCP-з'єднання.

Підсумок IOSOR

Втрата відповідей enquire_link_resp безпосередньо вказує на обрив сесії L7, що унеможливлює отримання реальних підтверджень доставки від шлюзу. Цей матеріал довів, що автоматичне проставляння успішного DLR за відсутності живого байнду призводить до безпідставного списання балансу та розходжень у білінгу.

Налаштовуйте автоматичне повернення зарезервованих коштів та негайний перемаршрут трафіку при втраті heartbeat-сигналу. Не дозволяйте системі генерувати оптимістичні DLR або залишати кошти заблокованими, коли сесія SMPP втратила з'єднання.

Чи був матеріал корисним?

Пов’язані гіди

  • Віконні ліміти SMPP та обмеження сесій

    Дізнайтеся, як розраховувати високонавантажені SMPP-підключення, налаштовувати розмір вікна, обмежувати сесії та керувати балансом в IOSOR.

  • Порівняння SMPP Binds та ключів REST API

    Аналіз відмінностей між сесіями SMPP та REST API ключами в IOSOR. Механіка ковзних вікон, ротація доступів та налаштування параметрів для розробників.