5.7.1 Структура SMS-сообщения
При использовании SMS для передачи пакетов данных протокола транспортного уровня используется режим PDU [2], [3]. Режим PDU позволяет передавать не только текстовую, но и бинарную информацию через сервис SMS оператора сотовой связи GSM. Описываемый протокол транспортного уровня оперирует бинарными данными, поэтому режим PDU наиболее подходит для использования SMS в качестве резервного канала передачи транспортного уровня.
5.7.1.1 Для передачи SMS-сообщения используется 8-битовая кодировка. Формат SMS-сообщения для отправки в режиме PDU представлен в таблице 8 и использует структуру, описанную в [3, раздел 9].
Таблица 8 - Формат SMS с использованием режима PDU
Бит 7 | Бит 6 | Бит 5 | Бит 4 | Бит 3 | Бит 2 | Бит 1 | Бит 0 | Тип | Размер, байт |
SMSC_AL (SMSC Address Length) | М | 1 | |||||||
SMSC_AT (SMSC Address Type) | О | 0,1 | |||||||
SMSC_A (SMSC Address) | О | 0,6 | |||||||
TP_RP | TP_UDHI | TP_SRR | TP_VPF | TP_RD | TP_MTI | М | 1 | ||
TP_MR (Message Reference) | М | 1 | |||||||
TP_DA_L (Destination Address Length) | M | 1 | |||||||
TP_DA_T (Destination Address Type) | M | 1 | |||||||
TP_DA (Destination Address) | M | 6 | |||||||
TP_PID (Protocol Identifier) | M | 1 | |||||||
TP_DCS (Data Coding Schema) | M | 1 | |||||||
TP_VP (Validity Period) | О | 0, 1, 7 | |||||||
TP_UDL (User Data Length) | M | 1 | |||||||
TP_UD (User Data) | О | 0...140 |
5.7.1.2 Описание параметров, входящих в состав SMS-сообщения в режиме PDU, приведено ниже:
- SMSC_AL - длина полезных данных адреса SMSC в октетах;
- SMSC_AT - тип формата адреса SMSC.
Возможные значения параметров SMSC_AT представлены в таблице 10. Поле опциональное и наличие его зависят от значения параметра SMSC_AL (если значение SMSC_AL больше 0, то данное поле присутствует);
- SMSC_A - адрес SMSC. Каждая десятичная цифра номера представлена в виде четырех бит (младшие 4 бита - цифра более старшего разряда, старшие 4 бита - цифра меньшего разряда), при этом, если число цифр в номер нечетное, то в битах с 4 по 7 последнего байта номера устанавливается значение 0xF (1111b). Данный параметр опциональный, и его наличие зависит от значения параметра SMSC_AL. В случае отсутствия параметра SMSC_A используется SMSC из SIM карты;
- TP_MTI (Message Type Indicator) - тип сообщения (должен содержать бинарное значение 01);
- TP_RD (Reject Duplicates) - поле определяет, необходимо ли SMSC принимать данное сообщение на обработку, если существует предыдущее необработанное отправленное с данного номера сообщение, которое имеет такое же значение поля TP_MR и такой же номер получателя в поле TP_DA;
- TP_VPF (Validity Period Format) - формат параметра TP_VP. Возможные значения поля TP_VPF представлены в таблице 9;
- TP_SRR (Status Report Request) - поле определяет необходимость отправки подтверждения со стороны SMSC на данное сообщение (если данный бит имеет значение 1, то требуется подтверждение);
- TP_UDHI (User Data Header Indicator) - поле определяет, передается ли заголовок пользовательских данных TP_UD_HEADER (если поле имеет значение 1, то заголовок присутствует);
- TP_RP (Reply Path) - поле определяет, присутствует ли поле RP в сообщении;
- TP_MR - идентификатор сообщения (должен увеличиваться на 1 при каждой отправке нового сообщения);
- TP_DA_L - длина полезных данных адреса получателя в октетах;
- TP_DA_T - тип формата адреса получателя. Возможные значения параметров TP_DA_T и SMSC_AT представлены в таблице 10;
- TP_DA - адрес получателя. Кодировка номера проводится по тем же правилам, что и в параметре SMSC_A;
- ТР_PID - идентификатор протокола (должен содержать значение 00);
- TP_DCS - тип кодировки данных (должен содержать значение 0x04, определяющее 8-битную кодировку сообщения, отсутствие компрессии);
- TP_VP - время актуальности данного сообщения. Формат данного поля определяется значением из таблицы 9. Параметр является опциональным. Его наличие и размер зависят от значения поля TP_VPF;
- TP_UDL - длина данных сообщения из поля TP_DL, в байтах для используемой 8-битной кодировки;
- TP_UD - непосредственно передаваемые пользовательские данные. Формат данного поля в зависимости от значения поля TP_UDHI представлен в таблице 11.
Таблица 9 - Формат поля TP_VP в зависимости от значения поля TP_VPF