Changelog
[1.2.11] - 2017-12-12
Fixed
- MessageComposer raises evFullMessageReceived sometimes two times by processing concatenated message with two parts.
[1.2.10] - 2017-12-07
Changed
- SmppServer returns ESME_RSUBMITFAIL when evClientSubmitSm event has no attached handler.
- SmppServer returns ESME_RBINDFAIL when evClientBind event has no attached handler.
Fixed
- duplicate ReceiptedMessageId TLV option after serialization of DeliverSm PDU.
[1.2.9] - 2017-11-19
Fixed
- ESME_RTHROTTLED for first PDU when setting ReceiveSpeedLimit on SmppServerClient
[1.2.8] - 2017-11-06
Fixed
- Unable to reconnect from evConnected event when connection is failed.
[1.2.7] - 2017-10-30
Added
- Name property for classes SmppClientBase, SmppServer, that helps to define proper logger name.
[1.2.6] - 2017-10-04
Added
- decode receipt for IntermediateDeliveryNotification
[1.2.5] - 2017-08-12
Fixed
- ObjectDisposedException: Safe handle has been closed, on Mono platform when connecting to SMPP provider.
[1.2.4] - 2017-07-03
Changed
- SmppClientBase.WorkerThreads can be changed at any time. Library starts new threads or stops redundant threads automatically.
Fixed
- sequence number generation
Version 1.2.3 13.06.2017
- changed: allow to set MessageFeature property for SubmitSm instance
- fixed: source code building issue
Version 1.2.2 01.06.2017
- fixed: ReceiveSpeedLimit shouldn't be checked for Bind.
Version 1.2.1 22.05.2017
- fixed: License detection by creating client instance.
Version 1.2 19.05.2017
- added: new property ReceiveSpeedLimit for SmppServerClient class.
It allows to limit number of messages per second for connected client on SmppServer. When interval between request PDU is more than ReceiveSpeedLimit, client receives response PDU with status ESME_RTHROTTLED. Default is 0 that means unlimited number of message. - added: new property ReceiveQueueLimit for SmppServerClient class.
Client receives response PDU with status ESME_RMSGQFUL, when number of messages in the receive queue for the connected client is more than ReceiveQueueLimit value. Default is 0 that means unlimited number of message. - changed: MessageComposer doesn't depend on SmppClientBase anymore. It uses text encoding mapping from first segment PDU. This PDU should be bound with one of the client, otherwise it takes default encoding mapping.
Version 1.1.29.1 14.03.2017
- fixed: Multi-part UCS-2 message with surrogate pairs not working
Version 1.1.29 27.01.2017
- renamed: property Timeout in the class SmppClientBase renamed to ResponseTimeout . Type has been changed from int to TimeSpan. Default is 100 seconds.
- removed: property NeedEnquireLink in the class SmppClientBase.
- renamed: property EnquireInterval in the class SmppClientBase renamed to EnquireLinkInterval. Type has been changed from int to TimeSpan. By default is disabled = TimeSpan.Zero. Set non zero time span in order to activate automatic EnquireLink sending.
- changed: type of property ConnectionTimeout in the class SmppClientBase has been changed to TimeSpan. Default is 20 seconds.
- added: property InactivityTimeout in the class SmppClientBase. Default is 2 minutes. Connection will be dropped when in specified period of time no PDU was received. InactivityTimeout doesn't work when EnquireLinkInterval is defined.
- added: property SessionInitiationTimeout in the class SmppServer. Default is 20 seconds. Specifies a period of time in which SmppServer will wait for Bind command from SmppClient after establishing a connection.
- fixed: EnquiryLink has not been sent with VB.NET version.
Version 1.1.28 23.01.2017
- added: ReceiveBufferSize and SendBufferSize properties for SmppClientBase to change corresponding socket options.
- added: MaxPartSize method has been added to SMS builder classes. It allows to change part size for the message. Standard size is 140 bytes.
- removed: obsolete properties from SmppClient: ShortMessageMaxBytes and UseIPv6
Version 1.1.27.6 10.01.2017
- fixed: System.ArgumentException : An item with the same key has already been added. in EnquireLink
Version 1.1.27.5 30.12.2016
- fixed: Client stops sending EnquireLink.
Version 1.1.27.4 30.12.2016
- fixed: Obfuscator error
Version 1.1.27.3 28.12.2016
- changed: Method SmppServer.Start throws SmppException when server cannot be started
- fixed: Exception by processing PDU after failed EnquiryLinkResp in SmppServerClient
Version 1.1.27.2 27.12.2016
- fixed: Client stops sending EnquireLink when he simultaneously receives EnquiryLink from remote side.
Version 1.1.27.1 05.12.2016
- improved: better logging by accepting connection
- fixed: cannot establish SSL connection.
Version 1.1.27 30.11.2016
- improved: extend DataCodings enumerator, EncodingMapper has also new default encodings for all GSM 7bit and UCS2 data codings.
- changed: SystemId in Bind is optional now.
Version 1.1.26.1 26.10.2016
- fixed: ignore SslPolicyErrors.RemoteCertificateNotAvailable on the server side when client connects without certificate.
Version 1.1.26.0 26.10.2016
- fixed: SslPolicyErrors.RemoteCertificateNameMismatch when connect to the server with correct hostName
- changed: removed RemoteIP and RemotePort properties from SmppClientBase. Use client.RemoteEndPoint instead.
- changed: type of client.RemoteEndPoint to EndPoint. It can be cast to IPEndPoint or HostEndPoint.
Version 1.1.25.0 24.10.2016
- added: EnquiryLinkAsync method and evEnquireLinkComplete event
- added: Remote certificate validation events: SmppServer.evClientCertificateValidation and SmppClient.evServerCertificateValidation;
- fixed: TimeoutException in automatic EnquiryLink when client disconnects
- fixed: missed SMSC Delivery Receipt message type in EmsClass when creating Delivery Receipt with SMS builder.
Version 1.1.24.1 16.10.2016
- changed: output build date of the library
Version 1.1.24.0 09.10.2016
- changed: renamed property SheduleDeliveryTime to ScheduledDeliveryTime
- fixed: worker thread stops when library cannot serialize PDU. Now this PDU will be rejected and error message will be written in log.
Version 1.1.23.2 06.10.2016
- fixed: sometimes LicenseException has been thrown for purchased Developer License.
- fixed: SmppServer doesn't receive client certificate
Version 1.1.23.1 29.09.2016
- changed: parse Receipt for messages that contain SME Delivery Acknowledgment.
Version 1.1.23.0 21.09.2016
- added: allow to set WorkerThreads for receive queue when client is connected to SmppServer.
Version 1.1.22.7 30.07.2016
- improved: send smpp response with status ESME_RSYSERR when unable to parse user data of smpp request.
Version 1.1.22.6 29.06.2016
- improved: added ability to send delivery receipt in MessagePayload parameter.
Version 1.1.22.5 25.06.2016
- fixed: NullRefenceExeption in MessageComposer when try to call GetFullMessage method for sms that didn't receive all parts
Version 1.1.22.4 24.06.2016
- fixed: Delivery Receipt serialization in UCS2 data coding.
Version 1.1.22.3 21.06.2016
- fixed: handle failed EnquireLinkResp
Version 1.1.22.2 06.06.2016
- fixed: NullReferenceException in client certificates.
Version 1.1.22.1 23.05.2016
- fixed: ObjectDisposedException by disconnection of SmppServerClient with enabled EnquireLink
Version 1.1.22.0 13.05.2016
- changed: Responsibility to define Encoding for data conding has been moved to EncodingMapper class
- added: ability to define message reference number in concatenated messages. New methods in the SMS builders: ConcatenationInUDH(byte referenceNumber), ConcatenationInSAR(byte referenceNumber)
- added: ability to display License status with static property LicenseInfo.Status
- fixed: avoid SMPPCLIENT_RCVTIMEOUT when application sends concatenated SubmitSm PDUs with the same sequence number in one SMPP session.
- fixed: Exception when timer sends EnquireLink for disconnecting SmppServerClient.
Version 1.1.21.5 15.11.2015
- fixed: NullReferenceException in MessageComposer
Version 1.1.21.4 15.11.2015
- changed: send RST over TCP connection when remote side times out or unbind
- fixed: NullReferenceException in MessageComposer
Version 1.1.21.3 19.10.2015
- changed: handle Error Code: 10054 Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
- improved: SmppClientDemo is able to send SubmitMulti when destination address field contains a list of addresses separated by comma.
- improved: SmppServerDemo now shows how to use MessageComposer on the server side.
- fixed: MessageComposer issue with short sms.
Version 1.1.21.2 25.08.2015
- fixed: serialization issue when ISerializable interface is used
Version 1.1.21.1 15.07.2015
- fixed: SendSpeedLimit multi-threading issue
Version 1.1.21.0 21.06.2015
- changed: MessageComposer depends on SmppClientBase
- fixed: Prepend 'filler' bits to align the user data to septets after UDH
Version 1.1.20.4 26.05.2015
- added: allow to set LocalEndPoint for SmppClient.
Version 1.1.20.3 22.05.2015
- fixed: Concatenation property is null when ReferenceNumber equals to 0
Version 1.1.20.2 11.05.2015
- improved: smpp socket error handling
Version 1.1.20.1 28.04.2015
- improved: send EnquiryLink request in priority queue
Version 1.1.20.0 27.04.2015
- fixed: delayed EnquiryLink when client disconnects
- improved: connect disconnect thread-safety
- improved: BatchMonitor
- improved: Send and receive queue. Response PDU has now priority over Request PDU.
- changed: throw SmppConnectionException when disconnecting client before connection process is finished, or during connect of the same already connected client
Version 1.1.19.2 20.04.2015
- fixed: license expired issue
Version 1.1.19.0 12.04.2015
- changed: SmppServer.Start method works as old StartAsync. StartAsync method was removed.
- changed: Rewrite smpp socket. Add thread-safety for Connect and Disconnect methods
Version 1.1.18.4 03.04.2015
- added: information when expires trial version
Version 1.1.18.3 19.03.2015
- fixed: EnquiryLink timer issue when sending Bind several times after connection
Version 1.1.18.2 01.03.2015
- improved: error handling and log output
Version 1.1.18.1 26.02.2015
- changed: return Fail command status when event handler for incoming PDU request is not attached
Version 1.1.18.0 19.02.2015
- added: method AddUserDataHeader to SMS builder interfaces.
- fixed: Binary messages concatenation
Version 1.1.17.3 16.02.2015
- fixed: DeliverSm serialization
Version 1.1.17.2 26.01.2015
- fixed: incorrect enumerators output in log under mono
Version 1.1.17.1 14.01.2015
- fixed: wrong CommandStatus output in log
Version 1.1.17.0 04.01.2015
- added: SmppClientBase.AddressEncoding that defines default encoding for source and destination addresses in PDUs
- added: SmppClientBase.Tag that can contain data associated with the client
Version 1.1.16.0 07.10.2014
- added: SmppClientBase.Queue property that returns internal queue state for sent and received PDUs.
- changed: Process EnquiryLink request and response independently of internal queue.
Version 1.1.15.7 22.08.2014
- added: logging for disconnection reasons
Version 1.1.15.6 13.08.2014
- changed: Source and Destination Addresses are encoded with DataCodings.Default.
- fixed: GSMEncoding GetChars had an issue when buffer index was greater than 0
Version 1.1.15.5 03.07.2014
- fixed: SMS builder should create one PDU when text is empty
Version 1.1.15.4 03.06.2014
- changed: SmppClientBase.RaiseEventsInMainThread default value is false
Version 1.1.15.3 29.05.2014
- added: client.WorkerThreads property sets a number of worker threads that process received messages.
Version 1.1.15.2 23.04.2014
- fixed: bug in Connect method.
Version 1.1.15.1 21.04.2014
- added: ConnectAsync method.
- changed: SSL protocol can be now enabled with client.EnabledSslProtocols = SslProtocols.Default;
- fixed: Library doesn't pack message text in encoding GSMPackedEncoding to octests
Version 1.1.14.4 30.03.2014
- improve Delivery Receipt parser
Version 1.1.14.3 18.02.2014
- fixed app crash in obfuscated version (Developer and Evaluation)
Version 1.1.14.2 16.02.2014
- added support of MessageId field in DeliverSmResp
Version 1.1.14.1 15.02.2014
- improved send queue
- added ConsoleLogger
- fixed memory leak in timeout manager
Version 1.1.14.0 12.02.2014
- Send Response PDU with priority
- implement response timeout for async method. 'complete' events are raised when response has not been received in time
- improve GSM Encoding performance
Version 1.1.12.4 28.11.2013
- remove validation for SystemID in Bind class
Version 1.1.12.3 23.10.2013
- remove validation for source and destination addresses
Version 1.1.12.2 29.09.2013
- fix issues related to Mono 3.2.3 framework.
Version 1.1.12.1 22.08.2013
- Feature. SMS Builder can now send long text in the TLV parameter "message_payload" as one segment
Version 1.1.12.0 18.08.2013
- Feature. MessageComposer now has two new events evFullMessageReceived and evFullMessageTimedout.
Version 1.1.11.2 14.08.2013
- fixed bug with sequence number in EnquireLink
Version 1.1.11.1 21.07.2013
- fixed memory leak in SmppClient
Version 1.1.11 18.07.2013
- Added ability to connect to SmppServer with SSL Client Certificate.
Version 1.1.10 15.07.2013
- Two events evDeliverSmComplete and evDataSmComplete have been removed. Since this version you can send answer PDU to sender. F.i. You can send SubmitSm within evDeliverSm event on client side or you can send DeliverSm within evClientSubmitSm event on the server side. Response PDU will be sent before any other PDU within event handler method. It means that you can change response status only before sending first Answer PDU.
Version 1.1.9.1 09.06.2013
- added ability to convert user data headers to byte array
Version 1.1.9.0 12.05.2013
- added support of network_error_code TLV parameter in delivery receipt
Version 1.1.8.1 07.05.2013
- fixed issue with message length when send concatenated parts in message_payload field. Maximum length should be 153 characters.
Version 1.1.8.0 27.04.2013
- added Spanish shift table
Version 1.1.7.0 05.03.2013
- Removed global sequence generator. Since this version each SmppClient uses its own sequence generator. When PDU created sequense_number is not assigned. When you send PDU, library gets next sequence number from client.SequenceGenerator.NextSequenceNumber(). You can assign number before sending with same function. It helps to store sequence number for further processing.
- removed password limit in Bind
Version 1.1.6.2 22.11.2012
- removed unused property SmppClient.ServiceType
Version 1.1.6.1 22.11.2012
- added DataCodings 0xF6, 0xF7
Version 1.1.6.0 01.11.2012
- added Tag property that can contain any data to associate with the client.
Version 1.1.5.4 19.10.2012
- improved MessageText property in SubmitSm, SubmitMulti, DeliverSm, DataSm
- add creating Delivery receipt with SMS builder
Version 1.1.5.2 26.09.2012
- added National Language Single Shift support, only for Turkish language
- improved MessageComposer for SubmitMulti and SubmitSm
Version 1.1.4.0 07.09.2012
- solved blocking issue in sending queue when started bulk async submit
- sequence number generator can be assigned for each client
Version 1.1.3.2 30.08.2012
- fixed threading issue in MessageComposer
Version 1.1.3.1 22.08.2012
- process PDUs with vendor specific CommandStatus
Version 1.1.3.0 19.08.2012
- Improved MessageComposer supports multithreading and text in MessagePayload
Version 1.1.2.2 15.08.2012
- Create delivery receipt when server returns DeliverSm without MessageText
Version 1.1.2.1 14.08.2012
- Bypass sending queue for EnquiryLinkResp
Version 1.1.2.0 23.07.2012
- avoid error message when process incomplete PDU
- fix SubmitMultiResp serializer
Version 1.1.1.1 04.07.2012
- fix bug in EnquiryLink
Version 1.1.1.0 25.06.2012
- added propery SendSpeedLimit that works also for async methods
- added event evDeliverComplete which raised when receive DeliverSmResp from client
Version 1.1.0.0 27.02.2012
- added SMS Builder classes which help to create SMS message parts for further sending
- removed PrepareSubmit, SubmitText methods. Use SMS builder with methods Submit, SubmitAsync, SubmitMulti, SubmitMultiAsync on client side, and Deliver or DeliverAsync on server side.
- now it is possible to determine concatenated messages using Concatenation property in classes SubmitSm, SubmitMulti, DeliverSm, DataSm
- added helper class for compose concatenation messages
- added helper class for tracking batch async message sending.
Version 1.0.12.9 28.05.2012
- store Bind parameters in SmppServerClient
Version 1.0.12.8 24.05.2012
- don't generate MessageId for SubmitSmResp in SmppClient
Version 1.0.12.7 21.05.2012
- added some methods in TLVCollection for different types of value
Version 1.0.12.6 10.05.2012
- fix adding TLV parameter as string
Version 1.0.12.5 02.04.2012
- added workaround to parse delivery receipt with empty values
Version 1.0.12.4 29.03.2012
- fixed concatenation detection for DeliverSm when message in UserData and segment informaion in SAR paramenters.
Version 1.0.12.3 30.01.2012
- fixed Queue is empty exception
Version 1.0.12.2 26.12.2011
- fixed mistake of property name SheduleDeliveryTime
- added method DeliverAsync
Version 1.0.12.1 15.12.2011
- added method Client.GetEncoding
- improved Delivery Receipt parsing
- fixed clone method in DeliverSm
Version 1.0.12.0 14.12.2011
- BindResp SystemId can be modified with method ChangeSystemId
- fixed empty MessageId in QuerySmResp created by QuerySm
- in DeliverSm class added properties ProtocolId, PriorityFlag, RegisteredDelivery
- added ability to clone DeliverSm object
Version 1.0.11.4 06.12.2011
- added setters for some properties in QuerySmResp
Version 1.0.11.3 24.10.2011
- fixed missing question mark in GSMEncoding
Version 1.0.11.2 18.08.2011
- fixed delivery reciept to string
Version 1.0.11.1 15.08.2011
- some improvements in delivery reciept and TLV collection for supporting HLR requests
Version 1.0.11.0 27.07.2011
- changed indexed properties in TLVCollection class.
Version 1.0.10.2 28.06.2011
- fixed sending EnquireLink from SmppServer
Version 1.0.10.1 24.05.2011
- fixed Mono related issues
Version 1.0.10.0 16.05.2011
- improved Delivery Receipt parsing
- improved received data parsing
Version 1.0.9.1 22.04.2011
- improved error handling
Version 1.0.9.0 11.04.2011
- added Outbind support
- updated DataSm, some properies have setters
- fixed GSM Packed encoding
- fixed bugs in VB.NET version of Demo applications
Version 1.0.8.0 14.03.2011
- added GSM Packed encoding
- fixed DeiliverSm Receipt parsing
Version 1.0.7.5 08.02.2011
- improved connection methods, Dns.GetHostEntry not used when IP address is specified
Version 1.0.7.3 07.02.2011
- fixed bug with connection after disconnect
Version 1.0.7.1 03.02.2011
- fixed BeginWrite problem in SSL connection
- added property RaiseEventsInMainThread for enable/disable running events in Main UI Thread
- added event evServerStarted
- fixed bug with Open client status after BindAsync
Version 1.0.6 24.01.2011
- added workaround for parsing date with 4 digits year in delivery receipt
Version 1.0.5 17.01.2011
- added asynchronous binding
Version 1.0.4 19.12.2010
- added EsmClass property for DeliverSm, DataSmclasses classes. Now you can set directly required value.
- DeliverSm.Receipt property can be used in SMPP server to send delivery receipt
- fixed bug with parsing delivery receipt
Version 1.0.3.1 23.11.2010
- fixed bug in EnquireLink
Version 1.0.3 30.10.2010
- added deliverSm.Receipt property which represents parsed delivery receipt text.
- added new submit mode ShortMessageWithSAR which allows to send user data in the short_message field and concatenation options in TLV paramaters
- added more OptionalTags
Version 1.0.2 26.10.2010
- fixed bug with sar_segment_seqnum
Version 1.0.1 19.09.2010
- Raising SmppException when client is trying to send message to disconnected remote side.
Version 1.0.0 30.07.2010
- First version of completele rewritten SMPP library based on ALT.SMS.SmppClient.