Soracom

Users

ドキュメント

SORACOM プラットフォームと SMS を送受信する

SMS を送受信できる対象は、IoT SIM のサブスクリプションによって異なります。また、SMS の観点でサブスクリプションを分類すると、以下のようにグループ A とグループ B の 2 つに分類できます。

グループ主な特徴サブスクリプション
グループ ASORACOM プラットフォームと SMS を送受信できるplan01s、plan01s - Low Data Volume、planP1、planX1、planX2
グループ B他社の SIM と SMS を送受信できるplan-D (SMS あり)、plan-K

このページでは、グループ A の IoT SIM で利用できる機能を説明します。

IoT SIM と IoT デバイスの両方が SMS の送受信に対応する必要があります
これ以降の説明では、説明を簡単にするために、IoT SIM が単体で SMS を送受信するかのように説明しているところがあります。しかし、実際は IoT SIM を利用している IoT デバイスが SMS を送受信します。たとえば、SMS の送受信に対応している IoT SIM を利用しても、IoT デバイスが SMS の送受信に対応していない場合は、SMS は送受信できません。
plan-D (データ通信のみ)、plan-KM1、plan-DU では、SMS を送受信できません。
詳しくは、SMS を利用できる SORACOM IoT SIM はどれですか? を参照してください。

グループ A のサブスクリプションで利用できる機能 

plan01s、plan01s - Low Data Volume、planP1、planX1、planX2 のいずれかのサブスクリプションを利用している IoT SIM を利用する IoT デバイスでは、SORACOM プラットフォームと SMS を送受信できます。具体的には、以下のように SMS を送受信できます。

送信元受信先
SORACOM ユーザーコンソールグループ A の IoT SIM
任意のサーバー (SORACOM API を利用)グループ A の IoT SIM
グループ A の IoT SIM (*1)SORACOM Harvest
グループ A の IoT SIM (*1)任意のサーバー
グループ A の IoT SIM (*1)グループ A の IoT SIM (*2)
  • (*1) planP1 は SMS を送信できません。
  • (*2) 同一の SORACOM オペレーターが保有している グループ A の IoT SIM 間でのみ SMS を送受信できます。
グループ A の IoT SIM とグループ B の IoT SIM の間では、SMS を送受信できません。

IoT デバイスに SMS を送信する (IoT デバイスで SMS を受信する) 

SORACOM ユーザーコンソールまたは SORACOM API を利用して、グループ A の IoT SIM に SMS を送信できます。

グループ B の IoT SIM には SMS を送信できません。

SORACOM ユーザーコンソールを利用して SMS を送信する 

SORACOM ユーザーコンソールを利用して、グループ A の IoT SIM に SMS を送信します。

  1. SORACOM ユーザーコンソール にログインし、SMS の送信先の IoT SIM にあわせてカバレッジタイプを変更します。

    たとえば、plan01s の IoT SIM に送信する場合は、グローバルカバレッジの表示に変更します。詳しくは、SORACOM ユーザーコンソールで表示するカバレッジタイプを変更する を参照してください。

  2. SMS の送信先の IoT SIM にチェックを入れ、[操作] ボタンをクリックします。

  3. ドロップダウン形式でメニューが表示されますので、[SMS を送信] を選択します。

  4. エンコーディングタイプを選択し、SMS 本文を記載して [SMS を送信] を選択します。

SORACOM API を利用して SMS を送信する 

キャリアの通信網の外にあるサーバーから グループ A の IoT SIM に SMS を送信できます。

SMS を SORACOM API で送信する場合は sendSmssendSmsByMsisdn を使用します。

SORACOM CLI を使う場合は以下のコマンドを使用します。

soracom subscribers send-sms
soracom subscribers send-sms-by-msisdn

以下に API を使用した SMS 送信と SMS を使用した Harvest への送信手順を示します。

ステップ 1: デバイスの準備 

SORACOM IoT SIM はグローバルカバレッジです。以下のデバイスをご用意ください。

  • SIM フリーのデバイスであること
  • ローミングで利用可能であること
  • 日本国内で通信を行う場合、NTT ドコモ社の 3G 網の周波数帯に対応していて、かつ技術基準適合証明等 (技適) を受けていること
  • 日本国外で通信を行う場合、現地キャリアの周波数帯に対応していて、かつ現地での通信に必要な認証を受けていること (現地キャリアの周波数帯、必要な認証についてはお客様ご自身でご確認ください)
接続できない場合は、IoT デバイスの接続設定で 3G を優先するように設定してください。

ステップ 2: API を使用した SMS の送信 

API を使用した SMS の送信は、コンソールからも実施できますが、ここでは、API を利用して SMS を送信します。API Endpoint は、以下となります。

https://g.api.soracom.io/

ここからの API の実行は、API Reference からも実行できますので、合わせてご確認ください。

Auth API で API キーと API トークンを取得 

ターミナルから以下のコマンドを実行します。

$ curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d "{\"email\": \"<ログインID>\",\"password\": \"<パスワード>\"}" "https://g.api.soracom.io/v1/auth"
  • <ログイン ID> : オペレーターのメールアドレス
  • <パスワード> : オペレーターのパスワード

API キーとトークンが取得できます。これ以降の API の実行で使用します。

Send_sms API の実行 

Sim:sendSmsToSim を呼び出します。

$ curl -X POST -H "content-type:application/json" \
-H "X-Soracom-API-Key: <API キー>" \
-H "X-Soracom-トークン: <トークン>" \
-d '{
    "payload": "<メッセージ>"
}"' \
https://g.api.soracom.io/v1/subscribers/<imsi>/send_sms
  • <API キー> : Auth API で取得した API キー
  • <トークン> : Auth API で取得した API トークン
  • <メッセージ> : SMS で送信するテキストメッセージ。ここでは ACSII 文字を指定してください。
  • <imsi>: IoT SIM の IMSI

デバイスに SMS が送信できたことを確認してください。送信元の番号は 901001 です。SMS API は、当該の Operator がもつ IMSI のみに送信可能です。API の実行で呼び出すことができるため、業務システムなどに組み込んで、なんらかのトリガーで SMS を送信するなど、自動化が容易に行なえます。

なお、ASCII 以外のメッセージを送信するには、上記 API で -d '{"payload":"<メッセージ>"}' 部分を以下のように変更してください。

  • バイナリー (Hex) での送信: -d '{"encodingType":3, "payload":"74657374"}' 「“encodingType”:3」 を指定してください。
  • マルチバイトでの送信: -d '{"encodingType":2, "payload":"あいうえお"}' 「“encodingType”:2」 を指定してください。

SMS の送信失敗と再送 

デバイス宛に SMS を送信する場合、ターゲットとなるデバイスや接続しているローカルキャリアの状態など、様々な要因によって失敗する可能性があることにご注意ください。SORACOM プラットフォームでは後述のロジックで再送を試みます。なお、送信の試行が失敗するごとに前述のログにエラーを出力します。

現状の再送ロジックは以下のとおりで、上から順に評価されます。なお、この設定値は予告なく変更される可能性があります。

  • 2 分間隔で 20 回
  • 15 分間隔で 20 回
  • 1 時間間隔で 20 回

IoT デバイスから SMS を送信する 

グループ A の IoT SIM から、SORACOM プラットフォームに SMS でデータを送信します。

グループ B の IoT SIM からは、SORACOM プラットフォームに SMS を送信することはできません。

SMS を利用して SORACOM Harvest にデータを送信する 

グループ A の IoT SIM から、SORACOM Harvest に SMS でデータを送信します。

ステップ 1: グループの作成と IoT SIM のグループ所属 

グローバルカバレッジのコンソールにログインして、グループを作成します。

https://console.soracom.io/#/?coverage_type=g

「Menu」→「SIM グループ」→「追加」から、グループを選択してください。

グループ ID をコピーしておいてください。

plan01s SMS

次に、SIM 管理画面から IoT SIM を選択して、「所属グループ変更」から作成したグループに所属させてください。

plan01s SMS

ステップ 2: グループコンフィグを設定する 

作成したグループで、Harvest を ON にして、保存します。

plan01s SMS

ステップ 3: SMS を使用して、Harvest にデータを送信する 

デバイスから、以下の番号宛に SMS メッセージを送信してください。以下は Harvest 用の宛先番号となります。

  • 宛先番号: 901031

送信した IoT SIM で、「データを確認」から、送信されたデータを確認します。

plan01s SMS

以下のように送信されたデータを確認できます。

plan01s SMS

SMS を利用して任意のサーバーにデータを送信する 

グループ A の IoT SIM から任意のサーバーに SMS でデータを送信できます。

IoT SIM から SORACOM プラットフォームに SMS でデータを送信し、SORACOM プラットフォームのデータ転送支援サービス SORACOM Beam やクラウドリソースアダプタ SORACOM Funnel 、クラウドファンクションアダプタ SORACOM Funk 、データ収集・蓄積サービス SORACOM Harvest などのサービスと組み合わせることで、簡単に任意のサーバーへ送信、蓄積できます。

利用するサービスによって、宛先番号が異なります。各サービスの宛先番号は以下のとおりです。

  • Unified Endpoint: 901001
  • Beam: 901011
  • Funnel: 901021
  • Harvest: 901031
  • Funk: 901041

なお、NAI, NPI については、以下をご使用ください。

  • NAI: Nature of Address Indicator (TON: Type of Number) = 0 (Unknown)
  • NPI: Numbering Plan Indicator = 9 (Private)

ログの確認 

SMS to Beam/Funnel/Harvest、SMS API ともにログを確認できます。

plan01s SMS plan01s SMS