Soracom

Users

ドキュメント
Home ドキュメント SORACOM Air for セルラー SMS / USSD でデータを送受信する

SORACOM と SMS を送受信する

デバイスと SMS を送受信できる対象は、IoT SIM の サブスクリプション によって異なります。SMS の観点でサブスクリプションを分類すると、以下のグループに分類できます。このページでは、グループ A の IoT SIM で利用できる機能を説明します。

グループ主な特徴サブスクリプション
グループ ASORACOM と SMS を送受信できるplan01s、plan01s - Low Data Volume、planP1 (*1)、planX1、planX2、planX3、plan-K2 K2-300MB
グループ B他社の SIM と SMS を送受信できるplan-D (SMS あり)、plan-K
グループ CSMS を送受信できないplan-D (データ通信のみ)、plan-KM1、plan-DU、plan-US-max
  • (*1) planP1 では、SMS の受信 (SMS MT) のみをサポートしています。SMS 送信 (SMS MO) はサポートしていません。
SMS を送受信すると料金が発生します

SMS を送受信すると料金が発生します。料金は、サブスクリプションごとに異なります。詳しくは、以下のページを参照してください。

IoT SIM とデバイスの両方が SMS の送受信に対応する必要があります

これ以降の説明では、説明を簡単にするために、IoT SIM が単体で SMS を送受信するかのように説明しているところがあります。しかし、実際は IoT SIM を利用しているデバイスが SMS を送受信します。たとえば、SMS の送受信に対応している IoT SIM を利用しても、デバイスが SMS の送受信に対応していない場合は、SMS は送受信できません。

グループ A の IoT SIM で利用できる機能

グループ A の IoT SIM を利用するデバイスでは、SORACOM と SMS を送受信できます。具体的には、以下のように SMS を送受信できます。

送信元受信先宛先に指定する識別子
SORACOM ユーザーコンソール、または任意のサーバー (SORACOM CLI / API を利用) (*1)グループ A の IoT SIM (*2)SIM ID
グループ A の IoT SIMグループ A の IoT SIM (*2)MSISDN (*3)
グループ A の IoT SIMUnified Endpoint901001
グループ A の IoT SIMSORACOM Beam901011
グループ A の IoT SIMSORACOM Funnel901021
グループ A の IoT SIMSORACOM Harvest Data901031
グループ A の IoT SIMSORACOM Funk901041
  • (*1) SORACOM CLI / API を利用するサーバーには、SMS を送信する機能は必要ありません。
  • (*2) 送信元と同一のオペレーターが保有する「グループ A の IoT SIM」にのみ送信できます。そのほかのオペレーターや、他社の SIM から SMS による送信はブロックされているため安全です。
  • (*3) IoT SIM の MSISDN は、SORACOM ユーザーコンソールなどを参照してください。詳しくは、SIM 管理画面で IoT SIM の情報を確認 / 検索する を参照してください。

グループ A の IoT SIM とグループ B の IoT SIM の間では、SMS を送受信できません。

  • 未読 SMS の保管期間は、25 時間です。保管期間を経過すると自動的に削除されます。
  • SMS の送信に失敗した場合は、SMS の送信に失敗したときは の仕様に従って SMS の再送を繰り返します (約 25 時間)。

グループ A の IoT SIM を利用するデバイスに SMS を送信する

SORACOM ユーザーコンソールや、SORACOM CLI / API を利用すると、通信キャリアの通信網の外にある任意のサーバーから、グループ A の IoT SIM に SMS を送信できます。

同一のオペレーターが保有する グループ A の IoT SIM 間でも SMS を送受信できます。詳しくは、グループ A の IoT SIM を利用するデバイス間で SMS を送受信する を参照してください。

SORACOM ユーザーコンソールで送信する

  • グループ B の IoT SIM には SMS を送信できません。
  • 同一のオペレーターが保有する IoT SIM にのみ SMS を送信できます。

送信元の番号は 901001 です。

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

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

  2. [メニュー][SORACOM AIR FOR セルラー][SIM 管理] の順にクリックします。

    SIM 管理画面が表示されます。

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

  4. [エンコーディング] を選択し、[SMS 本文] にメッセージを入力して、[SMS を送信] をクリックします。

    [エンコーディング] では、送信するメッセージに合わせて以下のいずれかを選択します。

    項目説明
    [UCS-2 (default)]漢字やキリル文字、アラビア文字などを送信できます。最大 70 文字。
    [GSM-7]GSM 7 ビット標準アルファベットを送信できます。漢字やキリル文字、アラビア文字などは送信できません。最大 160 文字 (最大 140 バイト)。

SMS の送信に失敗したときは

グループ A の IoT SIM を利用するデバイスに SORACOM から SMS を送信する際、送信先のデバイスや接続している通信キャリアの状態など、さまざまな要因で失敗することがあります。SORACOM からは、以下の時間間隔で再送を試みます。なお、この時間間隔は予告なく変更される可能性があります。

  1. 2 分間隔で、20 回送信を試みます。
  2. 2 分待機後、15 分間隔で、20 回送信を試みます。
  3. 15 分待機後、1 時間間隔で、20 回送信を試みます。
エラーログが出力されます

送信および再送が失敗するごとに、送信先の IoT SIM にエラーログが出力されます。エラーログを確認する操作については、IoT SIM のエラーログを確認する を参照してください。

SORACOM CLI / SORACOM API の場合

SORACOM CLI または SORACOM API を利用しても、デバイスに SMS を送信できます。

  • SORACOM CLI を利用するには、あらかじめ SORACOM CLI をインストールし、認証情報を保存してください。詳しくは、SORACOM CLI をインストールする を参照してください。
  • SIM ID は、soracom sims list (Sim:listSims API) で取得できます。

soracom sims send-sms (Sim:sendSmsToSim API) を使用します。

$ soracom sims send-sms --coverage-type g --sim-id ${sim_id}\
--encoding-type 2 --payload "テスト送信"

Sim:sendSmsToSim API を使用します。

$ curl -v -X POST "https://g.api.soracom.io/v1/sims/${sim_id}/send_sms" \
-H "X-Soracom-API-Key: ${X_SORACOM_API_KEY}" \
-H "X-Soracom-Token: ${X_SORACOM_TOKEN}" \
-H "Content-Type: application/json" \
-d '{
  "encodingType": 2,
  "payload": "テスト送信"
}'

グループ A の IoT SIM を利用するデバイスから SMS を送信する

グループ A の IoT SIM を利用するデバイスから、SORACOM に SMS でデータを送信します。

  • グループ B の IoT SIM を利用するデバイスからは、SORACOM に SMS を送信することはできません。
  • デバイスからデータを送信する際、AT コマンドを処理するモデムによって文字が変換されることがあります。変換内容については、モデムの取扱説明書を参照してください。

SORACOM Harvest Data にデータを送信する

グループ A の IoT SIM を 利用するデバイスから、901010 (Unified Endpoint) または 901031 (Harvest Data) 宛てに SMS を送信すると、SORACOM Harvest Data (以下、Harvest Data) にデータを送信できます。以下は、Soracom Onyx - LTE™ USB ドングル (SC-QGLC4-C1) (以下、USB ドングル) を利用するデバイスで cu コマンドを利用して、901031 宛てに SMS を送信する場合の例です。

Harvest Data を有効化してください

あらかじめ SIM グループの Harvest Data を有効化し、その SIM グループに IoT SIM を所属させてください。詳しくは、Harvest Data を有効化する を参照してください。

  1. デバイスにログインして、USB ドングルが取り付けられているシリアルポート (例: /dev/ttyUSB3) に接続します。

    USB ドングルが /dev/ttyUSB3 に取り付けられている場合:

    $ cu -l /dev/ttyUSB3 -s 57600
    
    Connected.
    
  2. テキストを送信するモードに変更し、USB ドングルにテキストを渡す際の文字エンコーディングを IRA に変更して、宛先に他社の SIM の MSISDN (901031) を指定します。

    AT+CMGF=1
    
    OK
    
    AT+CSCS="IRA"
    
    OK
    
    AT+CMGS="901031"
    
    >
    
  3. 送信するテキストを入力して、Ctrl + Z キーを押します。

    {"temperature": 20}        (← 送信するテキストを入力して、Ctrl + Z キーを押します)
    

    SMS が送信されます。

    +CMGS: 4
    
    OK
    
  4. Enter キーを押してから、~. を入力します。

    cu コマンドが終了します。

  5. Harvest Data に送信されたデータを確認します。

    詳しくは、Harvest Data に保存したデータを確認する を参照してください。

    plan01s SMS plan01s SMS

任意のサーバーにデータを送信する

グループ A の IoT SIM を利用するデバイスから、SORACOM Beam / Funnel / Harvest Data / Funk の各サービスに対応する宛先番号宛てに SMS を送信すると、各サービスを経由して任意のサーバーにデータを送信できます。

宛先番号、NAI、NPI、メッセージペイロードに指定する値は、以下のとおりです。

項目
宛先番号

利用するサービスによって、宛先番号が異なります。

利用するサービスを有効化してください

たとえば、Harvest Data を利用する場合は、あらかじめ SIM グループの Harvest Data を有効化し、その SIM グループに IoT SIM を所属させてください。詳しくは、Harvest Data を有効化する を参照してください。

NAI (Nature of Address Indicator)、TON (Type of Number)0 (Unknown)
NPI (Numbering Plan Indicator)9 (Private)
メッセージペイロード最大 140 バイトの任意のデータを指定できます。
ログの確認

送信ログを確認できます。詳しくは、IoT SIM のエラーログを確認する を参照してください。

plan01s SMS plan01s SMS

グループ A の IoT SIM を利用するデバイス間で SMS を送受信する

同一のオペレーターが保有する グループ A の IoT SIM 間では、MSISDN (Mobile Station International Subscriber Directory Number) を指定して SMS を送受信できます。

グループ A の IoT SIM とグループ B の IoT SIM の間では、SMS を送受信できません。

グループ A の IoT SIM を利用するデバイスで SMS を受信する

グループ A の IoT SIM を利用するデバイス (例: Raspberry Pi) で SMS を受信します。

以下は、SORACOM ユーザーコンソールでグループ A の IoT SIM に対して、[エンコーディング] を「UCS-2」に設定し、「test SMS」を送信したときに、デバイスで cu コマンドを利用して SMS を受信する場合の例です。

  1. デバイスにログインして、USB ドングルが取り付けられているシリアルポート (例: /dev/ttyUSB3) に接続します。

    USB ドングルが /dev/ttyUSB3 に取り付けられている場合:

    $ cu -l /dev/ttyUSB3 -s 57600
    
    Connected.
    
  2. テキストを送信するモードに変更し、SMS の一覧を取得します。

    AT+CMGF=1
    
    OK
    
    AT+CMGL="ALL"
    
    +CMGL: 0,"REC UNREAD","901001",,"23/11/28,02:58:10+00"
    007400650073007400200053004D0053        ("test SMS" を UCS-2 でエンコードした場合の表示)
    
    OK
    
    受信した SMS に返信したときは

    SORACOM ユーザーコンソールや SORACOM CLI/API で SMS を送信した場合、SMS の送信者は 901001 (Unified Endpoint) に設定されます。したがって、その SMS に返信すると、Unified Endpoint (宛先が 901001) に SMS が送信されます。

    なお、返信された SMS を確認するには、SMS を送信する前に Harvest Data などを有効化してください。詳しくは、グループ A の IoT SIM を利用するデバイスから SMS を送信する を参照してください。

  3. Enter キーを押してから、~. を入力します。

    cu コマンドが終了します。