Помилки та обмеження
Підключення відхилено
Після будь-якого відхиленого bind сервер надсилає unbind і закриває з'єднання. Причина — у
command_status відповіді bind_resp:
| Код | Що означає | Що робити |
|---|---|---|
0x0F | Логін або пароль не збігаються | Перевірте, що system_id — номер телефону в міжнародному форматі, а пароль — від кабінету. Якщо обидва правильні — див. нижче |
0x0D | Обліковому запису не можна підключатися | Увімкніть перемикач SMPP на екрані налаштувань API; перевірте, що адреса, з якої ви підключаєтеся, є в полі IP-адреса, або залиште поле порожнім; переконайтеся, що обліковий запис активний |
0x05 | У облікового запису вже стільки сесій, скільки дозволено, або це з'єднання вже підключене | Закрийте сесії, які більше не потрібні, або попросіть підтримку підняти ліміт. Одне з'єднання — один bind |
0x0F при правильних логіні й паролі має ще три причини:
- Забагато невдалих спроб. Після двадцяти невдалих підключень з однієї адреси або для одного логіна за п'ять хвилин кожне наступне відхиляється, доки ці п'ять хвилин не минуть, — навіть із правильним паролем. Виправте налаштування, зачекайте й підключіться знову.
- Обліковий запис заблоковано після невдалих входів. Невдалі підключення рахуються разом із невдалими входами в кабінет; понад ліміт обліковий запис перестає приймати пароль. Зверніться до підтримки.
- Пароль задано ще в старому кабінеті й відтоді не змінювали. Задайте новий пароль у кабінеті: підключення приймає лише пароль сучасного типу.
0x0D може прийти й на кілька секунд під час робіт на нашому боці: якщо налаштування
правильні, підключіться знову за хвилину.
submit_sm відхилено
Ці помилки приходять одразу в submit_sm_resp, і повідомлення не приймається:
| Код | Що означає |
|---|---|
0x0A | source_addr порожній або задовгий: до 11 символів для імені, до 15 цифр для номера |
0x0B | У destination_addr немає цифр або їх понад 20 |
0x45 | Непідтримуваний data_coding або довжина UDH не збігається з повідомленням |
0x0D | Обліковий запис заблоковано під час сесії |
0x14 | Тимчасовий збій на нашому боці — надішліть те саме повідомлення трохи пізніше |
0x08 | Внутрішня помилка — надішліть знову; якщо повторюється, зверніться до підтримки |
Усе інше — баланс, одержувач, ім'я відправника, текст — перевіряється вже після того, як
повідомлення прийнято, і повідомлення, що не пройшло перевірку, повертається звітом REJECTD
з кодом у err:: див. Звіти про доставку.
Чого сесія не розуміє
Сесія обробляє bind_transmitter, bind_receiver, bind_transceiver, submit_sm,
deliver_sm_resp, enquire_link і unbind. На query_sm, cancel_sm, replace_sm,
submit_multi і data_sm приходить відповідь із кодом 0x03 — сесія не рветься, але нічого не
відбувається. Статус повідомлення приходить лише у звіті про доставку.
Обмеження
| Що | Обмеження |
|---|---|
| Сесій на обліковий запис | Обмежено; підключення понад ліміт отримує 0x05 |
Непідтверджені submit_sm (вікно) | Фіксованого ліміту немає: PDU одного з'єднання обробляються по черзі, і кожна відповідь приходить раніше, ніж береться наступний PDU |
| Швидкість відправлення | Без обмеження на сесію |
| Непідтверджені звіти на сесію | 20 |
short_message | 255 октетів |
| Один PDU | 64 КБ |
| Тиша з вашого боку | Приблизно три хвилини без жодного PDU — і сесію закрито |
| Невдалі підключення | 20 за п'ять хвилин з однієї адреси або для одного логіна |
Коли щось не працює
- З'єднання не відкривається. Перевірте вихідні правила свого файрвола: адреси — на сторінці IP-адреси. Команди на сторінці Підключення по SMPP покажуть, чи досяжний вхід з вашого сервера.
- TLS не підключається. Підключайтеся за ім'ям
smpp-tls.…, а не за адресою, і переконайтеся, що клієнт надсилає ім'я (SNI): сертифікат обирається за ним. - Сесія рветься кожні кілька хвилин. Надсилайте
enquire_linkкожні 30–60 секунд. - Звітів немає. Звіти приходять лише в сесії receiver і transceiver — сесія, підключена як
transmitter, їх не отримує. Перевірте, що ви відповідаєте на кожен
deliver_smі що звіти не забирає інша сесія облікового запису.