Soracom

Users

ドキュメント
Home ドキュメント SORACOM Beam エントリポイントリファレンス

TCP → TCP/TCPS エントリポイント

TCP → TCP/TCPS エントリポイント (beam.soracom.io:8023) に、デバイスから TCP で送信されたデータを、TCP パケットもしくは TCPS パケットとして指定のホストに転送します。

  • TCP → TCP/TCPS エントリポイントは、Unified Endpoint を経由して利用できません。
  • デバイスから TCP → TCP/TCPS エントリポイントにデータを送信するときは、TCPS は利用できません。

TCP → TCP/TCPS エントリポイントを設定する

設定画面を表示する操作については、SORACOM Beam のエントリポイントを設定する を参照してください。TCP → TCP/TCPS エントリポイントで設定できる項目は以下のとおりです。

項目説明
[設定名]

任意の名前を入力します。

同じ名前の設定を追加できます

[設定名] は、エントリポイントの一意のキーとして扱われません。ほかのエントリポイントと同じ名前を設定できます。

[有効]この設定の有効 / 無効を切り替えます。
[転送先]

このエントリポイントで受け付けたリクエストの転送先を設定します。

項目説明
[プロトコル]転送する際のプロトコルを選択します。
[ホスト名]転送先の FQDN (Fully Qualified Domain Name) を入力します。例: beamtest.soracom.io
[ポート番号]転送先のポート番号を入力します。例: 1234
[ヘッダ操作]転送先へのリクエストに追加するヘッダーを設定します。詳しくは、[ヘッダ操作] を参照してください。

[ヘッダ操作]

転送先へのリクエストに追加するヘッダーを設定します。

項目説明
[IMSI ヘッダ]スイッチをオンにすると、文字列形式で imsi=${IMSI} が最初の行の一部として追加されます。${IMSI} には、IoT SIM の IMSI が挿入されます。
[SIM ID ヘッダ]スイッチをオンにすると、文字列形式で simId=${SIM_ID} が最初の行の一部として追加されます。${SIM_ID} には、IoT SIM の SIM ID が挿入されます。
[MSISDN ヘッダ]スイッチをオンにすると、文字列形式で msisdn=${MSISDN} が最初の行の一部として追加されます。${MSISDN} には、IoT SIM の MSISDN が挿入されます。
[IMEI ヘッダ]スイッチをオンにすると、文字列形式で imei=${IMEI} が最初の行の一部として追加されます。${IMEI} には、デバイスの IMEI が挿入されます。
[署名 ヘッダ 付与]

スイッチをオンにすると、文字列形式で timestamp=${timestamp};signature=${signature} version=20150901 が最初の行の一部として追加されます。詳しくは、署名ヘッダと事前共有鍵を使って送信元を検証する を参照してください。

  • [事前共有鍵]: [署名 ヘッダ 付与] がオンのときに、署名に利用する事前共有鍵を、認証情報ストア に登録した事前共有鍵から選択します。

[IMSI ヘッダ][SIM ID ヘッダ][MSISDN ヘッダ][IMEI ヘッダ] のいずれか 1 つがオンのときに設定できます。

SORACOM CLI / SORACOM API の場合

グループ設定に Beam のエントリポイントを追加するコマンドについては、SORACOM Beam のエントリポイントを設定するSORACOM CLI / SORACOM API の場合 を参照してください。

ここでは、TCP → TCP/TCPS エントリポイントを追加する場合のリクエストボディに指定する keyvalue のペアを説明します。

keyvalue の型value
tcp://beam.soracom.io:8023ObjectTCP → TCP/TCPS エントリポイントの Object を参照してください。

SORACOM CLI のコマンド例:

$ soracom groups put-config --group-id {group_id} --namespace SoracomBeam \
--body '[
  {
    "key": "tcp://beam.soracom.io:8023",
    "value": {
      "name": "tcp2tcps",
      "enabled": true,
      "destination": "tcps://beamtest.soracom.io:1234",
      "addSubscriberHeader": true,
      "addSimIdHeader": true,
      "addMsisdnHeader": true,
      "addEquipmentHeader": true,
      "addSignature": true,
      "psk": {
        "$credentialsId": "CredentialsID"
      }
    }
  }
]'
SORACOM CLI や API で設定を更新するときは

Beam のエントリポイントの設定を部分的に更新するときは、更新しない設定も含めて、すべての設定を漏れなく指定してください。更新する設定だけを指定すると、省略した設定は初期値に戻ります。

想定していない値を指定した場合の動作は、定義されていません。SORACOM CLI / SORACOM API で設定を変更したあとで、SORACOM ユーザーコンソールで意図通りに設定されていることを確認してください。

TCP → TCP/TCPS エントリポイントの Object

以下の key と value を指定します。なお、この key と value のペアは、通常の JSON Object として指定します。

keyvalue の型value
nameString

任意の名前を入力します。

同じ名前の設定を追加できます

name は、エントリポイントの一意のキーとして扱われません。ほかのエントリポイントと同じ名前を設定できます。

enabledBoolean

このエントリポイントの有効 / 無効を設定します。

  • true: 有効
  • false: 無効
destinationStringエントリポイントで受け付けたリクエストの転送先 (URL) を入力します。例: tcps://beamtest.soracom.io:1234
addSubscriberHeaderBoolean

文字列形式で imsi=${IMSI} を最初の行の一部として追加するかを設定します。${IMSI} には、IoT SIM の IMSI が挿入されます。

  • true: 文字列を追加します。
  • false: 文字列を追加しません。
addSimIdHeaderBoolean

文字列形式で simId=${SIM_ID} を最初の行の一部として追加するかを設定します。${SIM_ID} には、IoT SIM の SIM ID が挿入されます。

  • true: 文字列を追加します。
  • false: 文字列を追加しません。
addMsisdnHeaderBoolean

文字列形式で msisdn=${MSISDN} を最初の行の一部として追加するかを設定します。${MSISDN} には、IoT SIM の MSISDN が挿入されます。

  • true: 文字列を追加します。
  • false: 文字列を追加しません。
addEquipmentHeaderBoolean

文字列形式で imei=${IMEI} を最初の行の一部として追加するかを設定します。${IMEI} には、デバイスの IMEI が挿入されます。

  • true: 文字列を追加します。
  • false: 文字列を追加しません。
addSignatureBoolean

文字列形式で timestamp=${timestamp};signature=${signature} version=20150901 を最初の行の一部として追加するかを設定します。詳しくは、署名ヘッダと事前共有鍵を使って送信元を検証する を参照してください。

  • true: 文字列を追加します。
  • false: 文字列を追加しません。
psk.$credentialsIdStringaddSignaturetrue のときに、署名に利用する事前共有鍵の認証情報 IDを指定します。認証情報 ID は、認証情報ストア に事前共有鍵を登録したときに指定しています。詳しくは、署名ヘッダと事前共有鍵を使って送信元を検証する を参照してください。

TCP → TCP/TCPS エントリポイントにリクエストする

TCP → TCP/TCPS エントリポイントに、デバイスからデータを送信します。

以下は、デバイスで telnet コマンドを利用して、TCP → TCP/TCPS エントリポイント (beam.soracom.io:8023) にデータを送信する場合の例です。

$ telnet beam.soracom.io 8023
Trying 100.127.127.100...
Connected to beam.soracom.io.
Escape character is '^]'.
Hello Soracom Beam Client! : imsi=295012345678901 imei=001010123456789 (← Beam によって IoT SIM の IMSI とデバイスの IMEI が付与されている)
hi        (← キーボードから入力)
hi        (← beamtest.soracom.io からのエコーバック)
[ヘッダ操作] の各設定がオンの場合
  • [IMEI ヘッダ][IMSI ヘッダ] がオンの場合、最初の行として以下の内容が送信されます。

    imei=XXXXXXXX7613276 imsi=XXXXXXXX4074449
    
  • [IMEI ヘッダ][IMSI ヘッダ][署名ヘッダ付与] がオンの場合、最初の行として以下の内容が送信されます。

    imei=001010123456789 imsi=295012345678901 timestamp=1689935252284;signature=XXXXXXXXXXXXXXXXXXXX8d0e32a8df182c4bd48d21287fdb1275e37d108eb2b4 version=20151001
    

    beam.soracom.io に転送する場合は、[事前共有鍵]topsecret を設定した認証情報を選択すると、署名検証に成功します。

    $ telnet beam.soracom.io 8023
    Trying 100.127.127.100...
    Connected to beam.soracom.io.
    Escape character is '^]'.
    --- SIGNATURE VERIFICATION
    imei=001010123456789 imsi=295012345678901 timestamp=1689935252284;signature=XXXXXXXXXXXXXXXXXXXX8d0e32a8df182c4bd48d21287fdb1275e37d108eb2b4 version=20151001
    
    string_to_sign: imei=001010123456789 imsi=295012345678901 timestamp=1689935252284
    calculated_signature: sha256(string_to_sign) = XXXXXXXXXXXXXXXXXXXX8d0e32a8df182c4bd48d21287fdb1275e37d108eb2b4
    provided_signature: XXXXXXXXXXXXXXXXXXXX8d0e32a8df182c4bd48d21287fdb1275e37d108eb2b4
    ---
    Hello Authorized Soracom Beam Client! :imei=001010123456789 imsi=295012345678901 timestamp=1689935252284
    hi        (← キーボードから入力)
    hi        (← beamtest.soracom.io からのエコーバック)
    

    署名検証について詳しくは、署名ヘッダと事前共有鍵を使って送信元を検証する を参照してください。