第153章 SMPP
SMPP コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このコンポーネントは、SMPP プロトコルを使用して SMSC (Short Message Service Center)にアクセスし、SMMS を送受信します。JSMPP ライブラリーは、プロトコルの実装に使用されます。
現在、Camel コンポーネントは ESME (外部ショートカットメッセージングエンティティー)として動作し、SMSC 自体としては動作しません。
Camel 2.9 以降では、
ReplaceSm、QuerySm、SubmitMulti、および 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>
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]
ユーザー 名が指定されていない場合、Apache Camel はデフォルト値の
smppclient を提供します。ポート 番号が指定されていない場合、Apache Camel はデフォルト値の 2775 を提供します。Camel 2.3: プロトコル名が smpps の場合、SSLSocket を使用してサーバーへの接続を開始します。
URI にクエリーオプションは
?option=value&option=value&.. の形式で追加できます。
URI オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | デフォルト値 | 説明 |
|---|---|---|
password
|
password
|
SMSC へのログインに使用するパスワードを指定します。 |
systemType
|
cp
|
このパラメーターは、SMSC (max. 13 文字)にバインドする ESME (外部ショートカットメッセージエンティティー)のタイプを分類するために使用されます。 |
dataCoding
|
0
|
Camel 2.11 は、SMPP 3.4 仕様のセクション 5.2.19 に従って、データのコーディングを定義します。( Camel 2.9 より前は、このオプションもサポートされます。) データエンコーディングの例は次のとおりです。
|
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 が定義されます。
|
sourceAddr
|
1616
|
このメッセージを発信した SME (Short Message Entity)のアドレスを定義します。 |
destAddr
|
1717
|
SubmitSm、SubmitMulti、CancelSm、および DataSm のみ が宛先 SME アドレスを定義します。モバイル終端メッセージの場合、これは受信者 MS のディレクトリー番号です。 |
sourceAddrTon
|
0
|
SME 送信元アドレスパラメーターで使用される番号(TON)のタイプを定義します。以下の TON 値を定義します。
|
destAddrTon
|
0
|
SubmitSm、SubmitMulti、CancelSm、および DataSm にのみ、SME 宛先アドレスパラメーターで使用される番号のタイプ(TON)を定義します。以下の TON 値を定義します。
|
sourceAddrNpi
|
0
|
SME 送信元アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
|
destAddrNpi
|
0
|
SubmitSm、SubmitMulti、CancelSm、および DataSm にのみ、SME 宛先アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
|
priorityFlag
|
1
|
SubmitSm および SubmitMulti にのみ、送信元の SME が短いメッセージに優先度レベルを割り当てることができます。4 つの優先度レベルがサポートされます。
|
replaceIfPresentFlag
|
0
|
SubmitSm および SubmitMulti Used が SMSC を要求する場合にのみ、以前に送信されたメッセージを置き換えます。これは、配信が保留されています。SMSC は、ソースアドレス、宛先アドレス、およびサービスタイプが新しいメッセージの同じフィールドと一致する場合に、既存のメッセージを置き換えます。フラグ値が定義されている場合は、以下の置換を行います。
|
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 値を定義します。
|
numberingPlanIndicator
|
0
|
SME で使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
|
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: Registry の org.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: 以下のように、長いメッセージを処理するポリシーを指定できます。
|
proxyHeaders
|
null
|
Camel 2.17: 接続の確立中にこれらのヘッダーがプロキシーサーバーに渡されます。 |
これらのオプションはいくつでも使用できます。
smpp://smppclient@localhost:2775?password=password&enquireLinkTimer=3000&transactionTimer=5000&systemType=consumer
プロデューサーメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下のメッセージヘッダーを使用して、SMPP プロデューサーの動作に影響を与えることができます。
| ヘッダー | タイプ | 説明 |
|---|---|---|
CamelSmppDestAddr
|
List/String
|
SubmitSm、SubmitMulti、CancelSm、および DataSm のみ が宛先 SME アドレスを定義します。モバイル終端メッセージの場合、これは受信者 MS のディレクトリー番号です。SubmitMulti の場合は List<String> で あり、それ以外の場合は String である必要があります。
|
CamelSmppDestAddrTon
|
Byte
|
SubmitSm、SubmitMulti、CancelSm、および DataSm にのみ、SME 宛先アドレスパラメーターで使用される番号のタイプ(TON)を定義します。以下の TON 値を定義します。
|
CamelSmppDestAddrNpi
|
Byte
|
SubmitSm、SubmitMulti、CancelSm、および DataSm にのみ、SME 宛先アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
|
CamelSmppSourceAddr
|
文字列
|
このメッセージを発信した SME (Short Message Entity)のアドレスを定義します。 |
CamelSmppSourceAddrTon
|
Byte
|
SME 送信元アドレスパラメーターで使用される番号(TON)のタイプを定義します。以下の TON 値を定義します。
|
CamelSmppSourceAddrNpi
|
Byte
|
SME 送信元アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
|
CamelSmppServiceType
|
文字列
|
サービスタイプパラメーターを使用して、メッセージに関連付けられた SMS アプリケーションサービスを指定できます。以下の汎用 service_types が定義されます。
|
CamelSmppRegisteredDelivery
|
Byte
|
SubmitSm、replaceSm、SubmitMulti、および DataSm Is は、SMSC 配信受信および SME による確認応答の要求に使用されます。以下の値が定義されます。
|
CamelSmppPriorityFlag
|
Byte
|
SubmitSm および SubmitMulti にのみ、送信元の SME が短いメッセージに優先度レベルを割り当てることができます。4 つの優先度レベルがサポートされます。
|
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 は、ソースアドレス、宛先アドレス、およびサービスタイプが新しいメッセージの同じフィールドと一致する場合に、既存のメッセージを置き換えます。以下の値が定義されます。
|
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: および
SubmitSm、SubmitMulti および DataSm のみ。メッセージボディーのバイトのエンコーディング(文字セット名)を指定します。メッセージボディーが文字列である場合、Java 文字列は常に Unicode であるため、これは関係ありません。ボディーがバイト配列である場合、このヘッダーを使用して ISO-8859-1 またはその他の値であることを示します。デフォルト値は、エンドポイント設定パラメーターのエンコーディングによって指定されます。
|
CamelSmppSplittingPolicy
|
文字列
|
Camel 2.14.1 および Camel 2.15.0: および
SubmitSm、SubmitMulti および DataSm のみ。このエクスチェンジのメッセージ分割のポリシーを指定します。使用できる値は、エンドポイント設定パラメーター splittingPolicy で説明されています。
|
以下のメッセージヘッダーは SMPP プロデューサーによって使用され、メッセージヘッダーの SMSC からの応答を設定します。
| ヘッダー | タイプ | 説明 |
|---|---|---|
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 -> null
|
コンシューマーメッセージヘッダー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下のメッセージヘッダーは SMPP コンシューマーによって使用され、メッセージヘッダーの SMSC からのリクエストデータを設定します。
| ヘッダー | タイプ | 説明 |
|---|---|---|
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 値を定義します。
|
CamelSmppSourceAddrTon
|
Byte
|
AlertNotification および DataSm に対してのみ、SME 送信元アドレスパラメーターで使用される番号(TON)のタイプを定義します。以下の TON 値を定義します。
|
CamelSmppEsmeAddr
|
文字列
|
AlertNotification のみ が宛先 ESME アドレスを定義します。モバイル終端メッセージの場合、これは受信者 MS のディレクトリー番号です。 |
CamelSmppEsmeAddrNpi
|
Byte
|
アラート通知のみ: ESME 送信元アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
|
CamelSmppEsmeAddrTon
|
Byte
|
アラート通知のみ: ESME 送信元アドレスパラメーターで使用される番号(TON)のタイプを定義します。以下の TON 値を定義します。
|
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 が定義されます。
|
CamelSmppRegisteredDelivery
|
Byte
|
DataSm は、SMSC 配信受信および SME からの確認応答を要求するためにのみ 使用されます。以下の値が定義されます。
|
CamelSmppDestAddrNpi
|
Byte
|
DataSm のみ が SME 宛先アドレスパラメーターで使用される数値計画インジケーター(NPI)を定義します。以下の NPI 値を定義します。
|
CamelSmppDestAddrTon
|
Byte
|
DataSm のみ が SME 宛先アドレスパラメーターで使用される番号のタイプ(TON)を定義します。以下の TON 値を定義します。
|
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 -> 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();
エラーコードとその意味の完全なリストについては、SMPP 仕様 を参照してください。
サンプル リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Java DSL を使用して SMS を送信するルート:
from("direct:start")
.to("smpp://smppclient@localhost:2775?password=password&enquireLinkTimer=3000&transactionTimer=5000&systemType=producer");
Spring XML DSL を使用して SMS を送信するルート:
<route>
<from uri="direct:start"/>
<to uri="smpp://smppclient@localhost:2775?password=password&nquireLinkTimer=3000&ransactionTimer=5000&ystemType=producer"/>
</route>
Java DSL を使用して SMS を受信するルート:
from("smpp://smppclient@localhost:2775?password=password&enquireLinkTimer=3000&transactionTimer=5000&systemType=consumer")
.to("bean:foo");
Spring XML DSL を使用して SMS を受信するルート:
<route>
<from uri="smpp://smppclient@localhost:2775?password=password&nquireLinkTimer=3000&ransactionTimer=5000&ystemType=consumer"/>
<to uri="bean:foo"/>
</route>
SMSC シミュレーター
テストに SMSC シミュレーターが必要な場合は、Logica が提供するシミュレーターを使用できます。
デバッグロギング リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このコンポーネントにはログレベル DEBUG があり、問題のデバッグに役立ちます。log4j を使用する場合は、以下の行を設定に追加できます。
log4j.logger.org.apache.camel.component.smpp=DEBUG