Skip to content

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 ​

PinKindTypesDescription
Startstart-Starts the SMPP session. Called by the system when the flow starts if it is not connected.
OutputoutputViaducta.Plugins.Smpp.Types.SmppMessageOne message per received SMS.
DeliveryAckreportViaducta.Plugins.Smpp.Types.SmppMessageDelivery 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 ​

FieldTypeDefaultDescription
BindTypedropdown: 1 BindReceiver, 2 BindTransciever (required)1SMPP bind mode.
Versiondropdown: 0 V3_3, 1 V3_4 (required)1SMPP protocol version.
Hoststring (required)localhostSMSC / gateway host.
LocalEndpointIpstringAnyLocal IP to bind the socket to.
Portinteger 1-6553510000SMSC port.
AddressRangestring, max 41 charsemptyESME address range served by this session (regular expression, as defined by SMPP).
SystemIdstring, max 32 charsemptySMPP system_id (user name).
PasswordpasswordemptySMPP password.
SystemTypestringESMESMPP system_type.
EnquireLinkIntervalinteger seconds, max 605Keep-alive (enquire_link) interval.
GeneralTimeoutinteger seconds, max 3005Response timeout for SMPP operations.

Behaviour ​

  • On Start the 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_sm becomes an SmppMessage with new metadata. Messages with EsmClass exactly 4 (delivery receipt) go to DeliveryAck, all others to Output.
  • 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 EsmClass has other bits set besides 4 are sent to Output.
  • Ports above 32767 are not handled correctly (the port is converted to a 16-bit signed number).
  • Use an expression setting (=Secrets.SmscPassword) for Password instead 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)

Viaducta documentation