SUBMIT・DELIVER・STATUS-REPORT用オンラインPDUデコーダー
PDUを貼り付けて、項目ごとに読みます。サービスセンター、アドレス、文字コード、タイムスタンプ、連結、デコードした本文。項目が壊れている場合は、空の画面ではなくその名前を示します。
ブラウザでPDUをデコード
入力欄にはエンコーダーのSMS-SUBMITフレームが入っています。任意のフレームを貼り付けて「デコード」を押し、下の項目を読んでください。
PDUデコーダー
ネットワーク不要デコードされた項目
本文、タイムスタンプ、連結参照は、フレームが運ぶとおりに表示します。デコーダーが入力を書き換えることはありません。
サーバーへは何も送信しません。フレームはこのページのJavaScriptが読むため、個人のメッセージ保存領域から取り出したPDUもお手元にとどまります。
テキストモードとPDUモード
同じメッセージでも、どちらのモードで記録したかによって見え方が変わります。
| 見えるもの | テキストモードの結果 | PDUモードの結果 |
|---|---|---|
| 本文 | 読める文字 | 16進のオクテット。本文は詰め込まれるか、上位バイトから符号化される |
| 文字コード | モデムが選ぶ | データ符号化方式のオクテットに明示される |
| 長いメッセージ | 分割をモデムが隠す | UDHが参照番号、パート番号、総数を示す |
| タイムスタンプ | 表示される場合はローカル形式 | タイムゾーンのオクテット付きのサービスセンター時刻 |
| 配信レポート | 要約された形 | 2つの時刻と結果オクテットを持つ完全な状態フレーム |
テキストモードは人が読む形でメッセージを示します。PDUモードはネットワークが保存する形で示します。何かが動かないとき、どの項目が誤っているかを教えるのは後者です。
SMS-DELIVERの項目構成
受信メッセージは宛先と有効期限を持たず、代わりにタイムスタンプを持ちます。
| 項目 | オクテット | 内容 |
|---|---|---|
| SCA | 1 + n | メッセージを処理したサービスセンター。00はフレームが省略していることを示す |
| 先頭オクテット | 1 | メッセージ種別、「続きがある」標識、データヘッダーの標識 |
| 送信者 | 2 + n | 送信元アドレス。国際番号は91 |
| PID | 1 | プロトコル識別子 |
| DCS | 1 | アルファベット、クラス、圧縮ビット |
| SCTS | 7 | サービスセンターのタイムスタンプ:年、月、日、時、分、秒、タイムゾーン |
| UDL | 1 | GSM-7はセプテット数、UCS-2はオクテット数 |
| UD | n | 任意のUDHと本文 |
タイムスタンプはUnix値ではありません。日付の各項目は半バイトを入れ替えた10進数字で、最後のオクテットがUTCからの15分単位のオフセットを運びます。
STATUS-REPORTの項目
状態レポートはユーザーデータを2つのタイムスタンプと結果コードに置き換えます。
| 項目 | オクテット | 内容 |
|---|---|---|
| 先頭オクテット | 1 | メッセージ種別02と、設定されていればレポート修飾子の標識 |
| MR | 1 | 送信時に端末が返したメッセージ参照 |
| 宛先 | 2 + n | メッセージを送った番号 |
| SCTS | 7 | サービスセンターがメッセージを受け取った時刻 |
| 配送時刻 | 7 | サービスセンターが配送した時刻。同じタイムスタンプ形式 |
| 状態 | 1 | 00–1F配送済み、20–3F一時的なエラーで再試行中、40–5F永続的なエラー、60–7F一時的なエラーで再試行を終了 |
状態レポートにユーザーデータはありません。これらの項目より長いフレームでは、余分なオクテットをデコードせず警告として表示します。
デコードできない例
失敗の多くは壊れたメッセージではなくコピーの誤りです。デコーダーは読めなかった項目の名前を示します。
| 入力 | メッセージ | 何が問題か |
|---|---|---|
| 00110009812143 | アドレスが宣言された長さより短い。 | 宛先の長さは9桁を指しますが、続くのは2オクテットだけです。 |
| 0011A | 16進の長さが奇数(5半バイト)。PDUはバイト単位である必要があります。 | コピー時に1文字失われ、最後のバイトが不完全です。 |
| 004100098121436587F9000006070003010201 | UDHの長さ7がユーザーデータを超える。 | データヘッダーの長さオクテットが、フレームが運ぶより多くのバイトを約束しています。 |
デコーダーはほかにも、サービスセンターの長さが入力の末尾を超えるフレーム、途中で切れたアドレス、切り詰められたタイムスタンプ、別種のメッセージであるSMS-COMMANDを拒否します。8ビットの符号化方式は架空の文字ではなくバイト数として表示します。未知の拡張文字と単独のエスケープは警告付きで捨て、メッセージ全体を雑音に変えません。
この3つの入力は、エンコーダーと同じ回帰テストファイルの一部です。想定エラーはそれぞれ部分文字列として保存されるため、デコーダーの文言を変えても気づかれずに通ることはありません。
自動化が必要ですか
このページは1つのフレームを調べるためのものです。メッセージの流れにはSMS Delivererを使ってください。
Windowsアプリは受信をデコードし、複数パートのフレームを組み立て、送信者と時刻を保存し、配信レポートを元の送信のそばに保ちます。同じ解析器をデスクトップ画面とローカルHTTP APIが使うため、どこで読んでもメッセージは同じに見えます。
ハードウェア側はGSMモデムの解説から、受信機能はWindows版ソフトのページから、テスト用フレームの作成はPDUエンコーダーから始めてください。
対応するフレーム
- SMS-SUBMIT(連結パートを含む)
- タイムスタンプと送信者付きのSMS-DELIVER
- 2つのタイムスタンプを持つSMS-STATUS-REPORT
- GSM-7、拡張文字、UCS-2
- 8ビットUDH、16ビット参照、ポート宛先
2026-11に確認。SMS-COMMANDは意図的に拒否します。メッセージの通信ではないためです。
購入者がよく尋ねる質問
デコーダーがサービスセンターなしと表示するのはなぜですか?
先頭の00は、フレームにサービスセンターのアドレスがないことを意味し、端末やモデムがSIMに書かれた値を使います。フレームの残りは通常どおりデコードされます。
配信レポートや複数パートのメッセージも読めますか?
はい。SMS-STATUS-REPORTは2つのタイムスタンプと状態オクテットを表示します。複数パートのメッセージではUDHを読み、各パートの参照番号、順序番号、総数を示します。
メッセージの一部がバイナリデータと表示されるのはなぜですか?
そのフレームのデータ符号化方式が、文字ではなく8ビットデータを宣言しているためです。デコーダーはオクテット数を示し、存在しない文字を創作しません。
デコーダーはPDUをどこかへ送りますか?
いいえ。解析はこのブラウザ内で行います。オフラインでも動作するため、個人的な番号や内容を含むメッセージでも安全です。