SMPPの仕様
ショートメッセージピアツーピア (SMPP) は、SMSアプリケーションシステムとショートメッセージサービスセンター (SMSC) 間でSMSメッセージを送受信する際に使用される通信プロトコルで、仕様が公開されている標準プロトコルとして通信業界で広く採用されています。
アプリケーションとNTT CPaaS SMPPサーバー間の接続は、SMPPバージョン3.4 (opens in a new tab) に基づきます (バージョン3.3と5.0には対応していません)。
対応しているSMPP機能
SMPPラフィックのセキュリティ
SMPP APIトラフィックの安全性に万全を期すには、SMPP APIトラフィックのブロードキャストだけに特化した資格情報を持つ専用のユーザーを使用するようにします。これにより、アカウント管理が適切に行われ、SMPP APIトラフィックのセキュリティが保てるようになります。
SMPPトラフィックが静的IPアドレスから発信される場合は、担当のアカウントマネージャーに連絡し、SMPP APIトラフィックのブロードキャスト責任者となるユーザー用のセーフリストに登録する送信元IPアドレスのリストをご提供ください。NTT CPaaS SMPPサーバーに接続するには、バインドパラメーター と題したセクションに記載されているホスト名を使用します。
接続をセキュアにするには、暗号化された SSL/TLSエンドポイント smpp2.infobip.com:8887 にバインドリクエストを送信します。
バインドパラメーター
必要なパスワードの長さは、SMPP v3.4プロトコル自体ではなく、お使いのSMPPライブラリによって異なります。8文字を超えるパスワードに対応しているライブラリをご利用ください。アカウントのパスワード強度ポリシーの調整について追加情報が必要な場合は、サポート までお問い合わせください。
| 名前 | 必須 | 説明 |
|---|---|---|
| system_id | はい | NTT CPaaSプラットフォーム上で作成された利用者のユーザー名。 |
| パスワード | はい | 各クライアントに個別に提供されます。 |
| IPアドレス | はい | プライマリ:smpp3.infobip.com セカンダリ:smpp1.infobip.com SSL:smpp2.infobip.com アカウントごとに、ログが正しく表示されるように、データセンター (DC) のロケーションに基づいてホスト名を選択します (例えば、インドネシアにあるアカウントには smpp-id1.infobip.comを使用します)。 |
| ポート | はい | 8888 (プライマリおよびセカンダリ) 8887 (SSL) |
| タイムアウト (キープアライブまたはメッセージ) | はい | 30秒 |
| system_type | いいえ | 任意 |
送信機、受信機、またはトランシーバーとしてバインドできます。配信レポートを受信するには、トランシーバーまたはレシーバとしてバインドする必要があります。
配送レポートが届くのは、ルートで配送レポートが提供されている場合のみです。配信レポートは、受信できるすべての利用可能なセッション (トランシーバーまたは受信機) に均等に送信されます。
デフォルトでは、最大 4つのセッション までバインドできます。インターネット速度以外にスループット (TPS) の制限はありません。
PDUの種類
bind_transmitterbind_receiverbind_transceiverunbindsubmit_smdeliver_smenquire_link
データのコーディングスキーム
DCSを0または1に設定すると、IA5/GSM7 コーディングスキームがメッセージに適用されます (GSM7はデフォルトの NTT CPaaS SMSCのアルファベットです)。
Latin1 (ISO-8859-1) の場合はDCS = 3を、メッセージをUnicode/UCS-2 (ISO/IEC-10646) として送信する場合はDCS = 8を設定します。
配信スケジュールの設定
SMPPプロトコルでは、配信スケジュールを相対時刻形式で設定する方式がサポートされています。
070605040302100R
例えば、メッセージは今から7年6か月と5日目の4時間3分2.1秒後に配信されることを意味します。
コマンドステータス
当社のシステムへの各リクエストには、SMPP v 3.4規格に準拠した応答が返され、その中にはcommand_statusが含まれます。NTT CPaaS固有のステータスを含め、主なコマンドステータスは以下の表のとおりです:
| command_status | PDU | Description |
|---|---|---|
| 0x0000000E | bind_resp | 無効な資格情報 |
| 0x00000022 / 34 | submit_sm_resp | サービス提供対象外のネットワーク |
| 0x000000FF / 255 | submit_sm_resp | アカウントの残高不足 |
| 0x0000000a | submit_sm_resp | 無効な送信元アドレス |
| 0x0000000b | submit_sm_resp | 無効な送信先アドレス |
| 0x0000000c | submit_sm_resp | メッセージ IDが重複または無効 |
| 0x000004a1 | submit_sm_resp | システムエラーまたはチャネルが無効 |
| 0x0000009F | submit_sm_resp | 無効なオプションのパラメーター長 |
配信レポートの形式
このの形式の配信レポートは、deliver_sm PDUのショートメッセージフィールドに返されます:
id:{message_id} sub:{message_sub} dlvrd:{message_dlvrd}
submit date:{message_submit_date} done date:{message_done_date}
stat:{message_stat} err:{message_err}
配信ステータス
DELIVRDEXPIREDUNDELIVACCEPTDUNKNOWNENROUTEREJECTD
GSMエラーコード
GSMエラーコードはDLRで返され、メッセージのステータス (中間ステータスまたは最終ステータスなのか) を示します。エラーコードは、配信情報の一部としてshort_message内に返されるか、もしくは (NTT CPaaSのテクニカルサポートによって有効化されている場合は) オプションのTLV 0x423内に返されます。
考えられるエラーコード をご確認ください。
フラッシュ通知
お持ちのNTT CPaaS SMPPアカウントを使ってフラッシュ通知を送信することができます。この通知は、受信するとすぐに携帯電話の画面に表示され、デバイスのメモリには保存されません。デフォルトの system_id とパスワードを使ってフラッシュ通知を送信する場合は、データコーディングを16 (または Unicodeの場合は24) に設定してメッセージを送信するようにします。
フラッシュ通知では、長文SMS機能はサポートされていません。配信レポートはDeliverSM PDUを使って送信されます。
番号検索
NTT CPaaS SMPPアカウントを使用すると、番号検索データのリクエストが送信できます。番号検索を利用するには、デフォルトの system_id および password を使って、バインドPDU内で system_type = HLR を設定するようにします。
番号検索リクエストを送信するには、SubmitSM PDU を使用します。その際、destAddress パラメーターには必要な送信先アドレスを設定します。その他のパラメーター (srcAddress、TON/NPI など) はすべて無視されます。
NTT CPaaSの番号検索サブシステムは、message_id 参照を含む通常の SubmitSMResp を使って応答します。
NTT CPaaSシステム上で番号検索リクエストの処理が完了すると、DeliverSM PDU が届きます。これには、必要となるdestAddressの IMSI、あるいは 失敗した場合は エラーコード、ならびにご利用のパッケージによっては追加の 任意入力用フィールド も記載されたショートメッセージが含まれます。
任意入力用フィールド | 種類 | 16進数 | 10進数 |
|---|---|---|---|
| 元のネットワーク名 | TLVString | 0x1412 | 5138 |
| 元のネットワークのプレフィックス | TLVString | 0x140B | 5131 |
| 元の国 | TLVString | 0x1422 | 5154 |
| 元の国コード | TLVString | 0x1423 | 5155 |
| 元の国のプレフィックス | TLVString | 0x1424 | 5156 |
| 移動先のネットワーク名 | TLVString | 0x1413 | 5139 |
| 移動先の国のプレフィックス | TLVString | 0x1442 | 5186 |
| 移動先のネットワークのプレフィックス | TLVString | 0x143e | 5182 |
| 移動先のネットワークの国名 | TLVString | 0x143f | 5183 |
| 番号は移動されているか | TLVInt | 0x1421 | 5153 |
| ローミング先のネットワークの名前 | TLVString | 0x1414 | 5140 |
| ローミング先のネットワークのプレフィックス | TLVString | 0x1419 | 5145 |
| ローミング先の国名 | TLVString | 0x1415 | 5141 |
| ローミング先の国コード | TLVString | 0x1417 | 5143 |
| ローミング先の国のプレフィックス | TLVString | 0x1420 | 5152 |
| MCCMNC | TLVString | 0x1416 | 5142 |
| 1メッセージあたりの価格(互換性のため100を乗算) | TLVInt | 0x1418 | 5144 |
| 移動先のHLR | TLVString | 0x1409 | 5129 |
| 番号は正しいか | TLVInt | 0x1425 | 5157 |
追加の任意入力用フィールド | 種類 | 16進数 | 10進数 |
|---|---|---|---|
| IMSI | Oct | 0x1403 | 5123 |
番号検索リクエストが成功した場合、DeliverSMは以下のようになります (IMSI 219101100935850):
addr: 0 0 38591xxxxxxx
addr: 0 0 0000000000
msg: id:40072910491427628 sub:001 dlvrd:001 submit date:1007291049 done date:1007291049 stat:DELIVRD err:000
IMSI:219101100935850 MSC:38591016 HLR:38591xxxxxxx ORN:VipNet PON:VipNet RON:VipNet ROC:HR MCCMNC:21910
opt: (oct: (tlv: 1059) 030000) (byte: (tlv: 1063) 2) (str: (tlv: 30) 40072910491427628) (str: (tlv: 5129)38591xxxxxxx) (str: (tlv: 5138) VipNet) (str: (tlv: 5139) VipNet) (str: (tlv: 5140) VipNet) (str: (tlv:5141) Croatia ) (str: (tlv: 5143) HR) (str: (tlv: 5142) 21910) (int: (tlv: 5144) 1) (str: (tlv: 5145) 91) (str: (tlv: 5152) 385) (int: (tlv: 5153) 1) (str: (tlv: 5154) Croatia ) (str: (tlv: 5155) HR) (str: (tlv: 5156) 385) (int: (tlv: 5157) 1) ) (extraopt: (oct: (tlv: 5123) 323139313031313030393335383530) )
エラーが発生した場合、DeliverSMは以下のようになります:
addr: 0 0 38591xxxxxxx
addr: 0 0 0000000000
msg: id:40072910491419819 sub:001 dlvrd:001 submit date:1007291049 done date:1007291049 stat:UNDELIV err:001
IMSI: MSC: ORN:VipNet MCCMNC:
opt: (oct: (tlv: 1059) 030001) (byte: (tlv: 1063) 5) (str: (tlv: 30) 40072910491419819) (str: (tlv: 5138) VipNet) (str: (tlv: 5142) ) (int: (tlv: 5144) 1) (int: (tlv: 5153) 0) (str: (tlv: 5154) Croatia ) (str: (tlv: 5155) HR) (str: (tlv: 5156) 385) (int: (tlv: 5157) 1) )
URL短縮とトラッキング
SMPP接続は、以下のTLVを組み合わせて使用することで、URL短縮 機能と連携させることができます:
省略可能なフィールド | 種類 | 16進数 | 10進数 | 価値 | 備考 |
|---|---|---|---|---|---|
| URLの短縮 | TLVString | 0x1494 | 5268 | いずれの値でも有効 | カスタムドメインTLVが設定されている場合は不要。 |
| カスタムドメイン | TLVString | 0x1495 | 5269 | カスタムドメインには、http:// または https:// は不要。 | |
| プロトコルの削除 | TLVString | 0x1496 | 5270 | ブーリアン | |
| クリック数のトラッキング | TLVString | 0x149B | 5271 | ブーリアン | クリックイベントを受信するには、サブスクリプションAPI (opens in a new tab) または NTT CPaaSのWebインターフェース (opens in a new tab)内のサブスクリプション管理機能を使って、サブスクリプションをセットアップする必要があります。 また別の方法として、Reports (レポート) を使用すると、サブスクリプションなしでクリックデータを表示することもできます。 |