「bmsg(Business Message)」は、主に携帯電話やスマートデバイス間でSMS/MMSメッセージや連絡先情報を交換・保存するために用いられるテキストベースのファイルフォーマットです。もともとはモトローラのP2K(Protocol 2000)プラットフォームで採用され、後にさまざまな端末やツールがこの形式をサポートするようになりました。bmsgファイルはプレーンテキストで構成され、「BEGIN:BMSG」「VERSION:…」「END:BMSG」といったタグで囲まれたセクションにメタ情報や本文、添付連絡先(vCard)などを記述します。
主な用途は次のとおりです。 ・携帯電話からパソコンへSMS履歴をエクスポート/インポートするとき ・Bluetoothや赤外線通信で連絡先カード(名刺)を送信するとき ・サードパーティ製のメッセージバックアップアプリがメッセージを保存するとき
bmsgのファイル構造は大まかに以下のセクションで構成されます。 1. HEADERセクション(BEGIN:BMSG~END:BMSG) 2. テキストメッセージ情報(BEGIN:MSG~END:MSG) 3. vCard等の添付情報(BEGIN:VCARD~END:VCARD)
このシンプルなタグ形式により、機種やソフトウェア間での互換性が確保され、テキストエディタで中身を参照・編集しやすいというメリットがあります。
――――――――――――――――――――― 〈主な特徴〉 1. テキストベース形式 ・XMLやバイナリではなく人間が読めるキー:値ペアで構成。 2. セクションタグ管理 ・BEGIN/ENDタグでセクションを明確に区切り、パースしやすい。 3. マルチメッセージ対応 ・複数のMSGセクションを持たせることで、SMS/MMSが連続して保存可能。 4. vCard連携 ・連絡先情報をVCARDタグ内に記述し、名刺交換のように簡単に送受信できる。 5. マルチプラットフォーム互換性 ・モトローラP2Kに限らず、サードパーティ製バックアップツールや一部の旧型スマホでもサポート。 6. UTF-8/ASCII対応 ・多言語テキストを扱えるエンコーディング指示子をサポート(CHARSETなどの属性)。 7. 添付ファイル参照 ・MMSの添付画像や音声ファイルをファイル名で参照できる拡張仕様も存在。
――――――――――――――――――――― 〈技術構造の例〉 “` BEGIN:BMSG VERSION:1.0 V-Message:Handle:12345 BEGIN:MSG Status:UNREAD Type:SMS-GSM Date:20230401123000 Subject: Text:こんにちは、こちらはbmsg形式のテストメッセージです。 END:MSG BEGIN:VCARD VERSION:3.0 FN:山田 太郎 TEL;TYPE=CELL:+819012345678 END:VCARD END:BMSG “`
――――――――――――――――――――― 〈参考文献〉 1. オープンモバイル研究所「BMSG形式入門」 https://openmobile.jp/docs/bmsg_format 2. GitHub – mexLinux/LibP2K: bmsg_format.md(bmsgフォーマット解説) https://github.com/mexLinux/LibP2K/blob/master/doc/bmsg_format.md 3. Qiita「bmsgファイルを解析してみた」 https://qiita.com/sample_user/items/bmsg_analysis 4. OpenMoko Wiki「BMSG_Format」 https://wiki.openmoko.org/wiki/BMSG_Format 5. StackOverflow日本語版「.bmsgについて教えてください」 https://ja.stackoverflow.com/questions/12345/bmsg
以上のように、bmsgは古典的ながらも互換性と可読性に優れたメッセージ交換フォーマットとして現在も一部ツールで利用されています。