Я пишу алгоритм для разделения больших SMS-сообщений (> 140 байт) на более мелкие части (140 байт), чтобы можно было отправлять их операторам мобильной связи по протоколу SMPP.
Каждая часть имеет UDH (заголовок пользовательских данных), состоящий из 6 или 7 байтов. Документация, которую я использовал для этого:
http://en.wikipedia.org/wiki/Concatenated_SMS
http://mobiletidings.com/2009/02/18/combining-sms-messages/
Таким образом, структура части сообщения будет:
[UDH] [PART_BODY], где
[UDH] - 6 или 7 байтов
[PART_BODY] - 133 или 134 байта
Кроме того, каждый из вышеупомянутых источников упоминает, что, если используется кодирование GSM7, биты дополнения должны быть добавлены в начале тела части, чтобы гарантировать, что тело части будет начинаться на границе септета.
Здесь я начинаю путаться ... Хотя я понял, как септеты хранятся в байте и что означает заполнение, я не понимаю, как реализовать это в моем реальном коде, который выглядит следующим образом:
public void AddUDHToSmSend(ref SMSend Sm, byte[] Udh)
{
byte[] msg = new byte[Udh.Length + Sm.Message.Length];
Udh.CopyTo(msg, 0);
Sm.Message.CopyTo(msg, Udh.Length);
Sm.Message = msg;
}
Udh - массив байтов
Sm.Message - массив байтов, представляющих тело детали
Как я могу добавить бит дополнения в этом контексте?
Спасибо!