Skip to content

Sms transmitter ​

Sends SMS messages to an SMSC or SMS gateway over SMPP. Long texts are split into concatenated parts automatically; several receivers can be given in one message.

Pins ​

PinKindTypesDescription
InputinputViaducta.Plugins.Smpp.Types.SmppMessageThe message to send.
OutputoutputViaducta.Plugins.Smpp.Types.SmppMessageIntended for messages the SMSC delivers on this session (transceiver bind) - see Notes.
ContinuecontinueViaducta.Plugins.Smpp.Types.SmppMessageCalled with the input message after it was submitted.

SmppMessage fields used for sending: MessageText, Sender (source address), Receivers (one number, or several separated by ;), IsFlashSMS, IsRegisteredDelivery (request a delivery report), ValidityPeriod (days, 0 = SMSC default, max 99). After sending, SMSCMessageId is set from the SMSC response (single receiver only).

Configuration ​

FieldTypeDefaultDescription
BindTypedropdown: 1 BindTransmitter, 2 BindTransciever1SMPP bind mode.
Versiondropdown: 0 V3_3, 1 V3_41SMPP protocol version.
Hoststring (required)localhostSMSC / gateway host.
LocalEndpointIpstringAnyLocal IP to bind the socket to.
Portinteger 1-6553510000SMSC port.
AddressRangestring, max 41 charsemptyValidated, but not sent in the bind.
SystemIdstring, max 32 charsemptySMPP system_id.
PasswordpasswordemptySMPP password.
SystemTypestringESMESMPP system_type.
EnquireLinkIntervalinteger seconds, max 605Keep-alive interval.
GeneralTimeoutinteger seconds, max 3005Response timeout.
SourceAddressNpidropdown: 0 Unknown, 1 ISDN, 3 Data, 4 Telex, 6 LandMobile, 8 National, 9 Private, 10 ERMES, 14 Internet8Numbering plan of Sender.
SourceAddressTondropdown: 0 Unknown, 1 International, 2 National, 3 NetworkSpecific, 4 SubscriberNumber, 5 Alphanumeric, 6 Abbreviated3Type of number of Sender (5 for alphanumeric sender names).
DestinationAddressNpidropdown, as SourceAddressNpi1Numbering plan of the receivers.
DestinationAddressTondropdown, as SourceAddressTon1Type of number of the receivers.
DataCodingTypedropdown: 0 SMSCDefault, 1 IA5_ASCII, 2 OctetUnspecifiedB, 3 Latin1, 4 OctetUnspecifiedA, 5 JIS, 6 Cyrillic, 7 Latin_Hebrew, 8 UCS2, 9 Pictogram, 10 MusicCodes, 13 ExtendedKanjiJIS, 14 KS_C0Text encoding. Use 8 (UCS2) for characters outside GSM 7-bit.
MaxSMSPerSecnumber10Throttling: maximum submits per second, 0 = unlimited. Each part of a long SMS counts.

Behaviour ​

  • The SMPP session is opened when the flow starts; a rejected bind stops the flow ("Failed to connect to host:port due to ...").
  • One receiver: submit_sm; several (;-separated): submit_multi.
  • Texts longer than one SMS are split into up to 30 parts with a concatenation header; a delivery report is requested only for the last part. More than 30 parts raises "Message too long".
  • IsFlashSMS = true sends a class 0 (flash) message, overriding DataCodingType.
  • After submitting, the input is passed to Continue.

Notes ​

  • A non-zero SMPP status from the SMSC (e.g. throttled, invalid destination) is not reported: Continue is still called. Check delivery with IsRegisteredDelivery and an Sms receiver.
  • DataCoding, MessageFormat and TlvData of the input message are ignored; the configured DataCodingType is used.
  • Messages delivered by the SMSC on a transceiver session are emitted on Output as the raw SMPP PDU, not as SmppMessage. Use Sms receiver to receive SMS.
  • Ports above 32767 are not handled correctly (converted to a 16-bit signed number).
  • Use an expression setting (=Secrets.SmscPassword) for Password.

Example ​

json
{ "BindType": 1, "Version": 1, "Host": "smsc.example.com", "Port": 2775, "SystemId": "myesme", "Password": "=Secrets.SmscPassword", "SourceAddressTon": 5, "SourceAddressNpi": 0, "DestinationAddressTon": 1, "DestinationAddressNpi": 1, "DataCodingType": 8, "MaxSMSPerSec": 5 }

Database reader → Data mapper (SmppMessage) → Sms transmitter → (Continue) Database writer (store SMSCMessageId)

Viaducta documentation