Appearance
Sms receiver
Connects to an SMSC or SMS gateway over SMPP and emits every incoming SMS (and delivery report) as a message. It is a listener: the flow keeps running while it is connected.
Pins
| Pin | Kind | Types | Description |
|---|---|---|---|
| Start | start | - | Starts the SMPP session. Called by the system when the flow starts if it is not connected. |
| Output | output | Viaducta.Plugins.Smpp.Types.SmppMessage | One message per received SMS. |
| DeliveryAck | report | Viaducta.Plugins.Smpp.Types.SmppMessage | Delivery reports (EsmClass = 4). |
SmppMessage fields filled on receive: MessageText, Sender, Receivers (destination address), EsmClass, DataCoding, MessageFormat, TlvData (list of SmppTlvData { ID, Value } with the optional parameters).
Configuration
| Field | Type | Default | Description |
|---|---|---|---|
BindType | dropdown: 1 BindReceiver, 2 BindTransciever (required) | 1 | SMPP bind mode. |
Version | dropdown: 0 V3_3, 1 V3_4 (required) | 1 | SMPP protocol version. |
Host | string (required) | localhost | SMSC / gateway host. |
LocalEndpointIp | string | Any | Local IP to bind the socket to. |
Port | integer 1-65535 | 10000 | SMSC port. |
AddressRange | string, max 41 chars | empty | ESME address range served by this session (regular expression, as defined by SMPP). |
SystemId | string, max 32 chars | empty | SMPP system_id (user name). |
Password | password | empty | SMPP password. |
SystemType | string | ESME | SMPP system_type. |
EnquireLinkInterval | integer seconds, max 60 | 5 | Keep-alive (enquire_link) interval. |
GeneralTimeout | integer seconds, max 300 | 5 | Response timeout for SMPP operations. |
Behaviour
- On
Startthe plugin binds to the SMSC (the flow fails with "Failed to connect to host:port due to ..." if the bind is rejected) and starts reading messages. - Each
deliver_sm/data_smbecomes anSmppMessagewith new metadata. Messages withEsmClassexactly4(delivery receipt) go toDeliveryAck, all others toOutput. - The connection is closed when the flow stops.
Notes
- Concatenated (multi-part) SMS are not reassembled reliably: parts may be emitted individually or dropped.
- Errors while reading or in the downstream components are swallowed silently (not logged, not sent to the error handling). Add your own error handling in the following components.
- Delivery receipts whose
EsmClasshas other bits set besides4are sent toOutput. - Ports above 32767 are not handled correctly (the port is converted to a 16-bit signed number).
- Use an expression setting (
=Secrets.SmscPassword) forPasswordinstead of storing it in the flow.
Example
json
{ "BindType": 1, "Version": 1, "Host": "smsc.example.com", "Port": 2775, "SystemId": "myesme", "Password": "=Secrets.SmscPassword", "SystemType": "ESME", "EnquireLinkInterval": 30, "GeneralTimeout": 10 }Sms receiver → C# script (parse command) → Sms transmitter (reply)