Client Library

Change Log

Changes by release

7.0.170  (08d1e33) released on 11 January 2018

New features

Ability to set various user UDHs for various parts of multipart message. [#1217, customer request]

TLS 1.1 and TLS 1.2 added to list of SSL/TLS protocols serviced (.NET Framework 4.5+). [#1208, customer request]

Toolbox icons installation for Visual Studio 2015.

Setting of MCLs (Message Class) extended beyond DCS in UCP protocol. [#1202, customer request]

Important security update. [#1168]

Ability to narrow the set of allowed protocols used in Secure Sockets Layer (SSL) and Transport Layer Security (TLS) negotiations. [#1164, customer request]

Ability to set command_status of response PDU on message/status report received. [#1162, customer request]

Implemented priority_flag parameter in submit_sm/submit_multi and deliver_sm PDUs of the SMPP protocol. [#1159, customer request]


Windows Service Example in C# now uses a list of SMSCclientSMPP instances in order to facilitate creation of solutions connecting to multiple messaging providers.

Originator not included if empty in submit message operation in CIMD2 protocol. [#1194, customer request]

Alphanumeric signature encoding changed from IA5 to ISO-8859-1 in SMPP protocol. [#1178, customer request]

Fixed issues

Delphi source code sample updated.

Regression introduced recently to long messages ID numbering.

Small regression in SSL/TLS implementation fixed.

Throttle rate is far off the value of ThrottleRate in certain circumstances. [#1190]

Fixed serious performance regression introduced with TLS/SSL security. [#1181]

Small regression in UCP protocol concerning PDU hexadecimal encoding.

7.0.52  (4a2788c) released on 12 January 2016

New features

Quicker reconnecting possible straight from inside of OnTcpDisconnected event. [#1146]

Synchronous SubmitMessage functions can now be safely called from multiple threads. [#1143]

SSL/TLS connection security implementation straight in the library. [#1108, customer request]

More flexible one byte character encoding mechanism in SMPP protocol allowing cooperation with SMSCs which support non-standard and legacy encoding standards (IA5, ISO 8859-1, HP Roman8 etc.) [#1111, customer request]


Documentation tweaked & updated.

MessageTimeStamp name changed to DeliveryTimeStamp in UCP protocol. [#1138]

Minor tweaks in compiled demo applications.

Fixed issues

Invalid UDH passed to any SubmitMessage function results in wrong PDU but no error signaled. [#1153]

Synchronous submits cause timeouts due to thread locking in some cases. [#1156]

Encoding of messages passed via message_payload does not respect SMSC encoding. [#1150]

TimeStamp and MessageTimeStamp switched in StatusReportReceivedEvent in UCP. [#1130]

NullReferenceException in SubmitMessage function(s) when TCP connection disconnected while inside the function. [#1125]

Time difference to UTC sometimes calculated incorrectly in SMPP Absolute Delivery Time and Validity Period. [#1096]

6.0.178  (472b90a) released on 20 March 2015

New features

Added documentation chapter about automatic connection restore (reconnecting).

Added source code sample of automatic reconnect procedure to Windows Service Example in C# example.

Added decoding of characters passed from the SMSC as ISO-Latin codes instead of ASCII special combination in CIMD2 protocol.

8/16-bit concatenation reference exposed in SMPP demo application. [#1086]

Added message splitting/combining example in Visual Studio C++ source code sample. [#1070, customer request]

Added encoding and decoding of ussd_service_op and its_session_info TLVs (SMPP optional parameters) used in USSD mode of operation through ExtendedParameters methodology. [#1049]

Fixed issues

Wrong length in UCS2 message concatenated with 16-bit reference. [#1081]

Compiler generated code in CLR4 creates bad type names in TLB import. [#1059]

6.0.132  (319743f) released on 19 January 2015

New features

Added simple way of setting initial value for sequence_number in SMPP protocol. [#1043, customer request]

Documentation extended with Character Sets, Tracing Communication (Wireshark messaging protocols tracing & debugging guide), Silent Message (SMS0) chapters and other minor tweaks.

Fixed issues

SMPP protocol's compiled demo application does not pass ExtentedParameters to submitted messages. [#1036]

6.0.126  (586ae8e) released on 19 December 2014

New features

Long messages split using SAR optional parameters (sar_msg_ref_num, sar_total_segments, sar_segment_seqnum) in SMPP protocol. SAR and message_payload long message encoding can now be performed by EncodeMultipartMessage method. [#1033, customer request]

Explicit support for Common Language Runtime (CLR) versions 2.0 and 4.0 (separate selectable binaries plus detection of installed framework at the time of the setup).

Long messages concatenation method choice exposed in SMPP demo application.

Every single message both inbound and outbound can now be modified inside TraceProtocol callback. This allows modification of e.g. sequence_number for all or selected incoming/outgoing messages. [#1013]

Added ability to set local IP and port number for TCP/IP connection in SMPP protocol. [#1000, customer request]

Information and examples on setting Delivery Time and Validity Period added to User Manual (help). [#966]

Information about submitting messages with alphanumeric signature added to User Manual (help). [#16]

Visual Studio 2012 and Visual Studio 2013 toolbox icon installation.

Property for monitoring connection status on TCP/IP level added. [#245, customer request]

Submit to Multiple Destinations (submit_multi) in SMPP protocol added. [#850, customer request]

Multi-part messages concatenated via SMPP optional parameter fields (TLVs) are reconstructed properly. [#823]

ExtendedParameters exposed in demo application interface. [#797]


Alphanumeric signature may now contain full set of GSM 03.38 alphabet characters (Latin, international accented, Greek and special characters).

All relative times (Delivery Time and Validity Period) are now calculated relative from 2000-01-01 00:00:00. [#174]

Message Status and Reason Code parameters of Status Report event changed to reflect protocol naming convention. [#960]

Flags smpp.ascii-frontend and smpp.7bit-encoding separated for better control on encoding for some specific SMSCs. [#942]

AddressRange is now passed through ExtendedParameters of smppInitializeSessionEx. [#878]

soReplaceIfPresent (SubmitOption) flag moved to ExtendedParameters for better clarity. [#131]

Fixed issues

CIMD2 special characters encoding/decoding fails. [#979]

Out of bound data in CIMD2 protocol should be ignored. [#972]

Multi-part (concatenated) messages can sometimes have the same IDs in UDH. [#922]

Avoid crash if actual message body in SMPP is shorter than declared length (which is erroneously formatted message). [#914]

Throttling mechanism sometimes locked in submit function. [#891]

Text of message with ISO encoding (ISO-8859-[1, 5, 8]) not decoded properly. [#862]

In some circumstances EncodeMultipartMessage did not respect escape sequence coding. [#772]

Setting "ascii-frontend=1" in ExtendedParameters interferes with UCS2 encoding. [#759]

PDU field empty in ucpTraceProtocolEvent. [#746]

SM not filled properly in encoding of received message response in UCP protocol. [#739]

5.0.156  (fad268a) released on 26 June 2012

Fixed issues

Icons added in Start Menu for recently added source code sample projects (Microsoft Visual C++ and C++Builder) [#683]

ENROUTE message state not interpreted in SMPP protocol. [#711]

Some compilers crashed after COM interfaces for exposing events changed from IDispatch to dual. IUnknown interface added in code works properly. [#690]

5.0.140  (39fc29e) released on 11 June 2012

New features

Added Microsoft Visual C++ source code example project.

Added Borland/Code Gear/Embarcadero C++Builder source code example project.

Fixed issues

ExtendedParameters keys/values should be trimmed before inserting into the dictionary. [#668]

COM event interfaces changed from IDispatch only to dual. [#654]

5.0.101  (a2197b2) released on 18 May 2012

New features

Added OnSmppTraceProtocol [SMPP] and OnUcpTraceProtocol [UCP] events for capturing trace of all protocol level messages exchanged by the component with the SMSC.

Added multi-part message encoding and decoding to SMPP protocol C# source code example.

Added smppSendRAW/OnSmppRAWReceived method event pair to deal with SMPP messages not interpreted by the component.

Added ability to set local IP and port number for TCP/IP connection in UCP protocol. [#549]

Throttling scheduler is rewritten to achieve smoother submissions over time. [#289]

Added extended parameter to allow to impose DCS value of the submitted message in SMPP protocol. [#536]

Ability to set SM text for response messages in UCP. [#385, customer request]

In UCP protocol add ability to pass OPID to UCP-60 (login) message. [#379, customer request]

Accept text message delivered in data_sm SMPP frame. [#321, customer request]


Message encoding type etASCIIText removed to simplify programming interface. All of it's functionality is maintained.

UCP specific OTOA parameter moved to ExtendedParameters. [#570]

IMSI parameter removed from cimd2MessageReceivedEventArgs and passed through ExtendedParameters. [#460]

Fixed issues

Some outbound enquire_link PDUs have not been responded properly in SMPP protocol. [#633]

Delivery & Validity period Date/Time format corrupted in some cases. [#583]

Multi-part message after completing returns "00" as UDH. [#576]

Unhandled Exception when ucpInitializeInbound of UCP protocol invoked. [#555]

Inability to send KeepAlive packet should disconnect. [#403]

When there was no response to KeepAlive the session was not disconnected as it should. [#471]

Event tcpDisconnected does not pass error codes correctly in some situations. [#498]

Fixed missing cross-links in code-generated (XML) documentation. [#492]

WAP SI encoding created sometimes wrong single part message. [#430]

SMSCencoder does not return NoDecodingNeededMessage when no UDH. [#416]

Escape sequence with character code over 127 crashes component. [#397]

4.0.63  (9ce2178) released on 5 July 2011

New features

COM interoperability interface added to all components. [#14]

COM source code examples (Visual Basic 6 and/or Delphi Object Pascal). [#57]

DeleteMessage functionality in SMPP protocol. [#21]

QueryMessage result in SMPP protocol returned asynchronously. [#22]

QueryMessage in UCP protocol. [#23]

ExtendedParameters mechanism added to selected SMPP and UCP methods. [#19]

Helper class (SMSC encoder .NET) added for WAP-Push Service Indication (SI) message encoding and encoding/decoding of multipart (concatenated) messages. [#33]

Source code examples in C#/Visual Basic of windows service application running SMPP protocol. [#35]

Installation of the components in Visual Studio Toolbox (2005/2008/2010). [#40]

Limits on ResponseTimeOut and KeepAliveInterval property values. [#31]

COM registration split for 32/64 bit Registry. [#34]


SubmitOptionEnum soReplaceIfPresent flag transferred to SMPP ExtendedParameter pool. [#31]

Remove obsolete properties like MessageID, TimeStamp, SystemMessage etc. from all protocols. [#26]

ASCII frontend moved from property to InitializeSession ExtendedParameters. [#55]

XSER parameter transferred to UCP ExtendedParameter pool. [#114]

Fixed issues

SequenceNumber in some circumstances modified by response thread. [#63]

Int32 vs UInt32 as SequenceNumber in SMPP asynchronous method/event pair. [#302]

3.0.225  (c1d6b7a) released on 7 April 2011

Initial release of SMSC client .NET components.