oscerd opened a new pull request, #2989:
URL: https://github.com/apache/camel-kamelets/pull/2989

   Fixes #1060. Companion to #2988 (`smpp-sink`, #1059) — same component, same 
connection surface, reviewable independently.
   
   Adds `smpp-source`, which receives SMS messages and delivery receipts from a 
SMSC using `camel-smpp`. The short message text becomes the body; the received 
PDU details stay in the `CamelSmpp*` headers the component already sets 
(`CamelSmppMessageType`, `CamelSmppStatus`, `CamelSmppDelivered`, 
`CamelSmppSubmitDate`, `CamelSmppOptionalParameters`, …), so nothing is 
remapped or hidden.
   
   ```yaml
   from:
     uri: "smpp:{{host}}:{{port}}"
     parameters:
       systemId: "{{systemId}}"
       password: "{{?password}}"
       systemType: "{{?systemType}}"
       addressRange: "{{?addressRange}}"
       encoding: "{{encoding}}"
       usingSSL: "{{usingSSL}}"
     steps:
     - to: "kamelet:sink"
   ```
   
   ## Properties
   
   Only `host` is required.
   
   | property | default | notes |
   |---|---|---|
   | `host` | — | **required** |
   | `port` | `2775` | |
   | `systemId` | `smppclient` | credentials descriptor |
   | `password` | — | `format: password` + credentials descriptor |
   | `systemType` | — | ESME type, max 13 chars |
   | `addressRange` | — | consumer-side; tells the SMSC which messages to route 
to this ESME (SMPP 3.4 §5.2.7) |
   | `encoding` | `ISO-8859-1` | |
   | `usingSSL` | `false` | |
   
   `addressRange` is the one option that differs from the sink — it is the 
consumer-labelled option in the component and has no meaning on the producer 
side. Conversely the sink's `sourceAddr` / `destAddr` / `splittingPolicy` are 
producer-only and are deliberately absent here.
   
   ## Verification
   
   `script/validator` reports no errors, `script/generator` adds the `nav.adoc` 
entry, `mvn clean install` passes from the repository root.
   
   Parameter binding checked against the real component with `camel run` rather 
than by eye — the consumer endpoint is constructed and startup fails only on 
the missing SMSC:
   
   ```
   Error starting CamelContext (smpp-src-probe) due to exception thrown:
     java.io.IOException: Connection refused
   Caused by: java.net.ConnectException: Connection refused
   ```
   
   A mistyped option would have failed earlier with `unknown option` instead.
   
   ## Same two caveats as the sink
   
   **No Citrus test** — `camel-smpp` needs a live SMSC and the project's 
Citrus/Testcontainers toolchain has no SMSC simulator. Marked `Preview`, no 
`kamelet.verified=true`. Happy to add the test in a follow-up if there is an 
SMSC image the project will depend on.
   
   **`usingSSL` defaults to `false`,** matching the component default and the 
plain `smpp` scheme. Worth a reviewer's eye given the catalog's 
secure-by-default direction (#2954, #2955, #2956), but SMPP-over-TLS is not 
widely supported by SMSCs, so defaulting it on would make the Kamelet unusable 
against most of them.
   
   This is a source Kamelet, so the usual operator note applies: it binds 
outward to the SMSC you configure, and the SMSC decides what to deliver to it 
via `addressRange`.
   
   ---
   _Claude Code on behalf of Andrea Cosentino_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to