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

   Fixes #1059.
   
   Adds `smpp-sink`, which sends the message body as an SMS short message 
through a SMSC (Short Message Service Center) using `camel-smpp`.
   
   ```yaml
   - to:
       uri: "smpp:{{host}}:{{port}}"
       parameters:
         systemId: "{{systemId}}"
         password: "{{?password}}"
         systemType: "{{?systemType}}"
         sourceAddr: "{{sourceAddr}}"
         destAddr: "{{destAddr}}"
         encoding: "{{encoding}}"
         splittingPolicy: "{{splittingPolicy}}"
         usingSSL: "{{usingSSL}}"
   ```
   
   ## Properties
   
   Only `host` is required. Everything else keeps the `camel-smpp` default, so 
a minimal binding is just the SMSC hostname.
   
   | property | default | notes |
   |---|---|---|
   | `host` | — | **required** |
   | `port` | `2775` | |
   | `systemId` | `smppclient` | credentials descriptor |
   | `password` | — | `format: password` + credentials descriptor |
   | `systemType` | — | ESME type, max 13 chars |
   | `sourceAddr` | `1616` | |
   | `destAddr` | `1717` | |
   | `encoding` | `ISO-8859-1` | |
   | `splittingPolicy` | `ALLOW` | enum: `ALLOW` / `TRUNCATE` / `REJECT` |
   | `usingSSL` | `false` | |
   
   ## Verification
   
   `script/validator` reports no errors, `script/generator` adds the `nav.adoc` 
entry, and `mvn clean install` passes from the repository root.
   
   Parameter binding was checked against the real component rather than by eye 
— running the Kamelet with `camel run` resolves the endpoint and fails only on 
the missing SMSC:
   
   ```
   Failed to start route: smpp-sink-1 (source: smpp-sink.kamelet.yaml:100)
     because: java.io.IOException: Connection refused
   Caused by: java.net.ConnectException: Connection refused
   ```
   
   That is the endpoint being constructed successfully with every parameter 
bound. A mistyped option would have failed earlier with 
`ResolveEndpointFailedException: unknown option` instead.
   
   Worth noting for operators: the SMPP producer binds to the SMSC at **route 
start**, so a wrong host or an unreachable SMSC fails the route rather than the 
individual exchange.
   
   ## Two things for reviewer judgement
   
   **No Citrus test.** `camel-smpp` needs a live SMSC and there is no SMSC 
simulator in the project's Citrus/Testcontainers toolchain. I would rather ship 
without a test than with one that does not exercise the protocol, so this is 
marked `Preview` and does not carry `kamelet.verified=true`. If there is an 
SMSC image the project is happy to depend on, I am glad to add the test in a 
follow-up.
   
   **`usingSSL` defaults to `false`,** matching the `camel-smpp` default and 
the plain `smpp` scheme. Given the catalog's recent secure-by-default direction 
(#2954, #2955, #2956), a reviewer may prefer TLS on by default — but 
SMPP-over-TLS support is far from universal among SMSCs, so defaulting it on 
would make the Kamelet unusable against most of them. Flagging the choice 
rather than making it silently.
   
   The icon is a plain SVG glyph authored for this Kamelet, consistent with how 
other protocol-based Kamelets (`ssh-sink`, `ftp-sink`) use generic glyphs 
rather than a vendor logo.
   
   ---
   _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