| ||||||||||||||||||||
О проекте | Вопросы и ответы | Статьи | Архив | Утилиты | Обратная связь |
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?) информацию об СМСЦ отправителя не показывают.
Полуоктеты представляют десятичные цифры, и, например, номер отправителя получается при перестановке десятичных цифр в каждом октете: от "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:
|
|
Потрясающий хостинг от Best-Host.RU! |