SMPP API

API情報

SMPP APIプロトコルは、EngageLab OTPサービス向けのSMPP通信プロトコルを定義したもので、TCP接続を通じて効率的かつ信頼性の高いメッセージ配信とステータスレポートを実現するために設計されています。API情報には、接続に必要なIPアドレス、ポート番号、認証情報が含まれます。認可されたチャネルを通じて提供されたアカウントとパスワードが正しく設定されていることを確認してください。

SMPPアドレス

SMPPアドレス: otpsmpp.api.engagelab.cc

以下の情報は、営業または技術サポートなどの認可された窓口を通じて取得してください。

  • Port: { port }
  • Account: { system_id }
  • Password: { password }

接続の確立

クライアントパケット

TCP接続を確立した後、最初のパケットでは認証のために BindTransceiver コマンド(0x00000009)を送信する必要があります。このパケットには、以下のフィールドを含める必要があります。

  • system_id: クライアントに割り当てられたシステムアカウントで、クライアントの識別に使用されます。
  • password: システムアカウントに対応するアクセスパスワードで、認証に使用されます。

サーバーレスポンス

成功レスポンス

  • サーバーは BindTransceiverResp コマンド(0x80000009)を返します。
  • system_id フィールドには、受信した system_id フィールドと同じ値が設定されます。

失敗レスポンス

  • 認証に失敗した場合、サーバーはTCP接続を切断し、失敗理由を記録します。

メッセージ送信

サーバーロジック

メッセージ送信では、SUBMIT_SM コマンド(0x00000004)を使用してメッセージ配信リクエストを送信します。サーバーロジックは以下のとおりです。

  1. サーバーはリクエスト内容を解析し、常にSMSチャネルを使用して配信します。
  2. メッセージ配信は同期的に行われ、結果は SUBMIT_SM_RESP コマンド(0x80000004)を通じて返されます。
  3. 配信ステータスは配信レポートを通じて通知されます。詳細は 配信レポート を参照してください。
  4. 特殊文字および国際化に対応するため、UCS2 エンコーディングの使用を推奨します。

クライアントパケット

クライアントは SUBMIT_SM コマンド(0x00000004)を送信してメッセージを送信します。パケットには、以下のフィールドを含める必要があります。

  1. service_type

    • 値: MSG / CODE / MRKT
    • デフォルト値: MSG
  2. source_addr

    • 空のままでも問題なく、現在OTPでは使用されていません。
  3. destination_addr

    • メッセージの送信先です。国際電話番号形式(例: +6598765432)である必要があります。
  4. short_message

    • メッセージ内容は、以下のようにJSON形式を使用します。
      { "id": "xxx", // テンプレートID "language": "default", // 使用する言語。デフォルトはdefault "code": "xx", // 認証コード。service_typeがCODEの場合にのみ使用 "params": { // カスタムキーと値のペア "key1": "val1" // valは文字列形式である必要があります } }
                    
                    {
        "id": "xxx",           // テンプレートID
        "language": "default", // 使用する言語。デフォルトはdefault
        "code": "xx",          // 認証コード。service_typeがCODEの場合にのみ使用
        "params": {            // カスタムキーと値のペア
          "key1": "val1"       // valは文字列形式である必要があります
        }
      }
      
                  
      このコードブロックはフローティングウィンドウ内に表示されます
  5. data_coding

    • {} などの特殊文字を正しく解析できるように、UCS2 エンコーディングの使用を推奨します。
    • {} の直接送信がサポートされている場合は、デフォルトのエンコーディング(0x00)を使用できます。
  6. status in the header

    • 0x00000000 に設定します。

サーバーレスポンス

サーバーは、メッセージ配信結果に対する応答として SUBMIT_SM_RESP コマンド(0x80000004)を送信します。

成功レスポンス

  • ヘッダー内のstatusフィールドの値: 0x00000000
  • MESSAGE_IDフィールド: 応答メッセージID。配信レポートとの関連付けに使用されます。

失敗レスポンス

  • サーバーは、失敗理由を示すために ヘッダー内のstatusフィールド を設定します。
Status Code Description Value
ESME_RINVPARAM 無効なパラメータです。リクエスト内容の形式を確認してください。 0x00000032
ESME_RSYSERR サービス内部エラーです。しばらく時間をおいてから再試行することを推奨します。 0x00000008
ESME_RSUBMITFAIL 配信に失敗しました。テンプレートの問題またはその他の理由が考えられます。 0x00000045
ESME_RINVNUMMSGS short_message フィールドの内容形式が正しくありません。 0x00000055
ESME_RUNKNOWNERR 不明なエラーです。技術サポートへお問い合わせください。 0x000000FF

配信レポート

サーバーは DELIVER_SM コマンド(0x00000005)を通じて配信ステータスを通知します。関連フィールドは以下のとおりです。

  1. service_type

    • 固定値: MSG
  2. source_addr

    • 空のままにします。
  3. destination_addr

    • SUBMIT_SM コマンド内の destination_addr と同じです。
  4. data_coding

    • エンコーディング方式: デフォルト値は 0x00 です。
  5. esm_class

    • 0x00 に設定します。
  6. short_message

    • 配信レポートは delivery receipt 形式でパッケージ化されます。
  7. ReceiptedMessageID in TLV

    • メッセージID。関連付けおよび識別に使用されます。
  8. MessageState in TLV

    • メッセージステータス。フィールド値は 0x0427 です。

ステータス解析

short_message フィールド内の stat 値の意味は以下のとおりです。

Status Meaning
DELIVRD 正常に配信されました
UNDELIV 配信に失敗しました

その他の注意事項

無効なコマンド

クライアントから無効なコマンドが送信された場合、サーバーは GENERIC_NACK コマンド(0x80000000)を返し、関連ログを記録します。サーバーがサポートするコマンドは以下のみです。

  1. EnquireLink コマンド(0x00000015
  2. Unbind コマンド(0x00000006
  3. SubmitSM コマンド(0x00000004
  4. DeliverSMResp コマンド(0x80000005
  5. BindTransceiver コマンド(0x00000009

Keepalive

接続をアクティブな状態に保つため、クライアントは30秒ごと(許容範囲: ±5秒)に1回 EnquireLink コマンド(0x00000015)を送信する必要があります。

送信ステータスの意味

Status Code Meaning
ESME_RINVPARAM 無効なパラメータです。リクエスト内容の形式を確認してください。
ESME_RINVNUMMSGS short_message フィールドの内容形式が正しくありません。
ESME_RSUBMITFAIL 配信に失敗しました。テンプレートの問題またはその他の理由が考えられます。
ESME_RSYSERR サービス内部エラーです。しばらく時間をおいてから再試行することを推奨します。
ESME_RUNKNOWNERR 不明なエラーです。技術サポートへお問い合わせください。
DELIVRD メッセージは正常に配信されました
UNDELIV メッセージを配信できませんでした

用語

  • SMPP: Short Message Peer-to-Peer Protocol。SMSゲートウェイとのメッセージ交換に使用されます。
  • SUBMIT_SM: SMSメッセージを送信するためのSMPPコマンドです。
  • DELIVER_SM: メッセージ配信ステータスを通知するためにサーバーが使用するSMPPコマンドです。

ご不明な点がありましたら、OTP Technical Support までお問い合わせください。

Icon Solid Transparent White Qiyu
お問い合わせ