All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Rework time related code of SMPP sessions.
- Drop
oserl
support.
- Drop support of old Elixir & OTP versions (OTP 24+ and Elixir 1.12+ are required).
- Remove some compatibility code.
- Update dependencies to latest minor versions.
- Update CI matrix.
- Improve SSL tests.
- Update maintenance status.
- Apply updated formatting.
- Embedded mode for MC, i.e. a way to start it as a part of custom supervision tree (sasa1977).
- Optional
SMPP.Session
callback (handle_timeout
) for customizing SMPP session exit reason in case of timeouts (sasa1977).
- Elixir 13 to CI matrix.
- OTP 24 to CI matrix.
- Fixed some typing issues (Fyodor Parmanchukov).
- Documentation of auxilary projects.
- Organization of documents.
session_module
option for MC and ESME modules to provide alternative implementations ofSMPPEX.TransportSession
behavior.
- Removed
poison
from dev dependencies.
- Removed
poison
from production dependencies.
- Fixed callback flow while accepting connections in MC.
init
callbacks are now run after socket transport handshake (as it always should have been). - Updated Ranch to 2.0.
- Dropped OTP < 21 support for Ranch 2.0 compatibility.
- Fixed
source_subaddress
TLV spec (Menkir).
- Fixed low level socket configuration in ESME (IceDragon200).
- Updated dev/test dependency versions.
- Dropped Elixir < 1.7 support.
- Fixed submit_multi handling (Menkir).
- Moved repo to funbox organization.
- Set the
esm_class
field for a delivery report pdu created by factory.
- Timeout argument to
Session.send_pdu/2
function.
- Option to set arbitrary initial sequence number for SMPP sessions.
- Elixir 1.9 builds in CI.
- Updated
excoveralls
dependency. - Added
SMPPEX.Pdu.ValidityPeriod
module for dealing withvalidity_period
PDU field.
- Removed Elixir 1.2, 1.3 support and the corresponding builds from CI.
- Elixir 1.8 builds in CI.
- OTP 18 support.
- Fixed
data_sm
packet syntax.
- Unfixed
ranch
from< 1.6.0
, since its internal changes do not affect our code.
- Fixed automatic
enquire_link
sequence id generation. - Fixed
ranch
to< 1.6.0
due to its incompatible changes.
- Parsing mudule for
network_error_code
field. network_error_code
field support inoserl
converter.
- Handling of generic
GenServer
call
andcast
messages.
- Fixed handling of PDUs with negative
send_pdu_result
status: they do not appear inhandle_resp_timeout
callack anymore.
submit_sm
factory methods with automatic TON/NPI detection.
- Dropped Elixir 1.1.1 and OTP 17 support.
- Made
SMPPEX.ESME.Sync
be safe for making requestd from multiple processes.
- Updated build matrix for Travis CI. Removed assets for obsolete version builds.
- Updated build matrix for Travis CI. Added Elixir 1.6.
- Added explicit extract functions in SMPPEX.Pdu.Multipart.
- Fixed Ranch transport handling in SMPPEX.TransportSession, this fixes SSL transport support.
- SMPPEX.ESME.Sync: ignore successful send_pdu_result for syncronously sent PDUs.
- SMPPEX.ESME.Sync: exit with normal on socket close.
- Fixed handling socket close/error for SMPPEX.ESME.Sync
- Loosened
ranch
version requirements.
- Added strict response type for
terminate
callback. Also,terminate
callback is now allowed to return some last pdus for sending.
- Automatic handling of
enquire_link
andenquire_link_resp
PDUs.
PduStorage
implementation to be OTP 17 compatible.
This release contains significant architectural changes and API incompatibilities.
- Added single
SMPPEX.Session
behavior instead of seperateSMPPEX.ESME
andSMPPEX.MC
behaviours. SMPPEX.Session
callbacks are moreGenServer
compliant.- Most of
SMPPEX.Session
callbacks are allowed to return stop indicating tuple. - Most of
SMPPEX.Session
callbacks are allowed to return a list of PDUs to send. - All methods interacting with
SMPPEX.Session
are synchronous.
- Elixir 1.5 builds in CI.
- Usage of a separate process for ESME/MC connections.
- Usage of
ranch
supervisor of launching ESME connections. - Special methods for sending PDU replies to ESME/MC in favor of
Pdu.as_reply_to/2
method.
ex_doc
updated to 1.x.
This is the first stable release introduced from numerous 0.x.x versions. Although this library has been already used in production for quite a while, it's only purpose is to designate the divergence from 2.x.x branch.
- ESME functionality.
- MC functionality.
- Synchronous ESME client.