Change Log
Copyright © 2003 - 2004 Enrique Marcote Peña
Version: 1.0 beta
Authors: Enrique Marcote Peña (mpquique@users.sourceforge.net) [web site: http://www.des.udc.es/~mpquique/].
- Changes 0.1 -> 0.2
- base_syntax.hrl
- base_syntax.erl
- param_syntax.hrl
- param_syntax.erl
- pdu_syntax.hrl
- pdu_syntax.erl
- smpp_globals.hrl
- smpp_base.hrl
- smpp_param.hrl
- smpp_pdu.hrl
- operation.erl
- sm.erl
- gen_connection.erl
- gen_esme_session.erl
- gen_esme.erl
- Sample files (code_lock_esme.erl, echo_esme.erl and submit_esme.erl)
- Other changes
- Changes 0.2 -> 1.0
- smpp_globals.hrl
- gen_esme_session.erl
- operation.erl
- Changes 1.0 -> 1.1
- Changes 1.1 -> 1.2
- smpp_base.hrl
- Default values of standard parameters included in the parameter
descriptor (just like in TLVs). Lists of PDUs default values do no longer
exist.
Refer to smpp_param.hrl in order
to change the default value of a parameter.
- Trailing NULL_CHARACTERs in C-Octet Strings are transparently
handled by encoding/decoding functions. Application layer does not handle
terminating NULLs any more.
- Absolute and relative time formats are now pure C-Octet Strings (Not
records). time record removed. (Refer to
base_syntax.erl,
base_syntax.hrl and
smpp_base.hrl for further details).
- gen_esme callback interface redefined.
- PDU packing/unpacking functions redefined.
- New macros for composite parameters value definitions.
For instance, ?DEST_ADDRESS_SME_DEFAULT_VALUE and
?DEST_ADDRESS_SME_VALUE/4 were defined for parameter
dest_address_sme.
How these changes affected individual files is described below.
- empty base type record definition removed.
- EMPTY macro now defined as
-define(EMPTY, ?UNION([])).
- format field in strings is now a Fun. Much more powerful and
elegant than before.
- HEX_C_OCTET_STRING, DEC_C_OCTET_STRING,
HEX_OCTET_STRING and DEC_OCTET_STRING macros redefined
using new format feature for strings.
- ATIME_C_OCTET_STRING and RTIME_C_OCTET_STRING
macros defined using new format feature for strings.
- Field default added to standard record definition.
STANDARD macro accordingly updated.
- encode_std/2 and encode_tlv/2 are now responsible for
encoding default values on standard and mandatory tlvs respectively.
- command_id added to PDU descriptors.
- $\0 removed from the NULL_C_OCTET_STRING macro.
- Trailing $\0 removed from the c_octet_string values.
- Absolute/relative time implemented as pure C-Octet Strings. Time
record removed. Time manipulation is now much more natural... and easy.
- New macros for composite parameters value definitions.
For instance, ?DEST_ADDRESS_SME_DEFAULT_VALUE and
?DEST_ADDRESS_SME_VALUE/4 were defined for parameter
dest_address_sme.
- Default values added to Standard parameters.
- Default values for TLVs reviewed.
- Default values moved to smpp_param.hrl.
- Field number_of_messages added to submit_sm, data_sm
and submit_multi_sm.
- CDMA and TDMA specific TLVs are no longer commented out.
- command_id added to PDU descriptors.
- retry_status is disabled on die event.
- If already listening on Port, the term
{error, {already_listening, Port}} is returned for a request to
listen on Port (instead of ok).
- If already connected to Address on Port, the term
{error, {already_listening, Address, Port}} is returned for a
request to connect to Address on Port
(instead of ok).
- Changes in comments.
- Calls to pdu_syntax:get_value/2 replaced by
operation:get_param/2.
- All timers reviewed (fixed).
- request_broker fixed when Caller is undefined.
- Changes in comments.
- Calls to pdu_syntax:get_value/2 replaced by
operation:get_param/2.
- Completely redesigned.
- Callback interface redefined.
- Trailing $\0 removed from the c_octet_string values.
- Absolute/relative time implemented as pure C-Octet Strings. Time
record finally removed. Time manipulation is now much more natural...
and easy.
- Last changes in gen_esme.erl adopted.
- Use new callbacks defined in gen_esme.erl.
- Makefiles were fixed to find compiled behaviors.
- Now shipped under the GNU Lesser General Public License.
- gen_esme.hrl and gen_esme_session.hrl replaced by
oserl.hrl.
- gen_smsc and
gen_smsc_session behaviors implemented.
- gen_connection completely redesigned.
- gen_esme_session and
changed to adopt the new design of
gen_connection.
- gen_esme acts now as an extended
gen_server. There's no need to implement several behaviors separately.
How these changes affected individual files is described below.
- VALID_COMMAND_ID macro defined.
- Two new macros added: REQUEST and RESPONSE. To compute the
counterpart of a command_id
- The macro COMMAND_ID gets the command_id (int) for a given
command_name (atom).
- The macro COMMAND_NAME gets the command_name (atom) for a
given command_id (int).
- Internal functions alert_notification/2,
bind_receiver_resp/1, bind_transceiver_resp/1,
bind_transmitter_resp/1, deliver_data_sm/2,
deliver_sm/2, enquire_link/2, outbind/2,
unbind/2 and unbind_resp/1 removed.
- handle_input_corrupt_pdu/4 responds to corrupt unbind PDUs
with an unbind_resp (due to a bug, a generic_nack was
issued on previous versions.
- Uses the new gen_connection.
- pack_mc/1 is now called pack_smsc/1.
- unpack_mc/1 is now called
unpack_smsc/1.
- new_xxx/2 and new_xxx/3 functions removed. Refer to
generic functions new/3 and new/4
.
- request_command_id/1 and response_command_id/1
redefined as macros in smpp_globals.hrl.
- ESM_CLASS_DOMAIN fixed. Thanks to hfventer for this fix.
The max values were less than the min values!
Without this it would be impossible to send binary content messages
(like ring tones or WAP push).