В настоящее время я пытаюсь выяснить, как правильно представлены sms-классы в SMPP. Однако к этому моменту я окончательно запутался в стандарте и его документации.
В обычных sms у нас есть
Изучая спецификацию SMPP, я впервые обнаружил параметр data_coding
в операции submit_sm
, который используется для установки DCS, отправляемого через MAP. Насколько я понимаю, если мы хотим явно установить класс сообщения, нам нужно установить первые четыре бита этого параметра в единицы, затем два бита, указывающие на кодировку, и еще два бита, указывающие на класс сообщения. Таким образом, для Class1 Sms мы должны установить 1111xx01
. Правильно ли это?
Если мы попытаемся установить этот DCS, однако в настоящее время мы также устанавливаем кодирование данных на "8-Bit data". Похоже, что некоторые телефоны не могут это понять. Указано ли это где-нибудь, и можем ли мы просто изменить это, или требуется специальное кодирование при отправке других классов сообщений.
Еще большая путаница возникает, когда мы пытаемся использовать рекомендованный SMPPv3.4 способ установки класса сообщения. Начиная с версии 3.4 в операции submit_sm
есть необязательный параметр, называемый dest_addr_subunit
. Согласно стандарту этот параметр должен быть установлен в 0 для неизвестного, 1 для MS-Display, 2 для мобильного оборудования и т.д. Если я посмотрю на это, кажется, что параметры сдвинуты на единицу по сравнению с классами сообщений GSM. Class0 кодируется как 1, Class1 кодируется как 2 и так далее. Правильно ли это или за этим стоит более сложная схема?
Также, если мы устанавливаем dest_addr_subunit
, должны ли мы также установить DCS, или мы можем просто оставить этот параметр в значении по умолчанию?