1 Megaco Release Notes
This document describes the changes made to the Megaco system from version to version. The intention of this document is to list all incompatibilities as well as all enhancements and bugfixes for every release of Megaco. Each release of Megaco thus constitutes one section in this document. The title of each section is the version number of Megaco.
1.1 Megaco 1.1.2
Version 1.1.2 supports code replacement in runtime from/to version 1.1.1 and 1.1.0.
1.1.1 Improvements and new features
1.1.2 Fixed bugs and malfunctions
- Service change reason text encoding now always quoted string.
Peter-Henry Mander
Own Id: OTP-4632
1.1.3 Incompatibilities
1.1.4 Known bugs and problems
1.2 Megaco 1.1.1
Version 1.1.1 supports code replacement in runtime from/to version 1.1.0.
1.2.1 Improvements and new features
- Added support for the Megaco mib.
1.2.2 Fixed bugs and malfunctions
- Result of catch gen_udp:open not properly handled.
Own Id: OTP-4566
1.2.3 Incompatibilities
1.2.4 Known bugs and problems
1.3 Megaco 1.1.0
Version 1.1.0 does not suppurt code replacement in runtime from pervious versions.
1.3.1 Improvements and new features
- Reply ack timeout now results in a call to callback function handle_trans_ack/4 with AckStatus = {error, timeout}.
Own Id: OTP-4378
- The binary codecs ber_bin and per_bin is now both compiled with the +optimize compiler flag for better runtime performance.
Own Id: OTP-4383
- The previously included tool, et, has been moved out of the Megaco application. It is now provided as a separate application in OTP (as of R9).
Own Id: OTP-4487
- Added attribute app_vsn to all modules.
Own Id: OTP-4486
1.3.2 Fixed bugs and malfunctions
- Decode of oneStream incorrect.
.
Own Id: OTP-4490
- Transaction id counter wrapping incorrect when Max is
infinity
.
Incorrectly the documentation defined a connection info itemmin_trans_id
. It should have beentrans_id
.
Own Id: OTP-4484
- Package name check in the text parser incorrect.
Own Id: OTP-4364
- Fixed a minor build problem causing the file 'megaco_text_parser.yrl' to not be included in the release.
Own Id: OTP-4363
1.3.3 Incompatibilities
1.3.4 Known bugs and problems
1.4 Megaco 1.0.4
Version 1.0.4 supports code replacement in runtime from/to version 1.0.2 and 1.0.3.
1.4.1 Improvements and new features
- Adding utility functions for megaco tracing.
Own Id: OTP-4339
1.4.2 Fixed bugs and malfunctions
- Optional line-number configure for the megaco flex scanner incorrect.
The intention was that line-numbering could be replaced with token number in order to improve performance. This did not work (line-numbers was always chosen). This has no runtime effect.
Own Id: OTP-4336
- Improved error reporting from the megaco messenger module.
Own Id: OTP-4337
- Text parsing of type octet string erroneous.
Own Id: OTP-4357
- A message containing a transaction request without the transaction id value is incorrectly reported back to the sender with a just an ErrorDescriptor. The correct behaviour is describen in chapter 8.1.1 of RFC 3015. Now the result will be a transactioReply with transaction id = 0 and an ErrorDescriptor.
Own Id: OTP-4359
Aux Id: Seq 7330
1.4.3 Incompatibilities
1.4.4 Known bugs and problems
1.5 Megaco 1.0.3
1.5.1 Improvements and new features
1.5.2 Fixed bugs and malfunctions
- Handling of comments in text messages incorrect.
For the ordinary text codec comments did not work. For the flex text codecs, double quoted strings in comments did not work.
Own Id: OTP-4299
Aux Id: Seq 7330
- The
streams
field in MediaDescriptor, has been made optional in order to comply with IGv6 6.50. It does also mean that the new default value isasn1_NOVALUE
.
Own Id: OTP-4288
- The user arguments was not supplied to the callback function
handle_unexpected_trans
as described by megaco_user.
Own Id: OTP-4290
1.5.3 Incompatibilities
- The scanner item of system info has been removed and instead been replaced by text_config. Also no longer contains any MFA info. From now on, just the text config.
1.5.4 Known bugs and problems
1.6 Megaco 1.0.2
1.6.1 Improvements and new features
- Added another binary decoder; per_bin.
To be able to use the per_bin encoder the ASN.1 application of version 1.3.2 or later is needed for R8B systems. For R7B01, ASN.1 of version 1.3.1.3 or later must be used.
1.6.2 Fixed bugs and malfunctions
- Memory leak in the flex scanner. Message larger then approx. 1000 bytes cannot be decoded. Will cause a core dump! Note that this will only be a problem if the flex scanner has been configured as encoding/decoding module!
Own Id: OTP-4236
- Fixed Makefile.in for the flex scanner. Removed unneccessary '-lfl' link option.
Own Id: OTP-4224
- Installed source was not placed in their proper (sub-) directory.
1.6.3 Incompatibilities
1.6.4 Known bugs and problems
1.7 Megaco 1.0.1
1.7.1 Improvements and new features
1.7.2 Fixed bugs and malfunctions
- The megaco application now forward's unexpected replies. This is done with a call to handle_unexpected_trans/3.
Own Id: OTP-4212
Aux Id: Seq 7181
- Megaco leaves entries in the megaco_replies table.
Own Id: OTP-4213
Aux Id: Seq 7208
1.7.3 Incompatibilities
1.7.4 Known bugs and problems
1.8 Megaco 1.0
1.8.1 Improvements and new features
- Flex scanner: Added scanner to system info.
1.8.2 Fixed bugs and malfunctions
1.8.3 Incompatibilities
1.8.4 Known bugs and problems
1.9 Megaco 0.9.5
1.9.1 Improvements and new features
1.9.2 Fixed bugs and malfunctions
- Flex scanner: Decoding of digit map timer values fixed.
- Missed some files in the megaco app file.
1.9.3 Incompatibilities
1.9.4 Known bugs and problems
1.10 Megaco 0.9.4
1.10.1 Improvements and new features
- Added the flex scanner: This is a Megaco scanner (used when decoding incoming text messages) written as a linked in driver (in C).
1.10.2 Fixed bugs and malfunctions
1.10.3 Incompatibilities
1.10.4 Known bugs and problems
- Decoding of digit map timer values erroneous.
- The megaco_flex_scanner and megaco_flex_scanner_handler modules was missing from the megaco app file.
1.11 Megaco 0.9.3
1.11.1 Improvements and new features
1.11.2 Fixed bugs and malfunctions
- Transport modules: The included transport modules (megaco_tcp & megaco_udp) had a bug causing incoming messages larger then 200 bytes not to be processed.
In order to be able to use the flex scanner, the library must be compiled. This is not done by default in this version. To get it,
cd
to the Megaco top directory and type:gmake ENABLE_MEGACO_FLEX_SCANNER=true
1.11.3 Incompatibilities
1.11.4 Known bugs and problems
1.12 Megaco 0.9.2
1.12.1 Improvements and new features
- Binary encoding now up to date (including the Implementors Guide version 6).
- Message processing has been changed in order to improve perfomance. This change consists of
Own Id: OTP-4110
- The (message handling) process created by calling the function
megaco:receive_message
, has a larger minimum heap size.
- Adding a new function,
megaco:process_received_message
, that performs the message processing in the context of the calling process.
- Text encoding: Handle the Topology Descriptor according to the IGv6.
Own Id: OTP-4088
1.12.2 Fixed bugs and malfunctions
- Text encoding: Missing last curly bracket, "}", results in error message "Error Code 400, Syntax Error on Line 999999". The line number information has been corrected.
Own Id: OTP-4085
Aux Id: Seq 7080
1.12.3 Incompatibilities
1.12.4 Known bugs and problems
- Transport modules: The included transport modules (megaco_tcp & megaco_udp) had a bug causing incoming messages larger then 200 bytes not to be processed.
1.13 Megaco 0.9.1
1.13.1 Improvements and new features
1.13.2 Fixed bugs and malfunctions
- The ABNF keyword changes introduced in release 0.9 of the embed and emergency tokens, was inconsistently implemented. It has now been corrected.
1.13.3 Incompatibilities
1.13.4 Known bugs and problems
1.14 Megaco 0.9
1.14.1 Improvements and new features
The application has been adpted to the Implementors Guide version 6 (IGv6).
- Added
[]
as default value for the #'ActionReply'.commandReply field, as a matter of convenience.
- Enabled customized handling of transport errors. Instead of performing a brute disconnect, the error reason returned by
TransportMod:send_message/2
is now propagated as{error,{send_message_failed,Reason}}
toUserMod:handle_trans_reply/4
or returned frommegaco:call/3
as other error cases. The old behaviour can still be achieved by a explicit call tomegaco:disconnect/2
.
- The
keepActive
field in RequestedActions and SecondRequestedActions, has been made optional in order to comply with IGv6 6.15. It does also mean that the new default value isasn1_NOVALUE
.
- The
statValue
field in StatisticsParameter, has been made optional in order to comply with IGv6 6.22. It does also mean that the new default value isasn1_NOVALUE
.
- The short keyword for the embed token in the ABNF spec. has been changed from "EB" to "EM" in order to comply with IGv6 6.6.
- The short keyword for the emergency token in the ABNF spec. has been changed from "EM" to "EG" in order to comply with IGv6 6.6.
- A new timer has been introduced. It is called
pending_timer
and implements the "provisonal response timer" in the RFC. By using the new timer, pending transaction replies are sent automatically, if the timer expires before a the final transaction reply has been sent by the user.
- A special "all" value for request identities has been introduced in order to comply with IGv6 6.30. It is represented as
?megaco_all_request_id
(which is a constant defined in megaco.hrl) in the internal form.
- The semantics of audit replies has been at last been made equal. The definition of
'AuditReply'
and'AuditResult'
has been redefined in order to comply with IGv6 6.38. This does not affect the ABNF spec. at all, but has some impact of the ASN.1 spec. and the internal form. The old 'AuditReply' record hasd been replaced with a tagged tuple: {contextAuditResult, [#'TerminationID'{}]} or {error, #'ErrorDescriptor'{}} or {auditResult, #'AuditResult'{}}. The old tagged tuple representation of AuditResult has now been replaced with a #'AuditResult{terminationID = #'TerminationID'{}, terninationAuditResult = #'TerminationAudit'{}} record.
- The ASN.1 definition of the
Value
type has been changed in order to comply with IGv6 6.40. This does not affect the ABNF spec. at all, but has some impact of the ASN.1 spec. and the internal form. The old Value type (OCTET STRING) was represented as list of integers. The new value type (SEQUENCE OF OCTET STRING) is represented as a list of elements where each element is a list of integers.
- The ABNF definition modemDescriptor has been changed in order to comply with IGv6 6.42. This affects the ABNF spec., but not the internal form.
- The ABNF definition auditOther has been changed in order to comply with IGv6 6.48. This affects the ABNF spec., but not the internal form.
- The
streams
field in MediaDescriptor, has been made optional in order to comply with IGv6 6.50. It does also mean that the new default value isasn1_NOVALUE
.
- A new
extraInfo
field has been introduced in both EventParameter and SigParameter in the ASN.1 spec. in order to comply with IGv6 6.56. The new field is optional and defaults toasn1_NOVALUE
.
- A new
timeStamp
field has been introduced in ServiceChangeResParm in both the ASN.1 spec. and the ABNF spec., in order to comply with IGv6 6.58. The new field is optional and defaults toasn1_NOVALUE
.
- The
terminationID
field in NotifyReply that earlier was optional in the ASN.1 spec. has now been made mandatory, in order to comply with IGv6 6.62. The field does now default to[]
.
- The
mtpAddress
in both the mid and the serviceChangeAddress has been changed in the ASN.1 spec., in order to comply with IGv6 6.25 and IGv6 6.68 respectively. The old fixed size octet string, has been replaced with a dynamic octet string whose size may range from 2 to 4.
- The
serviceChangeAddress
in ABNF has now been changed, in order to comply with IGv6 6.68. From now on the serviceChangeAddress may either contain a plain port number or a complete MID.
- The
reservedValue
andreservedGroup
fields in the LocalControlDescriptor, has been made optional in order to comply IGv6 6.69. It does also mean that the new default value isasn1_NOVALUE
.
- The
TransactionResponseAck
has been redefined in ASN.1, in order to comply IGv6 6.70.
1.14.2 Fixed bugs and malfunctions
- Text encoding: Did not handle alternative list in property parm.
Own Id: OTP-4013
Aux Id: Seq 5301
- Text encoding: Allowed multiple mode parameters in Local Control Descriptor (the last was choosen)..
Own Id: OTP-4011
Aux Id: Seq 5300
- Misspelled message "header" (MEGCAO instead of MEGACO) results in an reply with error code 500 instead of 400 or 401.
Own Id: OTP-4007
Aux Id: Seq 5289
- Text encoding: Fixed a problem with termination id lists in audit replies: could only be of length 1.
- Fixed a race condition that could occur when a gateway was too eager too re-send its initial service change message. Now the controller will reply on transaction requests with a pending transaction in order to make the gateway back off until the automatic connect procedure has completed. The other transaction types are silently ignored.
- Fixed the cause to the following error message:
=ERROR REPORT==== 17-Apr-2001::16:28:36 === Error in process <0.26230.0> on node 'cp1-19@b04d09' with exit value: {{badmatch,unknown_remote_mid},[{megaco_messenger,fake_conn_data,4},{megaco_messenger,process_received_message ,...
1.14.3 Incompatibilities
- The new
pending_timer
may cause pending transaction replies to be sent. In order to obtain the old behaviour the timer must explicitly be set to 'infinity'.
- The short keyword for the embed token in the ABNF spec. has been changed. See above for more details.
- The short keyword for the emergency token in the ABNF spec. has been changed. See above for more details.
- The
keepActive
field in RequestedActions and SecondRequestedActions has been made optional. See above for more details.
- The
statValue
field in StatisticsParameter, has been made optional. See above for more details.
- A special "all" value for request identities has been introduced. See above for more details.
- The definitions of AuditReply and AuditResult has been redefined. See above for more details.
- The definition of the
Value
type has been changed. See above for more details.
- The
streams
field in MediaDescriptor, has been made optional. See above for more details.
- The
terminationID
field in NotifyReply, is now mandatory and asn1_NOVALUE is not a legal value anymore. See above for more details.
- The
mtpAddress
in both the mid and the serviceChangeAddress has been changed in the ASN.1 spec. See above for more details.
- The
serviceChangeAddress
in ABNF has now been changed. See above for more details.
- The
reservedValue
andreservedGroup
fields in the LocalControlDescriptor has been made optional. See above for more details.
1.14.4 Known bugs and problems
- Binary messages may currently be mapped to the native internal form of ASN.1, but the framework for mapping of binary messages to an internal form, common for both text and binary encodings is not ready yet.