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.0
1.1.1 Improvements and new features
- Flex scanner: Added scanner to system info.
1.1.2 Fixed bugs and malfunctions
1.1.3 Incompatibilities
1.1.4 Known bugs and problems
1.2 Megaco 0.9.5
1.2.1 Improvements and new features
1.2.2 Fixed bugs and malfunctions
- Flex scanner: Decoding of digit map timer values fixed.
- Missed some files in the megaco app file.
1.2.3 Incompatibilities
1.2.4 Known bugs and problems
1.3 Megaco 0.9.4
1.3.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.3.2 Fixed bugs and malfunctions
1.3.3 Incompatibilities
1.3.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.4 Megaco 0.9.3
1.4.1 Improvements and new features
1.4.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.4.3 Incompatibilities
1.4.4 Known bugs and problems
1.5 Megaco 0.9.2
1.5.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.5.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.5.3 Incompatibilities
1.5.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.6 Megaco 0.9.1
1.6.1 Improvements and new features
1.6.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.6.3 Incompatibilities
1.6.4 Known bugs and problems
1.7 Megaco 0.9
1.7.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.7.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.7.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.7.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.