+7 (812) 326 10 75 Санкт-Петербург
8 800 333 10 75 Бесплатно по России

Протокол SMPP v.3.4 для рассылки SMS

stream_telecom_integration_specification_smpp_v3.4.pdf stream_telecom_integration_sms_smpp.pdf

Функции

Необходимые настройки SMPP-клиента, для подключения:

Используемый Протокол: SMPP 3.4;

Адрес SMSC: smpp.szk-info.ru

Порт SMSC: 2775 (резервный порт подключения 3700)

Логин/Пароль:выдается индивидуально каждому партнеру при подключении;

Тип подключения: TRANSCEIVER;

Значения для TON и NPI

src_addr_ton: 0x05

src_addr_npi: 0x01

dest_addr_ton: 0x01

dest_addr_npi: 0x01

Набор символов для сообщений, формирование склеенных сообщений

- Default Alphabet (GSM 3.38), 7-bit characters - maximum of 160 characters;
- Latin 1 (ISO-8859-1), 8-bit characters - limit is 140 characters;
- Unicode (UTF16/USC-2), 16-bit characters - limit is 70 characters;

Кодировка для сообщений на латинице: GSM 03.38, длина одного сообщения 160 символов. Запрещенные символы: ^,{,},\,[,],~,|,€

Кодировка для сообщений на кириллице: UTF16, длина одного SMS сообщения составляет 70 символов:

Примечание: Для корректного отображения текста, необходимо указание - Data coding: 0x08 - SMPP Data Coding Scheme: UCS2 (ISO/IEC-10646) (0x08), а также формирование текста в UTF-16ВE (big endian)

Отправка длинных (склеенных) сообщений возможна с использованием UDH или message_payload;

Примечание: Message_payload – один из опциональных SMPP 3.4 TLV (tag-length-value) параметров, поддерживаемых SMPP сервером. Применяется, например, приотправке сообщений более 254 октетов;‘Messagelength:0’;Optionalparametermessage_payload(0x0424);

При отправке SMS с UDH необходимо установить соответствующее значение ESM_class=0x40, DCS устанавливается согласно тексту и может быть UCS2 (ISO/IEC-10646) (0x08) для Unicode кодировки и DCS=0x00 для GSM-default кодировки.

UDH представляет собой следующее:

0x05

0x00

0x03

1 октет - уникальный для данной группы SMS номер

1 октет - количество SMS для склейки

1 октет - порядковый номер SMS

При формировании длинных сообщений больше 160 символов латиницей и 70 кириллицей, длина сообщения составляет:

Латиница - Default Alphabet (GSM 3.38)

1 SMS - 160 символов;

2 SMS - 153 * 2 = 306 симв.;

3 SMS - 459 симв. и т.д.

Кириллица - Unicode (UTF-16ВE)

1 SMS - 70 символов;

2 SMS - 67 *2 = 134 симв.;

3 SMS - 201 симв.;

4 SMS - 268 и т.д.

Примечение: согласно спецификации для таких сообщений накладываются определенные ограничения на длину каждой составляющейSMS, т.е. здесь UDH всегда имеет 8-битную структуру, и соответственно длина текстовой части SMS не должна превышать 134 октетов (140-6). Т.е. в GSM-default длина текста каждого SMSв несжатом виде должна быть не более 153 символов (134*8/7=153), а в юникоде 67 символов (134 /2=67).

Дополнительные параметры

- Таймаут: 1 минута;

- Задержка в случае неудачного переподключения: 1 минута;

- Верификация соединения (enquire_link PDU): 60 сек.;

Примечание: Enquire_link'и обязательны. Если клиент подключается к нам transmitter'ом мы ожидаем от него enquire_link'и, при их отсутствии в течение 2 минут – связь считается нарушенной и принудительно рвется.

Номер абонента всегда должен начинаться с «7» для абонентов России, использовани «8» для отправки по России недопустимо.

Скорость передачи SMS не более 50 SMS в секунду.

Указание адреса, происходит в международном формате, использование специальных символов, таких как «+», ведущих нулей – недопустимо.

Для буквенно-цифрового адреса – ограничение 11 символов;

Получение конечных статусов

В submit_sm PDU – необходимо выставить флаг registered_delivery = 0x01 (в SMPP по умолчанию 0x01), тогда будут приходить Deliver_sm PDU c информацией о доставке.

В таких пакетах (в отличие от обычных Deliver_sm) поле esm_class будет выставлено в 0x3c.

В поле receipted_message_id будет выставлено то значение, которое вы получили в submit_sm_resp от нашей платформы. В поле strong>receipted_message_state будет выставлен статус доставки по протоколу smpp.

Таким образом, deliver_sm PDU – содержит следующую информацию:

Operation: Deliver_sm (0x00000005)

Message type: 0x0f

Здесь в Optional parameters указывается - Message state: DELIVERED (2)

SMSC identifier: напр.: 23456789

В поле Message, присутствуют значения submit date и done date

message_state значение «2» - «Message is delivered to destination»

Примечание: При создании нескольких подключений по SMPP к одному логину, стаусы некоторых смс сообщений, отправленных от одного подключения, могут возвращаться на другое подключение.

Особенностей PDU нет, они определяются протоколом. Формат DR соответствует формату:

Field

Size (octets)

Type

Id

10

C-Octet String (Decimal)

sub

3

C-Octet String Fixed Length (Decimal)

dlvrd

3

C-Octet String Fixed Length (Decimal)

submit date

10

C-Octet String Fixed Length (Decimal)

done date

10

C-Octet String Fixed Length (Decimal)

stat

7

C-Octet String Fixed Length

err

3

C-Octet String Fixed Length

text

var. max. 65

C-Octet String (Decimal)

Статусы SMS сообщений (по информации от SMS центров)

Статус

Значение

Тип

Delivered

Доставлено

Окончательный

Not delivered

Не доставлено

Окончательный

Expired

Просрочено

Окончательный

Список кодов ошибок недоставки сообщений

Код ошибки

Значение

205

Unavailable while roaming (Абонент в роуминге не доступен).

1

Unknown subscriber (Абонент не найден).

5

Unidentifiend subscriber (Абонент не найден).

9

Illegal subcsriber (Абонент не найден).

11

Teleservice not provisioned (Сервис SMS отключен).

13

Call barred (Абонент заблокирован).

16

Illegal Supplementary Service operation (Некорректная операция).

21

Facility not supported.

27

Absent subscriber (Абонент недоступен).

31

Subscriber busy for MT-SMS (Терминал абонента занят).

32

HLR, Equipment not SM equipped (Терминал абонента не может принимать сообщения).

33

HLR, Equipment protocol error (Сообщение не может быть обработано в терминале абонента).

34

System failure, 1 - HLR (Системная ошибка).

35

HLR, Memory capacity exceeded (Отсутствует свободная память в терминале абонента).

36

Unexpected data value (Неизвестный формат данных).

37

HLR, Unknown service centre (Неизвестный SMS центр).

38

PLMN, Equipment not SM equipped (Терминал абонента не может принимать сообщения).

39

PLMN, Equipment protocol error (Сообщение не может быть обработано в терминале абонента).

40

PLMN, Memory capacity exceeded (Отсутствует свободная память в терминале абонента).

41

PLMN, Unknown service centre (Неизвестный SMS центр).

42

VLR, Equipment not SM equipped (Терминал абонента не может принимать сообщения).

43

VLR, Equipment protocol error (Сообщение не может быть обработано в терминале абонента).

44

VLR, Memory capacity exceeded (Отсутсвует свободная память в терминале абонента).

45

VLR, Unknown service centre (Неизвестный SMS центр).

250

User Abort.

251

Outgoing MAP timeout expired (Истек таймаут исходящего MAP сообщения).

255

Fail HLR (Ошибка при отправке сообщения от HLR).

256

Fail VLR (Ошибка при отправке сообщения от VLR).

257

Fail PVLR (Ошибка при отправке сообщения от PVLR).

258

Fail controlling MSC (Ошибка при отправке сообщения от MSC).

259

Destination busy (Терминал абонента занят).

260

HLR request timeout expired (Истек таймаут ожидания ответа на запрос в HLR).

261

Message delivery timeout expired (Истек таймаут ожидания ответа на доставку сообщения).

262

System failure (Системная ошибка).

Список SMPP ошибок

Command status

Значение

10

Не зарегистрировано/некорректное имя отправителя.

11

Некорректная длина номера/номер в стоп-листе.

13

Неверный логин или пароль/логин заблокирован.

69

Ошибка при формировании пакета.

1009

Заблокировано модерацией.

1035

Недостаточно средств.

2000

Множественная отправка смс на один номер с одинаковым текстом.

* Все функции могут быть доработаны на усмотрение разработчиков, внедряющих службы SMS в систему 1С.