第153章 SMPP


SMPP コンポーネント

このコンポーネントは、SMPP プロトコルを使用して SMSC (Short Message Service Center)にアクセスし、SMMS を送受信します。JSMPP ライブラリーは、プロトコルの実装に使用されます。
現在、Camel コンポーネントは ESME (外部ショートカットメッセージングエンティティー)として動作し、SMSC 自体としては動作しません。
Camel 2.9 以降では、ReplaceSmQuerySmSubmitMulti、および CancelSm を実行することもできます。DataSm
Maven ユーザーは、このコンポーネントの以下の依存関係を pom.xml に追加する必要があります。
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-smpp</artifactId>
    <version>2.17.0.redhat-630xxx</version>
    <!-- use the same version as your Camel core version -->
</dependency>
Copy to Clipboard Toggle word wrap

SMS の制限

SMS は信頼性も安全ではありません。信頼できる安全な配信を必要とするユーザーは、選択したプロトコルをサポートするスマートフォンアプリと組み合わせて、XMPP または SIP コンポーネントの使用を検討してください。
  • 信頼性: SMPP 標準はエラーを示すさまざまなフィードバックメカニズムを提供していますが、再配信や配信の確認は、モバイルネットワークがこれらの応答を非表示またはシミュレートする一般的ではありません。たとえば、一部のネットワークは、宛先番号が無効であるか、切り替えされていない場合でも、すべてのメッセージの配信確認を自動的に送信します。一部のネットワークは、スパムだと判断すると、メッセージを警告なしでドロップします。ネットワークでのスパム検出ルールは非常に困難である可能性があり、1 つの送信者の 1 日あたり 100 個以上のメッセージがスパムとみなされる場合があります。
  • セキュリティー: ラジオ Tower から受信者ハンドセットまで最後のホップに基本的な暗号化があります。SMS メッセージは、ネットワークの他の部分で暗号化されず、認証されません。一部のオペレーターでは、スタッフのアウトレットや電話センターによる SMS メッセージ履歴の閲覧を許可するものもあります。メッセージ送信者のアイデンティティーは簡単に偽装できます。レギュレーターやモバイル電話業界でも、二要素認証スキームやセキュリティーが重要なその他の目的で SMS の使用には注意が必要です。
Camel コンポーネントは SMS ネットワークにメッセージを送信できる限り簡単ですが、これらの問題に対する簡単な解決策を提供することはできません。

データコーディング、アルファベット、および国際文字セット

データコーディングとアルファベットは、メッセージごとに指定できます。エンドポイントにはデフォルト値を指定できます。これらのオプションの関係と、複数の値が設定されている場合にコンポーネントが動作する方法を理解することが重要です。
データコーディングは、SMPP 有線形式の 8 ビットフィールドです。alphabet は、データコーディングフィールドのビット 0-3 に対応します。メッセージクラスが使用される一部のタイプのメッセージでは、(データコーディングフィールドのビット 5 を設定して)、データコーディングフィールドの 2 ビット未満がアルファベットとして解釈されず、ビット 2 と 3 のみがアルファベットに影響します。
さらに、現在のバージョンの JSMPP ライブラリーは、ビット 2 および 3 のみをサポートするようです。ビット 0 と 1 がメッセージクラスに使用されると仮定しています。このため、JSMPP の Alphabet クラスは ISO-8859-1 を示す値 3 (binary 0011)をサポートしません。
JSMPP はメッセージクラスパラメーターの表現を提供しますが、現在、Camel コンポーネントはデータコーディングフィールドに対応するビットを手動で設定する方法以外の方法を提供しません。
送信メッセージにデータコーディングフィールドを設定する場合、Camel コンポーネントは以下の値を考慮し、最初に見つけられるものを使用します。
  • ヘッダーに指定されたデータコーディング
  • ヘッダーに指定されたアルファベット
  • エンドポイント設定(URI パラメーター)に指定されたデータコーディング。
SMSC にデータコーディング値を送信する他に、Camel コンポーネントはメッセージボディーの分析を試み、それを Java String (Unicode)に変換し、それを対応するアルファベットのバイトアレイに変換します。バイトアレイで使用するアルファベットを決定すると、Camel SMPP コンポーネントはデータコーディング値(ヘッダーまたは設定)を考慮しません。ヘッダーまたはエンドポイントパラメーターから、指定されたアルファーのみを考慮します。
String の一部の文字を選択したアルファベットで表示できない場合は、疑問符 ?, 記号に置き換えることができます。API のユーザーは、メッセージボディーをコンポーネントに渡す前に ISO-8859-1 に変換できるかどうかを確認したい場合があり、そうでない場合は、alphabet ヘッダーを UCS-2 エンコーディングを要求するように設定します。アルファベットおよびデータコーディングオプションがまったく指定されていない場合、コンポーネントは必要なエンコーディングを検出し、データコーディングを設定することがあります。
アルファベットコードの一覧は、SMPP 仕様 v3.4 セクション 5.2.19 に記載されています。SMPP 仕様の主な制限の 1 つは、GSM 3.38 (7 ビット)文字セットを明示的に使用するアルファベットコードがないことです。アルファベットの値 0 を選択すると、SMSC のデフォルトのアルファベットが選択されます。これは通常、GSM 3.38 を意味しますが、保証されていません。SMPP ゲートウェイ Nexmo を使用すると、実際には control panel オプションを使用して、デフォルトを別の文字セットにマッピングできます。ユーザーは、SMSC オペレーターでチェックインして、デフォルトとして使用されている文字セットを正確に確認することが推奨されます。

メッセージの分割とスロットリング

メッセージボディーを String から byte 配列に変換すると、Camel コンポーネントは JSMPP に渡す前にメッセージを分割します(140 バイトの SMS サイズ制限内)。これは自動的に完了します。
GSM 3.38 alphabet を使用すると、コンポーネントは最大 160 文字を 140 バイトメッセージのボディーにパックします。8 ビット文字セット(例:western Europe の場合は ISO-8859-1)を使用すると、140 文字が 140 バイトメッセージのボディー内で許可されます。16 ビット UCS-2 エンコーディングを使用する場合は、140 バイトメッセージごとに 70 文字のみになります。
一部の SMSC プロバイダーはスロットリングルールを実装します。分割されたメッセージの各部分は、プロバイダーのスロットリングメカニズムによって個別にカウントされる可能性があります。Camel Throttler コンポーネントは、SMSC に渡す前に SMPP ルート内のメッセージをスロットリングするのに便利です。

URI 形式

smpp://[username@]hostname[:port][?options]
smpps://[username@]hostname[:port][?options]
Copy to Clipboard Toggle word wrap
ユーザー 名が指定されていない場合、Apache Camel はデフォルト値の smppclient を提供します。ポート 番号が指定されていない場合、Apache Camel はデフォルト値の 2775 を提供します。Camel 2.3: プロトコル名が smpps の場合、SSLSocket を使用してサーバーへの接続を開始します。
URI にクエリーオプションは ?option=value&option=value&.. の形式で追加できます。

URI オプション

Expand
名前 デフォルト値 説明
password password SMSC へのログインに使用するパスワードを指定します。
systemType cp このパラメーターは、SMSC (max. 13 文字)にバインドする ESME (外部ショートカットメッセージエンティティー)のタイプを分類するために使用されます。
dataCoding 0
Camel 2.11 は、SMPP 3.4 仕様のセクション 5.2.19 に従って、データのコーディングを定義します。( Camel 2.9 より前は、このオプションもサポートされます。) データエンコーディングの例は次のとおりです。
  • 0: SMSC デフォルトアルファベット
  • 3: ラテン 1 (ISO-8859-1)
  • 4: オクテットが未指定(8-bit バイナリー)
  • 8: UCS2 (ISO/IEC-10646)
  • 13: Extended Kanji JIS (X 0212-1990)
alphabet 0
Camel 2.5 は、SMPP 3.4 仕様、セクション 5.2.19 に従ってデータのエンコーディングを定義します。このオプションは Alphabet.java にマッピングされ、SMSC に送信される byte[] を作成するために使用されます。例: 0: SMSC Default Alphabet 4: 8 ビットアルファベット 8: UCS2 Alphabet
encoding ISO-8859-1 SubmitSm のみ、ReplaceSm および SubmitMulti は、短いメッセージユーザーデータのエンコーディングスキームを定義します。
enquireLinkTimer 5000 自信チェックの間隔をミリ秒単位で定義します。自信チェックは、ESME と SMSC の間の通信パスをテストするために使用されます。
transactionTimer 10000 トランザクションの後に許容される最大非アクティブ期間を定義します。その後、SMPP エンティティーはセッションがアクティブでなくなったと仮定する可能性があります。このタイマーは、SMPP エンティティーの通信(SMSC または ESME)のいずれかでアクティブになります。
initialReconnectDelay 5000 接続が失われた場合にコンシューマー/プロデューサーが SMSC への再接続を試みた後の最初の遅延をミリ秒単位で定義します。
reconnectDelay 5000 SMSC への接続が失われ、以前の成功していない場合に、再接続試行の間隔をミリ秒単位で定義します。
registeredDelivery 1
SubmitSm、replaceSm、SubmitMulti、および DataSm Is は、SMSC 配信受信および SME による確認応答の要求に使用されます。0: No SMSC delivery receipt requested の値を定義します。1: SMSC 配信受信が要求され、最終的な配信結果が成功または失敗します。2: SMSC 配信応答が要求され、最終的な配信結果が配信に失敗しました。
serviceType CMT
サービスタイプパラメーターを使用して、メッセージに関連付けられた SMS アプリケーションサービスを指定できます。以下の汎用 service_types が定義されます。
  • CMT: Cellular Messaging
  • CPT: Cellular Paging
  • VMN: Voice Mail Notification
  • VMA: Voice Mail Alerting
  • WAP: ワイヤレスアプリケーションプロトコル
  • USSD: 非構造化 Supplementary サービスデータ
sourceAddr 1616 このメッセージを発信した SME (Short Message Entity)のアドレスを定義します。
destAddr 1717 SubmitSm、SubmitMulti、CancelSm、および DataSm のみ が宛先 SME アドレスを定義します。モバイル終端メッセージの場合、これは受信者 MS のディレクトリー番号です。
sourceAddrTon 0
SME 送信元アドレスパラメーターで使用される番号(TON)のタイプを定義します。以下の TON 値を定義します。
  • 0: unknown
  • 1: 国際
  • 2: 国語
  • 3: ネットワーク固有
  • 4: サブスクライバー番号
  • 5: 英数字
  • 6: 省略形
destAddrTon 0
SubmitSm、SubmitMulti、CancelSm、および DataSm にのみ、SME 宛先アドレスパラメーターで使用される番号のタイプ(TON)を定義します。以下の TON 値を定義します。
  • 0: unknown
  • 1: 国際
  • 2: 国語
  • 3: ネットワーク固有
  • 4: サブスクライバー番号
  • 5: 英数字
  • 6: 省略形
sourceAddrNpi 0
SME 送信元アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
  • 0: unknown
  • 1: ISDN (E163/E164)
  • 2: データ(X.121)
  • 3: テレックス(F.69)
  • 6: land Mobile (E.212)
  • 8: National
  • 9: プライベート
  • 10: ERMES
  • 13: インターネット(IP)
  • 18: WAP クライアント ID (WAP Forum で定義)
destAddrNpi 0
SubmitSm、SubmitMulti、CancelSm、および DataSm にのみ、SME 宛先アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
  • 0: unknown
  • 1: ISDN (E163/E164)
  • 2: データ(X.121)
  • 3: テレックス(F.69)
  • 6: land Mobile (E.212)
  • 8: National
  • 9: プライベート
  • 10: ERMES
  • 13: インターネット(IP)
  • 18: WAP クライアント ID (WAP Forum で定義)
priorityFlag 1
SubmitSm および SubmitMulti にのみ、送信元の SME が短いメッセージに優先度レベルを割り当てることができます。4 つの優先度レベルがサポートされます。
  • 0: レベル 0 (最低)の優先度
  • 1: レベル 1 の優先度
  • 2: レベル 2 の優先度
  • 3: レベル 3 (最高)の優先度
replaceIfPresentFlag 0
SubmitSm および SubmitMulti Used が SMSC を要求する場合にのみ、以前に送信されたメッセージを置き換えます。これは、配信が保留されています。SMSC は、ソースアドレス、宛先アドレス、およびサービスタイプが新しいメッセージの同じフィールドと一致する場合に、既存のメッセージを置き換えます。フラグ値が定義されている場合は、以下の置換を行います。
  • 0: 置き換えません。
  • 1: replace
dataCoding 0
Camel 2.5 onwarts は、SMPP 3.4 仕様セクション 5.2.19 に従ってデータのエンコーディングを定義します。データエンコーディングの例: 0: SMSC Default Alphabet 4: 8 ビットアルファベット 8: UCS2 Alphabet
typeOfNumber 0
SME で使用される番号(TON)のタイプを定義します。以下の TON 値を定義します。
  • 0: unknown
  • 1: 国際
  • 2: 国語
  • 3: ネットワーク固有
  • 4: サブスクライバー番号
  • 5: 英数字
  • 6: 省略形
numberingPlanIndicator 0
SME で使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
  • 0: unknown
  • 1: ISDN (E163/E164)
  • 2: データ(X.121)
  • 3: テレックス(F.69)
  • 6: land Mobile (E.212)
  • 8: National
  • 9: プライベート
  • 10: ERMES
  • 13: インターネット(IP)
  • 18: WAP クライアント ID (WAP Forum で定義)
lazySessionCreation false
Camel 2.8 以降 の Sessions は、Camel プロデューサーの開始時に SMSC が利用できない場合に例外を回避するために遅延して作成できます。Camel 2.11 以降 の Camel は、最初のエクスチェンジのメッセージヘッダー 'CamelSmppSystemId' および 'CamelSmppPassword' で を確認します。存在する場合は、Camel はこれらのデータを使用して SMSC に接続します。
httpProxyHost null Camel 2.9.1: HTTP プロキシー経由で SMPP をトンネルする必要がある場合は、この属性を HTTP プロキシーのホスト名または IP アドレスに設定します。
httpProxyPort 3128 Camel 2.9.1: HTTP プロキシー経由で SMPP をトンネルする必要がある場合は、この属性を HTTP プロキシーのポートに設定します。
httpProxyUsername null Camel 2.9.1: HTTP プロキシーに Basic 認証が必要な場合は、この属性を HTTP プロキシーに必要なユーザー名に設定します。
httpProxyPassword null Camel 2.9.1: HTTP プロキシーに Basic 認証が必要な場合は、この属性を HTTP プロキシーに必要なパスワードに設定します。
sessionStateListener null Camel 2.9.3: Registryorg.jsmpp.session.SessionStateListener を参照して、セッション状態が変更されたときにコールバックを受け取ることができます。
addressRange "" Camel 2.11: SMPP 3.4 仕様のセクション 5.2.7 で定義されているように SmppConsumer のアドレス範囲を指定できます。SmppConsumer は、この範囲内のアドレス(MSISDN または IP アドレス)をターゲットにする SMSC からのみメッセージを受信します。
splittingPolicy ALLOW
Camel 2.14.1 および 2.15.0: 以下のように、長いメッセージを処理するポリシーを指定できます。
  • ALLOW : (デフォルト)長いメッセージはメッセージごとに 140 バイトに分割されます。
  • TRUNCATE : 長いメッセージは分割され、最初のフラグメントのみが SMSC に送信されます。一部の受け入れ者は後続のフラグメントを削除するため、配信されないメッセージの一部を送信する SMPP 接続の負荷が軽減されます。
  • REJECT : メッセージを分割する必要がある場合は、SMPP NegativeResponseException で拒否され、メッセージを示す理由コードは長すぎます。
proxyHeaders null Camel 2.17: 接続の確立中にこれらのヘッダーがプロキシーサーバーに渡されます。
これらのオプションはいくつでも使用できます。
smpp://smppclient@localhost:2775?password=password&enquireLinkTimer=3000&transactionTimer=5000&systemType=consumer
Copy to Clipboard Toggle word wrap

プロデューサーメッセージヘッダー

以下のメッセージヘッダーを使用して、SMPP プロデューサーの動作に影響を与えることができます。
Expand
ヘッダー タイプ 説明
CamelSmppDestAddr List/String SubmitSm、SubmitMulti、CancelSm、および DataSm のみ が宛先 SME アドレスを定義します。モバイル終端メッセージの場合、これは受信者 MS のディレクトリー番号です。SubmitMulti の場合は List<String> で あり、それ以外の場合は String である必要があります。
CamelSmppDestAddrTon Byte
SubmitSm、SubmitMulti、CancelSm、および DataSm にのみ、SME 宛先アドレスパラメーターで使用される番号のタイプ(TON)を定義します。以下の TON 値を定義します。
  • 0: unknown
  • 1: 国際
  • 2: 国語
  • 3: ネットワーク固有
  • 4: サブスクライバー番号
  • 5: 英数字
  • 6: 省略形
CamelSmppDestAddrNpi Byte
SubmitSm、SubmitMulti、CancelSm、および DataSm にのみ、SME 宛先アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
  • 0: unknown
  • 1: ISDN (E163/E164)
  • 2: データ(X.121)
  • 3: テレックス(F.69)
  • 6: land Mobile (E.212)
  • 8: National
  • 9: プライベート
  • 10: ERMES
  • 13: インターネット(IP)
  • 18: WAP クライアント ID (WAP Forum で定義)
CamelSmppSourceAddr 文字列 このメッセージを発信した SME (Short Message Entity)のアドレスを定義します。
CamelSmppSourceAddrTon Byte
SME 送信元アドレスパラメーターで使用される番号(TON)のタイプを定義します。以下の TON 値を定義します。
  • 0: unknown
  • 1: 国際
  • 2: 国語
  • 3: ネットワーク固有
  • 4: サブスクライバー番号
  • 5: 英数字
  • 6: 省略形
CamelSmppSourceAddrNpi Byte
SME 送信元アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
  • 0: unknown
  • 1: ISDN (E163/E164)
  • 2: データ(X.121)
  • 3: テレックス(F.69)
  • 6: land Mobile (E.212)
  • 8: National
  • 9: プライベート
  • 10: ERMES
  • 13: インターネット(IP)
  • 18: WAP クライアント ID (WAP Forum で定義)
CamelSmppServiceType 文字列
サービスタイプパラメーターを使用して、メッセージに関連付けられた SMS アプリケーションサービスを指定できます。以下の汎用 service_types が定義されます。
  • CMT: Cellular Messaging
  • CPT: Cellular Paging
  • VMN: Voice Mail Notification
  • VMA: Voice Mail Alerting
  • WAP: ワイヤレスアプリケーションプロトコル
  • USSD: 非構造化 Supplementary サービスデータ
CamelSmppRegisteredDelivery Byte
SubmitSm、replaceSm、SubmitMulti、および DataSm Is は、SMSC 配信受信および SME による確認応答の要求に使用されます。以下の値が定義されます。
  • 0: no SMSC delivery receipt requested.
  • 1: SMSC 配信受信が要求され、最終的な配信結果が成功または失敗します。
  • 2: SMSC 配信応答が要求され、最終的な配信結果が配信に失敗しました。
CamelSmppPriorityFlag Byte
SubmitSm および SubmitMulti にのみ、送信元の SME が短いメッセージに優先度レベルを割り当てることができます。4 つの優先度レベルがサポートされます。
  • 0: レベル 0 (最低)の優先度
  • 1: レベル 1 の優先度
  • 2: レベル 2 の優先度
  • 3: レベル 3 (最高)の優先度
CamelSmppValidityPeriod string/{{Date}} SubmitSm、SubmitMulti、および ReplaceSm のみ。validity period パラメーターは SMSC の有効期限を示します。その後、宛先に配信されない場合はメッセージを破棄する必要があります。日付 として提供されている場合は、絶対時間として解釈されます。Camel 2.9.1 以降: smpp 仕様 v3.4 の章 7.1.1 で指定されている 文字列 として指定する場合は、絶対時間形式または相対時間形式で定義できます。
CamelSmppReplaceIfPresentFlag Byte
SubmitSm および SubmitMulti にのみ、replaces フラグパラメーターを使用して、以前に送信されたメッセージを置き換えるように SMSC を要求します。これは、配信が保留されています。SMSC は、ソースアドレス、宛先アドレス、およびサービスタイプが新しいメッセージの同じフィールドと一致する場合に、既存のメッセージを置き換えます。以下の値が定義されます。
  • 0: 置き換えません。
  • 1: replace
CamelSmppAlphabet / CamelSmppDataCoding Byte Camel 2.5For SubmitSm, SubmitMulti and ReplaceSm ( Camel 2.9 の場合は、CamelSmppAlphabet の代わりに CamelSmppDataCoding を使用します。) SMPP 3.4 仕様、セクション 5.2.19 に準拠したデータのコーディング。上記の URI オプション アルファベット 設定を使用してください。
CamelSmppOptionalParameters Map<String, String>
非推奨および は Camel 2.13.0/3.0.0 Camel 2.10.5 および 2.11.1 以降で削除され、SubmitSm、SubmitMulti、および DataSm に対してのみ削除されます。オプションのパラメーターは SMSC によって返信されます。
CamelSmppOptionalParameter Map<Short, Object>
Camel 2.10.7 および 2.11.2 以降、SubmitSm、SubmitMulti、および DataSm に対してのみ、SMSC に送信されるオプションのパラメーターです。値は以下の方法で変換されます。 string -> org.jsmpp.bean.OptionalParameter.COctetStringbyte[] -> org.jsmpp.bean.OptionalParameter.OctetStringByte -> org.jsmpp.bean.OptionalParameter.ByteInteger -> org.jsmpp.bean .OptionalParameter.IntShort -> org.jsmpp.bean.OptionalParameter.Shortnull -> org.jsmpp.bean.OptionalParameter.Null
CamelSmppEncoding 文字列
Camel 2.14.1 および Camel 2.15.0: および SubmitSmSubmitMulti および DataSm のみ。メッセージボディーのバイトのエンコーディング(文字セット名)を指定します。メッセージボディーが文字列である場合、Java 文字列は常に Unicode であるため、これは関係ありません。ボディーがバイト配列である場合、このヘッダーを使用して ISO-8859-1 またはその他の値であることを示します。デフォルト値は、エンドポイント設定パラメーターのエンコーディングによって指定されます。
CamelSmppSplittingPolicy 文字列
Camel 2.14.1 および Camel 2.15.0: および SubmitSmSubmitMulti および DataSm のみ。このエクスチェンジのメッセージ分割のポリシーを指定します。使用できる値は、エンドポイント設定パラメーター splittingPolicy で説明されています。
以下のメッセージヘッダーは SMPP プロデューサーによって使用され、メッセージヘッダーの SMSC からの応答を設定します。
Expand
ヘッダー タイプ 説明
CamelSmppId List<String>/{{String}} 後で使用するために送信された短いメッセージを識別する ID。Camel 2.9.0: ReplaceSm、QuerySm、CancelSm、および DataSm のヘッダー vaule は 文字列 です。SubmitSm または SubmitMultiSm の場合、このヘッダー vaule は List<String> です
CamelSmppSentMessageCount 整数 Camel 2.9 以降、SubmitSm および SubmitMultiSm に対してのみ、送信されたメッセージの合計数。
CamelSmppError Map<String, List<Map<String, Object>>> Camel 2.9 以降、SubmitMultiSm でのみ 短いメッセージを送信し、Map<String, List<Map<String, Object>>> (messageID : (destAddr : address, error : errorCode))形式で送信して発生したエラーです。
CamelSmppOptionalParameters Map<String, String>
非推奨および は Camel 2.13.0/3.0.0 のCamel 2.11.1 からのみ削除さ れます。その後、DataSm に対してのみ削除されます。任意のパラメーターは、メッセージを送信して SMSC から返されます。
CamelSmppOptionalParameter Map<Short, Object>
Camel 2.10.7 以降では、2.11.2 以降の DataSm のみ。メッセージを送信して SMSC から返されるオプションのパラメーターです。キーは、オプションのパラメーターの Short コードです。値は以下の方法で変換されます。 org.jsmpp.bean.OptionalParameter.COctetString -> Stringorg.jsmpp.bean.OptionalParameter.OctetString -> byte[]org.jsmpp.bean.OptionalParameter.Byte -> Byteorg.jsmpp.bean.OptionalParameter.Int -&gt ;integerorg.jsmpp.bean.OptionalParameter.Short -> Shortorg.jsmpp.bean.OptionalParameter.Null -> null

コンシューマーメッセージヘッダー

以下のメッセージヘッダーは SMPP コンシューマーによって使用され、メッセージヘッダーの SMSC からのリクエストデータを設定します。
Expand
ヘッダー タイプ 説明
CamelSmppSequenceNumber 整数 AlertNotification、DeliverSm、および DataSm A シーケンス番号にのみ、応答 PDU をリクエスト PDU と関連付けることができます。関連する SMPP 応答 PDU は、このフィールドを保持する必要があります。
CamelSmppCommandId 整数 AlertNotification、DeliverSm、および DataSm に対してのみ、コマンド id フィールドは、特定の SMPP PDU を識別します。定義された値の完全なリストは、smpp 仕様 v3.4 の 5.1.2.1 の章を参照してください。
CamelSmppSourceAddr 文字列 AlertNotification、DeliverSm、および DataSm のみ が、このメッセージを発信した SME (Short Message Entity)のアドレスを定義します。
CamelSmppSourceAddrNpi Byte
AlertNotification および DataSm に対してのみ、SME 送信元アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
  • 0: unknown
  • 1: ISDN (E163/E164)
  • 2: データ(X.121)
  • 3: テレックス(F.69)
  • 6: land Mobile (E.212)
  • 8: National
  • 9: プライベート
  • 10: ERMES
  • 13: インターネット(IP)
  • 18: WAP クライアント ID (WAP Forum で定義)
CamelSmppSourceAddrTon Byte
AlertNotification および DataSm に対してのみ、SME 送信元アドレスパラメーターで使用される番号(TON)のタイプを定義します。以下の TON 値を定義します。
  • 0: unknown
  • 1: 国際
  • 2: 国語
  • 3: ネットワーク固有
  • 4: サブスクライバー番号
  • 5: 英数字
  • 6: 省略形
CamelSmppEsmeAddr 文字列 AlertNotification のみ が宛先 ESME アドレスを定義します。モバイル終端メッセージの場合、これは受信者 MS のディレクトリー番号です。
CamelSmppEsmeAddrNpi Byte
アラート通知のみ: ESME 送信元アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
  • 0: unknown
  • 1: ISDN (E163/E164)
  • 2: データ(X.121)
  • 3: テレックス(F.69)
  • 6: land Mobile (E.212)
  • 8: National
  • 9: プライベート
  • 10: ERMES
  • 13: インターネット(IP)
  • 18: WAP クライアント ID (WAP Forum で定義)
CamelSmppEsmeAddrTon Byte
アラート通知のみ: ESME 送信元アドレスパラメーターで使用される番号(TON)のタイプを定義します。以下の TON 値を定義します。
  • 0: unknown
  • 1: 国際
  • 2: 国語
  • 3: ネットワーク固有
  • 4: サブスクライバー番号
  • 5: 英数字
  • 6: 省略形
CamelSmppId 文字列 smsc DeliveryReceipt および DataSm のみ。最初に送信されたときに SMSC によってメッセージに割り当てられるメッセージ ID。
CamelSmppDelivered 整数 配信される短いメッセージの smsc DeliveryReceipt Number のみ。これは、元のメッセージがディストリビューションリストに送信された場所にのみ関連します。この値は、必要に応じて先頭にゼロでパディングされます。
CamelSmppDoneDate 日付 smsc DeliveryReceipt The time and date which the short message reached it's final state.YYMMDDhhmm の形式は以下のとおりです。
CamelSmppStatus DeliveryReceiptState
smsc DeliveryReceipt: メッセージの最終ステータス。DELIVRD: Message is delivered to destination EXPIRED: Message validity period has expired.DELETED: メッセージが削除されました。UNDELIV: Message is undeliverable ACCEPTD: Message is in in accepted state (つまり.e. is been manually read on behalf of the subscriber by customer service) UNKNOWN: Message is in invalid state REJECTD: Message is in in a rejected state
CamelSmppCommandStatus 整数 DataSm: メッセージのコマンドステータスのみ
CamelSmppError 文字列 smsc DeliveryReceipt where appropriate this may hold a Network specific error code or an SMSC error code for the message.これらのエラーは Network または SMSC 固有で、ここには含まれません。
CamelSmppSubmitDate 日付 短いメッセージが送信された日時 のみ、smsc DeliveryReceipt。置き換えられたメッセージの場合、これは元のメッセージが置き換えられた日付になります。YYMMDDhhmm の形式は以下のとおりです。
CamelSmppSubmitted 整数 最初 に送信された短いメッセージの smsc DeliveryReceipt Number のみ。これは、元のメッセージがディストリビューションリストに送信された場合にのみ関連します。この値は、必要に応じて先頭のゼロでパディングされます。
CamelSmppDestAddr 文字列 DeliverSm および DataSm のみ: 宛先 SME アドレスを定義します。モバイル終端メッセージの場合、これは受信者 MS のディレクトリー番号です。
CamelSmppScheduleDeliveryTime 文字列 DeliverSm のみ: このパラメーターは、メッセージ配信が最初に試行されるスケジュール時間を指定します。これは、このメッセージの配信が SMSC によって試行される現在の SMSC 時間からの絶対日時または相対時間のいずれかを定義します。絶対時間形式または相対時間形式で指定できます。時間形式のエンコーディングは、smpp 仕様 v3.4 の セクション 7.1.1 で指定します。
CamelSmppValidityPeriod 文字列 DeliverSm のみ。life period パラメーターは SMSC の有効期限を示します。その後、宛先に配信されない場合はメッセージを破棄する必要があります。絶対時間形式または相対時間形式で定義できます。絶対および相対時間形式のエンコーディングは、smpp 仕様 v3.4 の セクション 7.1.1 で指定します。
CamelSmppServiceType 文字列
DeliverSm および DataSm のみ を対象としています。サービスタイプパラメーターを使用して、メッセージに関連付けられた SMS アプリケーションサービスを指定できます。以下の汎用 service_types が定義されます。
  • CMT: Cellular Messaging
  • CPT: Cellular Paging
  • VMN: Voice Mail Notification
  • VMA: Voice Mail Alerting
  • WAP: ワイヤレスアプリケーションプロトコル
  • USSD: 非構造化 Supplementary サービスデータ
CamelSmppRegisteredDelivery Byte
DataSm は、SMSC 配信受信および SME からの確認応答を要求するためにのみ 使用されます。以下の値が定義されます。
  • 0: no SMSC delivery receipt requested.
  • 1: SMSC 配信受信が要求され、最終的な配信結果が成功または失敗します。
  • 2: SMSC 配信応答が要求され、最終的な配信結果が配信に失敗しました。
CamelSmppDestAddrNpi Byte
DataSm のみ が SME 宛先アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
  • 0: unknown
  • 1: ISDN (E163/E164)
  • 2: データ(X.121)
  • 3: テレックス(F.69)
  • 6: land Mobile (E.212)
  • 8: National
  • 9: プライベート
  • 10: ERMES
  • 13: インターネット(IP)
  • 18: WAP クライアント ID (WAP Forum で定義)
CamelSmppDestAddrTon Byte
DataSm のみ が SME 宛先アドレスパラメーターで使用される番号のタイプ(TON)を定義します。以下の TON 値を定義します。
  • 0: unknown
  • 1: 国際
  • 2: 国語
  • 3: ネットワーク固有
  • 4: サブスクライバー番号
  • 5: 英数字
  • 6: 省略形
CamelSmppMessageType 文字列
Camel 2.6 以降: 受信メッセージのタイプを特定します: AlertNotification: an SMSC アラート通知 DataSm: an SMSC data short message DeliveryReceipt: an SMSC delivery receipt DeliverSm: an SMSC deliver short message
CamelSmppOptionalParameters Map<String, Object>
非推奨および は Camel 2.13.0/3.0.0Camel 2.10.5 以降では削除され、DeliverSm に対してのみ削除されます。オプションのパラメーターは SMSC によって返信されます。
CamelSmppOptionalParameter Map<Short, Object>
Camel 2.10.7、2.11.2 以降、および DeliverSm 専用の パラメーター。オプションのパラメーターは SMSC によって返信されます。キーは、オプションのパラメーターの Short コードです。値は以下の方法で変換されます。 org.jsmpp.bean.OptionalParameter.COctetString -> Stringorg.jsmpp.bean.OptionalParameter.OctetString -> byte[]org.jsmpp.bean.OptionalParameter.Byte -> Byteorg.jsmpp.bean.OptionalParameter.Int -&gt ;integerorg.jsmpp.bean.OptionalParameter.Short -> Shortorg.jsmpp.bean.OptionalParameter.Null -> null
JSMPP ライブラリー
基礎となるライブラリーの詳細は、JSMPP ライブラリーのドキュメントを参照してください。

例外処理

このコンポーネントは、一般的な Camel 例外処理機能をサポートします。
SubmitSm (デフォルトアクション)でメッセージの送信にエラーが発生した場合、org.apache.camel.component.smpp.SmppException はネストされた例外 org.jsmpp.extra.NegativeResponseException で出力されます。NegativeResponseException.getCommandStatus() を呼び出して、正確な SMPP 負の応答コードを取得します。値は、SMPP 仕様 3.4 のセクション 5.1.3 で説明されています。
Camel 2.8 onwarts: SMPP コンシューマーが DeliverSm または DataSm 短いメッセージを受信し、これらのメッセージの処理に失敗した場合は、失敗を処理する代わりに ProcessRequestException を出力することもできます。この場合、この例外は基礎となる JSMPP ライブラリー に転送され、含まれるエラーコードを SMSC に戻します。この機能は、たとえば、後で短いメッセージを再送信するように SMSC に指示するのに役立ちます。これは、以下のコード行を使用して実行できます。
from("smpp://smppclient@localhost:2775?password=password&enquireLinkTimer=3000&transactionTimer=5000&systemType=consumer")
   .doTry()
     .to("bean:dao?method=updateSmsState")
   .doCatch(Exception.class)
     .throwException(new ProcessRequestException("update of sms state failed", 100))
   .end();
Copy to Clipboard Toggle word wrap
エラーコードとその意味の完全なリストについては、SMPP 仕様 を参照してください。

サンプル

Java DSL を使用して SMS を送信するルート:
from("direct:start")
  .to("smpp://smppclient@localhost:2775?password=password&enquireLinkTimer=3000&transactionTimer=5000&systemType=producer");
Copy to Clipboard Toggle word wrap
Spring XML DSL を使用して SMS を送信するルート:
<route>
  <from uri="direct:start"/>
  <to uri="smpp://smppclient@localhost:2775?password=password&nquireLinkTimer=3000&ransactionTimer=5000&ystemType=producer"/>
</route>
Copy to Clipboard Toggle word wrap
Java DSL を使用して SMS を受信するルート:
from("smpp://smppclient@localhost:2775?password=password&enquireLinkTimer=3000&transactionTimer=5000&systemType=consumer")
  .to("bean:foo");
Copy to Clipboard Toggle word wrap
Spring XML DSL を使用して SMS を受信するルート:
  <route>
     <from uri="smpp://smppclient@localhost:2775?password=password&nquireLinkTimer=3000&ransactionTimer=5000&ystemType=consumer"/>
     <to uri="bean:foo"/>
  </route>
Copy to Clipboard Toggle word wrap
SMSC シミュレーター
テストに SMSC シミュレーターが必要な場合は、Logica が提供するシミュレーターを使用できます。

デバッグロギング

このコンポーネントにはログレベル DEBUG があり、問題のデバッグに役立ちます。log4j を使用する場合は、以下の行を設定に追加できます。
log4j.logger.org.apache.camel.component.smpp=DEBUG
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat