NMT SMS.
SMS - Short Message System - система передачи
текстовых сообщений по сетям NMT. Все аппараты Nokia
начиная с THF-9 (N450) поддерживают данную фичу. Фича реализована следующим образом: В
телефоне есть модем. При отправке сообщения
телефон звонит по номеру указанному как "Номер
SMS-центра" и своим модемом коннектится с
модемом SMS-центра, после чего следует обмен
данными по основному (голосовому) каналу -
телефон отправляет сообщения помеченные для
отправки и забирает сообщения от SMS-центра если
там есть сообщения для этого телефона. Выяснено это было в ходе следующего
эксперимента: В качестве номера SMS-центра я
прописал свой домашний телефон. Набрав сообщение
( ох и неудобно же это! ) я попросил телефон
отослать его. Телефон спрашивает адрес
назначения в формате зависящем от выбранного
типа сообщения - для Эл.почты это e-mail, для
Пейджинга это номер пейджера, а для Текста и
Факса - телефонный номер. Через несколько секунд
домашний телефон зазвонил и подняв трубку я
услышал характерный писк - телефон требовал
коннекта. Засунув телефон в алюминиевую кастрюлю
убедился, что пищит сам телефон, а не аппаратура
МСС - звук стал тише и появились помехи. Следующим
шагом было подключение Sound Blaster'a к выходной
обмотке разделительного трансформатора модема и
запись этого писка в wav для последующих
разбирательств. Протокол DMS (Data Mobile Station) модема Модем телефона работает на скорости
1200бод используя FFSK(MSK) модуляцию подробно
о MSK - см. например PDF
Minimum Shift Keying and its Application to Wireless Data Transmission - очень
подробно и понятно о MSK модуляции от MX-COM,Inc. Данные передаются кадрами. Каждый кадр
состоит из синхронизирующей последовательности
(15 бит - 101010...), синхрослова, означаюшего начало
кадра (11 бит - 00101000111), метки, содержащей
информацию о кадре, 8 7-битных слов данных
перемежающихся битами 11 для отличия от
синхрослова и контрольной суммы. Весь кадр
данных выглядит так:
101010101010101 00101000111 dsppnnn 11 xxxxxxx ...
... 11 xxxxxxx 11 ccccccc 11 ccccccc 11 cc где dsppnnn - метка в которой d | - бит направления, определяется вызывающей
стороной, принимающая сторона должна выдавать
инверсное значение.
|
---|
s | - тип кадра - служебный (CT) = 0 / данные (DT) = 1
|
---|
pp | - префикс кадра данных = 11
|
---|
nnn | - порядковый номер кадра (= 000...111)
|
---|
xxxxxxx - данные ссссссс - Контрольная сумма, 16 бит, вычисляется
для всех 63 информационных бит по полиноминалу
x16+x12+x5+1 обычным образом - в конец 63 бит
добавляется 16 нулей и всё это число делится на
полиноминал по модулю 2. В ответ на принятый кадр необходимо выслать
подтверждение готовности (RR - Ready to Recieve) или
неготовности (NR - Not Ready) к приёму следующего кадра.
101010101010101 00101000111 dsppnnn 11 dsppnnn 11 cc
00101000111 dsppnnn 11 dsppnnn 11 cc где dsppnnn - метка в которой: d | - бит направления |
---|
s | - резерв, = 1 если не используется, для ответов на
служебный кадр 'RAND'(см. ниже) 1 - negative response, 0 - positive
responce |
---|
pp | - префикс, = 01 для RR, = 10 для NR |
---|
nnn | - порядковый номер кадра (= 000...111) который может
(RR) или не может (NR) быть принят |
---|
сс - Контрольная сумма - если число бит в метке
нечётно - то 1, иначе 0 Допускается передавать последовательность
из 4 разных кадров (с номерами n...n+3) если есть
данные для передачи, и подтверждать (RR(n+4)) только
приём последнего. После получения подтверждения
RR(n) передача должна продолжаться с кадра DT(n). Если
кадры данных передаются непрерывно друг за
другом, то 15 бит синхонизирующей
последовательности передаются только перед
первым кадром.15 бит синхонизирующей
последовательности передаются всегда, при
передаче RR/NR Протокол дуплексный, т.е. данные могут
передаватся в обоих направлениях одновременно. Служебные кадры которые нас интересуют в
свете приёма SMS: RAND: 'R' A1' A1 A2' A2 A3' A3 7/8 | - 24-битное случайное число, где Ax' - (x00000) -
старшие биты 8-разрядных чисел R1,R2,R3, а 7/8 - символ
'7' или '8' определяющий формат передачи данных | ID: 'I' I1 I2 I3 I4 I5 I6 I7 | - идентификатор, телефон всегда шлёт 499999 |
Если выбран 8-разрядный формат
передачи, то данные в кадре кодируются так:
первое 7-ми битное слово содержит старшие разряды
7 байт данных. Остальные 7 7-ми битных слов
содержат младшие 7 разрядов. В начале коннекта телефон
последовательно передаёт ID и RAND, для
инициализации передачи сообщения необходимо
подтвердить приём ID и RAND (RR с negative responce, чтобы
отказаться от шифрования), и выслать свой RAND (хоть
000) с 7/8 = '8'. Далее телефон начнёт передавать кадры
с данными - (SMS-SUBMIT,RP+TP) их надо просто подтверждать.
После приёма всего пакета следует подтвердить
его приём пакетом SMS-SUBMIT-REPORT, но это уже: SMS протокол Вся передача SMS происходит согласно
GSM 03.40 (SM-TL) и GSM 04.11 (SM-RL). Есть некоторые
незначительные отличия, но о них позже. Сеть NMT предоставляет возможность
включить на телефоне MWI ( Message Waiting Indicator -
индикатор наличия сообщений ) без вызова
абонента. На данный момент SMS не поддерживается
MCC, но SMS-центр может быть установлен на любом
телефонном номере. ( Но MWI включить может только
оператор предоставляющий услуги сотовой связи ) |