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]