SMS сервіс

Ви переглядаєте стару версію цієї сторінки. Дивітьсяпоточну версію.

Загальний опис документу

Словник термінів

Контент-провайдер – компанія-партнер, що надає SMS-сервіс для абонентів стільникового зв'язку.

Агрегатор – компанія ЗАТ «Зв'язковий Завантаження», що забезпечує отримання та/або відправлення SMS-повідомлень абонентам через власне підключення до SMS-центру оператора, який обслуговує цього абонента.

Оператор - оператор стільникового зв'язку, який надає послуги зв'язку на території України.

Короткий номер – ІДНН, що використовується Агрегатором з номерної ємності Оператора на підставі договору з Оператором для надання Контент-Послуг. Номер, який визначається набором чотирьох цифр і доступний для надсилання на нього коротких повідомлень будь-яким абонентом Оператора.

Ключове слово (Регулярний вираз) – слово, яке надсилається абонентом у SMS-повідомленні, використовується для ідентифікації партнера та для отримання абонентом контенту від SMS-сервісу.

Регулярний вираз – розширення ключових слів - спеціально сформований шаблон для зіставлення символьних рядків запиту. Синтаксис регулярних виразів описаний на http://java.sun.com/developer/technicalArticles/releases/1.4regex/index.html. Тут і далі регулярні висловлювання використовуються для розпізнавання ключового слова із синонімами.

Протокол – опис послідовності дій і формату даних, що передаються з передачі запиту абонента від Контент-провайдера до Агрегатора і назад.

MO-повідомлення - SMS-повідомлення від абонента.

MT-повідомлення - SMS-повідомлення, надіслане абоненту.

Загальний опис SMS-сервісу

За допомогою SMS-сервісу компаніяКонтент-провайдер може здійснити продаж SMS послуг через короткий номер компанії Агрегатора.

Компанія Контент-провайдер не передає контент компанії Агрегатору.

Компанія Агрегатор виконує такі функції:

  • приймає SMS-повідомлення від абонентів;
  • вибирає SMS-повідомлення, які містять ключове слово компанії Контент-провайдера, або мають бути передані Контент-провайдеру в рамках функціональності сесій (див. далі у документі);
  • передає прийняті від абонентів SMS-повідомлення компанії Контент-провайдеру за протоколом;
  • приймає за протоколом контент від компанії Контент-провайдера для надсилання абоненту;
  • надсилає абоненту контент.

Оператори, що обслуговуються

Контент-провайдер може працювати через Агрегатора з абонентами наступних операторів:

Порядок роботи

  1. Абонент надсилає SMS із запитом на короткий номер Агрегатора.
  2. Агрегатор передає Контент-провайдеру отримані SMS.
  3. Контент-провайдер передає Агрегатору SMS для надсилання абоненту (це може бути SMS-відповідь на запит абонента або SMS, не пов'язане із запитом абонента).
  4. Агрегатор надсилає SMS абоненту.

Якщо протягом певного тайм-ауту від Контент-провайдера не надійшло відповіді, абоненту надсилається повідомлення про тимчасову недоступність сервісу з проханням повторити запит пізніше.

У відповідь один запит абонента може посилатися кілька окремих SMS.

У відповідь на запит абонента може не надсилатися жодного SMS у випадках, передбачених логікою сервісу.

Повторне оброблення повідомлень у разі відключення сервісу Контент-провайдера

Якщо сервіс Контент-провайдера не відповідає на виклик Агрегатора:

  • Відбувається переміщення всіхпризначених для цього сервісу повідомлень у чергу «Відкладені».
  • Не сервіс, що відповідає, позначається як «не працюючий», і для нього встановлюється час, протягом якого всі повідомлення, що надійшли Агрегатору від Оператора і призначені для цього сервісу, поміщаються в чергу «Відкладені». Час, на який сервіс позначатиметься як «не працюючий», може встановлюватися індивідуально для кожного сервісу і за замовчуванням дорівнює 20 секунд.
  • Всім абонентам, які звернулися до сервісу, що не працює, надсилається повідомлення про недоступність сервісу та затримку в наданні послуг (у разі якщо для сервісу є таке налаштування). За промовчанням текст повідомлення «Послуга тимчасово недоступна. Спробуйте пізніше».
  • Після закінчення відключення Агрегатор намагається відправити повідомлення з черги «Відкладені» на сервіс Контент-провайдера. Якщо сервіс знову не доступний - він знову позначається як "не працює".
  • Для кожного повідомлення робиться максимум 200 спроб надсилання, після чого повідомлення видаляється з черги.

Фрод-фільтр повідомлень

За бажанням для Контент-провайдера може бути включений фрод-фільтр повідомлень, що входять від абонента. Це налаштування може знадобитися для зменшення кількості прецедентів, коли абонент, який надсилає SMS, йде в мінус. У цьому випадку Агрегатор не отримує плату за SMS від Оператора, і, як наслідок, не сплачує ці SMS Контент-провайдеру.

Опис функціоналу сесійності SMS-сервісу

Загальний опис функціоналу сесійності

Функціонал сесійності дозволяє абоненту користуватися SMS-сервісом, не обмежуючи SMS за ключовими словами.

Для відкриття сесії абоненту необхідно надіслати ключове слово на короткий номер. Для абонента на встановленомуУ короткому номері відкриється сесія. Сесія відкривається певний інтервал часу.

Якщо абонент надсилає SMS-повідомлення на короткий номер і потрапляє в часовий інтервал, коли сесія на цьому короткому номері активна, йому відповідає сервіс, що описується в документі, незалежно від того, який текст він передав у SMS-повідомленні.

Відкриття сесії

Відкриття сесії відбувається під час надсилання абонентом SMS-повідомлення з ключовим словом для відкриття сесії на короткий номер. Якщо абонент надіслав правильне ключове слово, для нього на короткому номері відкривається сесія. Тимчасовий інтервал активної сесії прописано у конфігурації SMS-сервісу. Протягом цього інтервалу часу всі повідомлення, надіслані на цей номер абонентом, будуть оброблятися сесійним SMS-сервісом.

Усі SMS-повідомлення з кодовим словом або SMS-повідомлення, які потрапили до сесії, передаються Контент-провайдеру за протоколом, описаним нижче. У відповідь абоненту також надсилається текст, наданий Контент-провайдером.

Продовження часу сесії

Продовження часу сесії відбувається, якщо у абонента в момент надсилання SMS-повідомлення сесія на короткому номері активна. У цей момент SMS-повідомлення може містити будь-який текст, окрім команди виходу із сесії. Сесія продовжується на час активності сесії, встановлений у конфігурації сервісу.

Закриття сесії

Час активної сесії абонента закінчується, якщо він у тимчасовий період сесії не надіслав жодного SMS-повідомлення на короткий номер. Після закінчення часу активності сесії абоненту надходить SMS-повідомлення, що сповіщає його про те, що час сесії минув, і сесія закривається. Повідомлення, що повідомляє абонента про те, що сесія закінчилася, може не надходити абоненту, даний параметр єналаштовується.

Абонент може самостійно закрити сесію. Для цього йому необхідно надіслати ключове слово виходу із сесії на короткий номер. У відповідь абоненту прийде SMS-повідомлення, що підтверджує закриття сесії, і сесія закривається.

Дані, необхідні для запуску SMS-сервісу

Дані, які Контент-провайдер повинен надати агрегатору для запуску SMS-сервісу

Для запуску сервісу компанія Контент-провайдер має надати Агрегатору такі дані:

Дані, які Контент-провайдер повинен надати агрегатору для запуску сесійного SMS-сервісу

Для запуску сесійного SMS-сервісу Контент-провайдер повинен надати Агрегатору такі дані:

Дані, що видаються Контент-провайдеру для запуску SMS-сервісу

Для отримання можливості відправляти SMS-повідомлення в рамках SMS-сервісу Контент-провайдер отримує від Агрегатора такі дані:

  • Адреса хоста та порт – дані для підключення.
  • system_id – унікальний ідентифікатор партнера. Параметр видається один раз при підключенні першого сервісу.
  • password – пароль для доступу до сервісу Агрегатора. Параметр видається один раз при підключенні першого сервісу.
  • serviceId – унікальний ідентифікатор сервісу. Параметр видається при підключенні сервісів.

Передача кодів операторів

Агрегатор надає Контент-провайдеру можливість роботи з більш ніж 30 операторами стільникового зв'язку стандарту GSM на всій території України. Агрегатор надає Контент-провайдеру перелік SMS-центрів операторів GSM та відповідні коди.

Передача здійснюється через параметр протоколу Код оператора.

Опис протоколу взаємодії

Загальний описпротоколу

Протокол взаємодії Контент-провайдера та Агрегатора ґрунтується на протоколі Short Message Peer to Peer (SMPP) v3.4.

Цей протокол реалізує SMPP v3.4 тільки в частині підключення, обміну отримання, надсилання SMS та підтримки зв'язку. Не передбачена функціональність, що реалізує мульти-SMS команди, заміну та скасування SMS.

Нижче в документі описуються методи та терміни, повний опис яких потрібно шукати у специфікації SMPP 3.4, яку можна переглянути тут SMPPv3.4(RU).pdf.

Підключення

Параметри підключення

Параметрами підключення Контент-провайдера є параметри, що видані Контент-провайдеру Агрегатором при підключенні сервісу.

Підключення здійснюється за протоколом SMPP v3.4.

Команда BIND

Підключення Контент-провайдера здійснюється в режимі transceiver шляхом надсилання у встановлене TCP/IP з'єднання SMPP команди BIND_TRANSCEIVER. У команді мають бути встановлені такі поля

    system_ >Інші поля команди ігноруються Агрегатором і можуть мати будь-які значення.

У відповідь на команду BIND_TRANSCEIVER Агрегатор відправляє BIND_TRANSCEIVER_RESP що містить у полі command_status одне з наступних значень, що відповідають результатам виконання команди BIND_TRANSCEIVER:

  • 0x0 – ESME_ROK – при успішному виконанні команди BIND_TRANSCEIVER.
  • 0xD - ESME_RBINDFAIL - Bind Failed внутрішня помилка Агрегатора, з'єднання не встановлено, необхідно повторити спробу.
  • 0x5 - ESME_RALYBND - Already in Bound State, Контент-провайдер з таким system_id вже підключений.
  • 0xF – ESME_RINVSYSID – некоректний system_id.
  • 0xE - ESME_RINVPASWD – некоректний password.

Команда UNBIND

Принеобхідності відключення Контент-провайдер надсилає команду UNBIND. У відповідь Агрегатор надсилає UNBIND_RESP та закриває з'єднання.

Підтримка зв'язку між Контент-провайдером та Агрегатором

Контент-провайдер

Контент-провайдер повинен регулярно перевіряти наявність зв'язку з Агрегатором через надсилання команди ENQUIRE_LINK.

Інтервал посилки команди ENQUIRE_LINK має бути в межах 60-180 секунд.

Агрегатор протягом 10 секунд повинен відповісти ENQUIRE_LINK_RESP.

Якщо в зазначений проміжок часу від Агрегатора не надійшов ENQUIRE_LINK_RESP:

  • Контент-провайдер повинен надіслати команду UNBIND, і 30 секунд чекати на UNBIND_RESP;
  • якщо UNBIND_RESP не надходить, Контент-провайдер повинен закрити з'єднання, почекати 3 хвилини та спробувати встановити з'єднання знову;
  • якщо UNBIND_RESP приходить у зазначений період, Контент-провайдер повинен не закривати з'єднання, а після не менше 1 (одної) хвилини, знову надіслати команду BIND.

З боку Агрегатора

Агрегатор може посилати ENQUIRE_LINK для перевірки працездатності Контент-провайдера.

Контент-провайдер протягом 10 секунд має відповісти ENQUIRE_LINK_RESP.

Якщо у вказаний проміжок часу ENQUIRE_LINK_RESP не надійшов, то:

  • Агрегатор закриває з'єднання з Контент-провайдером;
  • Контент-провайдер відновлює з'єднання самостійно.

Отримання SMS від абонента (DELIVER_SM)

Відправлені Абонентами SMS Агрегатор передає Контент-провайдеру в пакеті DELIVER_SM. Використовуються такі параметри:

Використовувані параметри

Параметр Опис

Відправник. Телефон абонента.

source_addr
destination_addrОдержувач. Короткий номер сервісу.
esm_classРежим роботи та тип повідомлення
data_codingСхема/тип кодування повідомлення
message_payloadТекст SMS у кодуванні USC-2
TLV параметриОписано нижче

Використовувані параметри TLV

Під час передачі SMS-контент-провайдеру від абонента використовуються наступні TLV-параметри.