В настоящее время я пытаюсь выяснить, как классы sms правильно представлены в SMPP.Тем не менее, сейчас я полностью сбит с толку стандартом и его документацией.
В обычных смс мы имеем
- Class0: Flash-смс, которые отображаются на дисплее
- Class1: обычные SMS-сообщения для хранения на SIM-карте или внутри устройства
Глядя на спецификацию SMPP, я сначала нахожу параметр data_coding
в операции submit_sm
, которая используется дляустановить DCS, отправленный через MAP.Насколько я понимаю, если мы хотим явно установить класс сообщения, нам нужно установить первые четыре бита этого параметра равными единице, затем два бита, указывающие кодирование, и затем еще два бита, указывающие класс сообщения.Таким образом, для SMS-сообщений Class1 мы установим 1111xx01
.Пока это правильно?
Если мы попытаемся установить этот DCS, однако в настоящее время мы также устанавливаем кодирование данных на «8-битные данные».Кажется, несколько телефонов не могут этого понять.Указано ли это где-нибудь, и мы можем просто изменить это, или это специальная кодировка, необходимая при отправке других классов сообщений.
Больше путаницы возникает, когда мы пытаемся использовать рекомендованный SMPPv3.4 способ установки класса Message.,Начиная с версии 3.4 в операции submit_sm
имеется необязательный параметр, который называется dest_addr_subunit
.Согласно стандарту этот параметр должен быть установлен в 0 для неизвестного, 1 для MS-Display, 2 для мобильного оборудования и т. Д. Если я смотрю на это, кажется, что параметры смещены на один по сравнению с классами сообщений GSM.Class0 кодируется как 1, Class1 кодируется как 2 и так далее.Это правильно или за этим стоит более сложное отображение?
Кроме того, если мы установим dest_addr_subunit
, нам все равно придется также устанавливать DCS или мы можем просто оставить этот параметр в значении по умолчанию?