Interactive SMS  
SMPP

SMS-рассылки от 3 коп. за SMS!!!

    О проекте     Вопросы и ответы     Статьи     Архив     Утилиты     Программы     Обратная связь    

SMS и формат PDU

Введение
Как определено в стандарте ETSI (GSM 03.40 и GSM 03.38), длина SMS сообщения не может быть больше 160 символов, где каждый символ представлен только 7 битами ( 7-битный GSM Default алфавит). Восьмибитная кодировка (максимальная длина сообщений 140 символов) обычно предназначается для передачи не текстовых сообщений, таких как изображения, мелодии, различные OTA сервисы. 16-битная кодировка (максимальная длина 70 символов) используются для сообщений в Unicode (UCS2) кодировке. 16-битовое сообщение класса 0 будет на некоторых телефонах отображаться как "флеш" SMS.

PDU формат
Есть два способа посылки и получения СМС: в текстовом режиме и используя т.н. PDU (protocol description unit) режим. В текстовом режиме (недоступном на некоторых телефонах) - осуществляется только кодирование данных посредством PDU. Таблицы представляемых символов могут отличаться друг от друга и иметь несколько альтернативных кодировок. Наиболее распространенными являются "PCCP437", "PCDN", "8859-1", "IRA", "Win1251" и "GSM". Они могут быть установлены командой AT+CSCS при просмотре СМС на компьютере. При просмотре СМС на телефоне - телефон сам выберен необходимую таблицу символов. Также приложение, предназначенное для чтения СМС сообщений может использовать текстовый режим и режим PDU

Получение сообщения в PDU режиме
Строка PDU содержит не только текст сообщения, но также и необходимую служебную информацию об отправителе, его центре обслуживания, штамп времени и т.д. Все данные представляются в 16-ричном виде. Следующая строка - то, что получается при получении сообщения "hellohello" на телефон Nokia 6110.
07 917283010010F5
040BC87238880900F10000993092516195800AE8329BFD4697D9EC37
Эта последовательность октетов состоит из трех частей: начальный октет, указывающий длину номера SMSC отправителя (07 байт), непосредственно номер SMSC отправителя (917283010010F5), и SMS_DELIVER (определенный ETSI в GSM 03.40).
Необходимо отметить, что некоторые телефоны (например Ericssson 888?) информацию об СМСЦ отправителя не показывают.
Октет(ы)Описание
07Длина номера SMSC (7 октетов)
91Тип номера SMSC. (91 - номер СМСЦ преджставлен в международном формат)
72 83 01 00 10 F5Номер СМСЦ отправителя (в десятичных полуоктетах). Если длина номера СМСЦ нечетна, то для выравнивания используется 0xF. В приведенном примере номер СМСЦ: +27381000015.
04Первый октет SMS-DELIVER
0BДлина адреса отправителя. (0x0B - 11 октетов)
C8Тип-адреса номера отправителя
72 38 88 09 00 F1Номер отправителя (десятичные полуоктеты), с выравниванием с помощью 0xF. В приведенном примере номер отправителя: +27838890001
00TP-PID. Идентификатор протокола.
00TP-DCS, кодировка
99 30 92 51 61 95 80TP-SCTS. Штамп времени (полуоктеты). В примере: 99032915165908
0ATP-UDL. Длина сообщения. Если TP-DCS указывает на 7-битную кодировку данных, то данное значение равно числу семиразрядных байтов (10). Если бы TP-DCS указывала на 8-битную кодировку или на Unicode, то TP-UDL (9).
E8329BFD4697D9EC37TP-UD. Сообщение "hellohello", представленное в 7-битной кодировке
 
Все октеты представляются в шестнадцатеричном виде, кроме номера СМСЦ, номера отправителя и штампа времени, которые представлены десятичными полуоктетами. Часть сообщения в конце PDU состоит из шестнадцатеричных 8-битовых октетов, но эти октеты представляют 7-битовые данные.
Полуоктеты представляют десятичные цифры, и, например, номер отправителя получается при перестановке десятичных цифр в каждом октете: от "72 38 88 09 00 F1" к "27 83 88 90 00 1F". Длина телефонного номера нечетна, поэтому в последний октет добавлен F. Штамп времени после преобразования равен "99 03 29 15 16 59 08", где первые 6 знаков представляют дату, следующие 6 - представляет время, и последние два- часовой пояс.

Преобразование 8-битовых октетов в 7-битовые
Это преобразование подробно описано в GSM 03.38, а пример преобразования сообщения "hellohello" даже рассморен в этой статье. Преобразование основано на 7-битном GSM Default алфавите, но приложения , используемые PDU, могут использовать любую таблицу символов.

Отправка сообщения в PDU режиме
Следующий пример показывает, как послать сообщение "hellohello" в PDU режиме с телефона Nokia 6110.

AT+CMGF=0 - установить PDU режим
AT+CSMS=0 - установить, если модем поддерживает СМС команды
AT+CMGS=23 - послать сообщение длиной 23 октета (исключая первый октет 0x00)
0011000B916407281553F80000AA0AE8329BFD4697D9EC37

Сообщение состоит из 23 октетов (46 символов). Первый октет (0х00) не считается, он указывает на длину информации о СМСЦ.
Строка PDU:
Октет(ы)Описание
00Длина информации о SMSC. Длина - 0 означает, что для отправки СМС должен использоваться номер SMSC, сохраненный в телефоне. Этот октет является дополнительным. Для некотоорых телефонов этот октет должен быть опущен! (Но все равно будет использоватьтся СМСЦ, сохраненный в телефоне.
11Первый октет SMS-SUBMIT
00TP-Message-Reference. Значение 0х00 указывает на то, что в качестве номера телефона отправителя будет использоваться номер.
0BДлина номера получателя (11)
91Тип-адреса. (91 указывает международный формат телефонного номера).
6407281553F8Телефонный номер получателя в международном формате в полуоктетах (46708251358). Если указать номер телефона в местном формате (Type-of-Address равен 81 вместо 91), то для указания номера телефона можно было бы использовать 10 октетов (0x0A) и октеты были бы представлены как 7080523185 (0708251358).
00TP-PID. Идентификатор протокола
00TP-DCS.
AATP-Validity-Period. "AA" означает 4 дня. Этот октет является дополнительным, см. 4 и 3 первого октета
0ATP-User-Data-Length. Длина сообщения.
E8329BFD4697D9EC37TP-User-Data. Эти октеты представляют сообщение "hellohello", преобразованное в 7 битку.
 
  wlxml2xml & xml2wlxml  
Нужен ли сервис на сайте?
Да (774)50%
Нет (515)33%
Все равно (222)14%
gsm 7 (22)1%
Другой  

Предыдущие голосования
 
  Реклама  
sms2web - легкий путь стать контент-провайдером

 
  Новости-OnLine  

Архив Новостей

 
  Статьи  
 
  Статистика  
  • Посещений:15369915
  • Форумов:13
  • Тем:1367
  • Сообщений:6289
  • Пользователей:6043