Как правильно представить класс сообщения в SMPP

В настоящее время я пытаюсь выяснить, как правильно представлены sms-классы в SMPP. Однако к этому моменту я окончательно запутался в стандарте и его документации.

В обычных sms у нас есть

  • Class0: Flash sms, которые отображаются на дисплее
  • Class1: Обычные смс для хранения на симке или внутри устройства

Изучая спецификацию 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, или мы можем просто оставить этот параметр в значении по умолчанию?

7
задан LiKao 14 October 2011 в 09:15
поделиться