私は、大きなSMSメッセージ(> 140バイト)を小さな部分(140バイト)に分割して、SMPPプロトコルを介して携帯電話事業者に送信できるようにするアルゴリズムを書いています。
各部分には、6バイトまたは7バイトで構成されるUDH(ユーザーデータヘッダー)があります。これに使用したドキュメントは次のとおりです。
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-パーツ本体を表すバイトの配列
このコンテキストでパディングビットを追加するにはどうすればよいですか?
ありがとう!