Объединенные СМС
В сотовых телефонов индустрии мобильные телефоны и их сети иногда поддерживают службу составных коротких сообщений (или составных SMS ), чтобы преодолеть ограничение на количество символов , которые могут быть отправлены в одном SMS текстовом сообщении (которое обычно составляет 160). Используя этот метод, длинные сообщения разбиваются на более мелкие сообщения отправляющим устройством и повторно объединяются на принимающей стороне. Каждое сообщение оплачивается отдельно. Когда эта функция работает правильно, она почти прозрачна для пользователя и отображается в виде одного длинного текстового сообщения. Ранее из-за несовместимости провайдеров и отсутствия поддержки в некоторых моделях телефонов эта функция не получила широкого распространения. [ нужна ссылка ]
В конце 2000-х — начале 2010-х годов эта функция получила более широкое распространение. Мало того, что многие телефоны поддерживают эту функцию, эта функция также поддерживается поставщиками шлюзов SMS . Способ работы конкатенации в сетях GSM и UMTS указан в спецификации SMS «точка-точка», 3GPP TS 23.040. [1]
В сетях, которые не поддерживают составные SMS (ни стандартную, ни упрощенную схему), сообщение доставляется как отдельные текстовые SMS-сообщения, а не как одно составное сообщение.
СМС режима PDU
[ редактировать ]С технической точки зрения, объединенное SMS также можно назвать PDU . SMS в режиме [ сомнительно – обсудить ] . Количество частей, которые может содержать SMS-сообщение, состоящее из нескольких частей или в режиме PDU, технически зависит от сообщения заголовка, но в основном от устройства, отправляющего или получающего SMS, а также от поставщика услуг.
Теоретически объединенное SMS-сообщение может состоять из 255 отдельных SMS-сообщений, которые объединяются для создания одного длинного SMS-сообщения. Из-за особенностей SMS вероятность того, что эти части SMS-сообщения прибудут в порядке, невелика, и поэтому реализуется стратегия, позволяющая восстановить исходное длинное сообщение.
Отправка объединенного SMS с использованием заголовка пользовательских данных
[ редактировать ]Один из способов отправки составных SMS (CSMS) — разделить сообщение на 153 7-битные части символов (134 октета ) и отправить каждую часть с заголовком пользовательских данных (UDH), прикрепленным к началу. UDH можно использовать для различных целей, и его содержимое и размер соответственно различаются, но UDH для объединения SMS-сообщений выглядит следующим образом:
- Поле 1 (1 октет): Длина заголовка пользовательских данных, в данном случае 05.
- Поле 2 (1 октет): Идентификатор информационного элемента (IEI), равный 00 (составные короткие сообщения, 8-битный ссылочный номер).
- Поле 3 (1 октет): Длина информационного элемента (IEL), исключая IEI и IEL; равно 03
- Поле 4 (1 октет): 00-FF, справочный номер CSMS, должно быть одинаковым для всех частей SMS, образующих объединенное сообщение.
- Поле 5 (1 октет): 00-FF, общее количество частей. Значение должно оставаться постоянным для каждого короткого сообщения, составляющего объединенное короткое сообщение. Если значение равно нулю, то принимающий объект должен игнорировать весь информационный элемент.
- Поле 6 (1 октет): 00-FF, номер этой части в последовательности. Значение должно начинаться с 1 и увеличиваться для каждого короткого сообщения, составляющего объединенное короткое сообщение. Если значение равно нулю или превышает значение в поле 5, то принимающий объект должен игнорировать весь информационный элемент. [Спецификация ETSI: GSM 03.40, версия 5.3.0: июль 1996 г.]
Можно использовать 16-битный ссылочный номер CSMS, чтобы уменьшить вероятность того, что два разных объединенных сообщения будут отправлены получателю с одинаковыми ссылочными номерами. В этом случае заголовок пользовательских данных должен быть:
- Поле 1 (1 октет): Длина заголовка пользовательских данных (UDL), в данном случае 06.
- Поле 2 (1 октет): Идентификатор информационного элемента (IEI), равный 08 (составные короткие сообщения, 16-битный ссылочный номер).
- Поле 3 (1 октет): Длина информационного элемента (IEL), исключая IEI и IEL; равно 04
- Поле 4 (2 октета): 0000-FFFF, справочный номер CSMS, должно быть одинаковым для всех частей SMS, образующих составное сообщение.
- Поле 5 (1 октет): 00-FF, общее количество частей. Значение должно оставаться постоянным для каждого короткого сообщения, составляющего объединенное короткое сообщение. Если значение равно нулю, то принимающий объект должен игнорировать весь информационный элемент.
- Поле 6 (1 октет): 00-FF, номер этой части в последовательности. Значение должно начинаться с 1 и увеличиваться для каждого короткого сообщения, составляющего объединенное короткое сообщение. Если значение равно нулю или превышает значение в поле 5, то принимающий объект должен игнорировать весь информационный элемент. [Спецификация ETSI: GSM 03.40, версия 5.3.0: июль 1996 г.]
Пример UDH для смс, разбитого на две части:
05 00 03 CC 02 01 [ message ] 05 00 03 CC 02 02 [ message ]
Обратите внимание, что если присутствует UDH и кодировка данных представляет собой 7-битный алфавит по умолчанию, пользовательские данные должны быть выровнены по 7-битному слову после UDH. [2] Это означает, что в начале [сообщения] необходимо вставить до 6 бит нулей.
Например, если UDH содержит одну часть,
05 00 03 CC 01 01
UDH имеет общую длину (количество октетов x битовый размер октетов) 6 x 8 = 48 бит. Поэтому к сообщению необходимо добавить один бит заполнения. Таким образом, длина UDH равна (биты для UDH / биты на септет) = (48 + 1)/7 = 7 септетов в длину.
В сообщении «Привет, мир» [сообщение] кодируется как
90 65 36 FB 0D BA BF E5 6C 32
так как вам нужно добавить младшие биты следующего 7-битного символа тогда как без заполнения [сообщение] будет
C8 32 9B FD 06 DD DF 72 36 19
а UDL равен 7 (септетам заголовка) + 11 (септетам сообщения) = 18 септетов.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Спецификация SMS «точка-точка», 3GPP TS 23.040
- ^ Йерун (18 февраля 2009 г.). «Объединение SMS-сообщений» .