SMS-Bridge(短信通)

Tool

概要

SMS-Bridge(短信通)は、安価なUSB 4G上网卡(USBドングル)と任意のLinux機器を使って「クラウド携帯」を作るオープンソースツールです。PythonでATコマンドを叩きSIMのSMSを取得・送信し、Telegram BotやWeb UI経由で受信通知・転送・手動送信ができます。Dockerコンテナやsystemdユニットで簡単にデプロイでき、Raspberry Piや玩客云などの常時稼働デバイスに向いています。目的は代替端末を持たずに番号を維持しつつSMSを集中管理することです。

GitHub

リポジトリの統計情報

  • スター数: 23
  • フォーク数: 2
  • ウォッチャー数: 23
  • コミット数: 7
  • ファイル数: 9
  • メインの言語: Python

主な特徴

  • USB 4Gドングルを使ったSMSの自動受信・自動転送(Telegramなど)
  • Web UIからの手動送信と保号(番号維持)機能
  • Dockerおよびsystemdでのデプロイ対応、軽量で組み込み機器に適合
  • Python + ATコマンドでハードウェアレベルにアクセス、低コスト運用を実現

技術的なポイント

SMS-BridgeのコアはPythonで動くATコマンドベースのSMS操作です。多くのUSBモデムはシリアルデバイス(/dev/ttyUSB* 等)を介してATコマンドを受け付けるため、pyserial等を用いてモデムと直接やり取りします。受信は+CMGR/+CMTI等の通知を監視してメッセージを読み取り、テキストモード(AT+CMGF=1)またはPDUモードの取り扱いに対応する必要があります。プロジェクトはメッセージのパース、エンコーディング(UCS2など)処理、重複検知や受信済み削除といった実務的なロジックも組み込むことで運用の安定性を高めています。

転送先としてはTelegram Botが想定され、WebhookやBot APIを介して受信メッセージを即時転送します。Web UIはブラウザからの送信操作や送信履歴の参照を提供し、バックエンドとREST/HTTPでやり取りします。デプロイ面ではDockerfileが用意されておりコンテナ化が容易、systemdユニットによる常駐運用も可能で、Raspberry Piや玩客云のようなリソース制約のある環境でも動作するよう設計されています。

注意点としては、USBドングルやキャリアによるATコマンドの実装差、SMSの文字コードや長文分割(UDH/PDU)の扱い、同時接続数や送信レート制限、SIMプロバイダのポリシーなどです。実運用ではシリアルデバイスの権限設定(udevルール)や自動再接続・ログ保存、エラーハンドリング(モデム再起動やSIMロック解除手順)を整備することが重要です。本リポジトリは軽量かつ実用的な実装例を提供しており、必要に応じて監視機能や永続ストレージを拡張することで商用運用にも対応し得ます。

プロジェクトの構成

主要なファイルとディレクトリ:

  • Dockerfile: file
  • LICENSE: file
  • README.md: file
  • app: dir
  • assets: dir

…他 4 ファイル

まとめ

低コストで実用的な「クラウドSMS端末」を簡単に構築できる実用プロジェクトです。

リポジトリ情報: