Определение
submit_sm — операция SMPP v3.4 (command_id 0x00000004), с помощью которой приложение отправляет одно SMS в SMSC. SMSC отвечает сообщением submit_sm_resp с message_id, по которому позже сопоставляются отчёты о доставке (DLR).
Ключевые поля: source_addr (имя отправителя, или альфа-имя) с TON/NPI, destination_addr, esm_class, registered_delivery (запрос отчёта), data_coding (например, 0x00 — алфавит по умолчанию или 0x08 — UCS-2), sm_length и short_message.
В short_message помещается до 254 октетов. Для более длинных пользовательских данных спецификация предписывает установить sm_length в ноль и передать содержимое в TLV message_payload.
Если отправитель сам формирует заголовок конкатенации, он устанавливает бит UDHI (0x40) в esm_class и добавляет UDH в начало short_message.
Ненулевой command_status в submit_sm_resp означает, что SMSC отклонил сообщение, например ESME_RINVDSTADR (неверный адрес получателя) или ESME_RTHROTTLED (превышена пропускная способность). Подтверждение лишь означает, что SMSC принял сообщение; итоговый результат сообщает отчёт о доставке.
Пример
submit_sm: source_addr_ton=5 source_addr="AcmeBank" dest_addr_ton=1 destination_addr="971501234567" registered_delivery=1 data_coding=0x00 short_message="Your code is 482913"