20062009 Ericsson AB. All Rights Reserved. The contents of this file are subject to the Erlang Public License, Version 1.1, (the "License"); you may not use this file except in compliance with the License. You should have received a copy of the Erlang Public License along with this software. If not, it can be retrieved online at http://www.erlang.org/. Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. Megaco Release Notes history Micael Karlberg OTP OTP 2007-06-15 A notes_history.xml
Megaco 3.8.2

Version 3.8.2 supports code replacement in runtime from/to version 3.8.1 and 3.8 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

[text] Messages with property parm values "containing" keywords confused the parser when using the flex scanner.

Own Id: OTP-7534

Aux Id: Seq 11039

Incompatibilities

-

Megaco 3.8.1

Version 3.8.1 supports code replacement in runtime from/to version 3.8 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

Some minor documentation cleanup of the transaction sender chapter of the User's Guide.

Own Id: OTP-7417

Aux Id: Seq 10989

Fixed bugs and malfunctions

The event parameter value for completion event ce of the dd package was incorrectly encoded as type Value instead of as a quoted string.

Own Id: OTP-7444

DigitMap ([0-9ef]) incorrectly interpreted as ([0-9]ef).

Own Id: OTP-7449

Receiving an unexpected segment reply could case an case clause crash. Now a warning message will be issued instead.

Own Id: OTP-7455

The flex scanner had problems parsing wildcarded service-change request, ammRequest (with add) and notifyRequest.

Own Id: OTP-7457

Aux Id: Seq 11014

Processing requests when "autoconnecting" caused function cause after reboot.

Own Id: OTP-7459

Aux Id: Seq 11017

Incompatibilities

-

Megaco 3.8

Version 3.8 supports code replacement in runtime from/to version 3.7.5, 3.7.4 and 3.7.3 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

Miscellaneous text codec(s) improvements. Both regarding code size and decode performance.

See the performance chapter of the Users Guide for details.

Own Id: OTP-7228

Added the value flag to the resend_indication config option. See resend_indication for more info.

Own Id: OTP-7259

Aux Id: Seq 10901

Fixed bugs and malfunctions

If a TransactionRequest arrives while a user is connecting (is in the callback function handle_connect as a result of a megaco:connect call), megaco responds with a pending message and then drops the request.

These messages will now be silently dropped, forcing the other side to resend.

Own Id: OTP-7192

Aux Id: Seq 10884

Incompatibilities

-

Megaco 3.7.5

Version 3.7.5 supports code replacement in runtime from/to version 3.7.4, 3.7.3, 3.7.2, 3.7.1 and 3.7 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

Documentation of function megaco:conn_info/2 has been updated to include known exit reasons.

Own Id: OTP-7286

Aux Id: Seq 10933

Fixed bugs and malfunctions

The transaction id counter could be incorrectly updated at wrap-around. The risk was expecially high at high load.

Own Id: OTP-7303

Aux Id: Seq 10939

Incompatibilities

-

Megaco 3.7.4

Version 3.7.4 supports code replacement in runtime from/to version 3.7.3, 3.7.2, 3.7.1 and 3.7 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

In order to better deal with codec's not implementing the entire megaco_encoder behaviour, translations of undefined (not implemented) functions to the {error, not_implemented} return value has been added for the functions encode_transaction/3, encode_action_requests/3 and encode_action_reply/3.

Own Id: OTP-7251

Aux Id: Seq 10879

Fixed bugs and malfunctions

The (plain) text scanner could incorrectly identify character strings (any 17 char long string with the char t in the middle) as a TimeStampToken.

Own Id: OTP-7249

Aux Id: Seq 10917

Incompatibilities

-

Megaco 3.7.3

Version 3.7.3 supports code replacement in runtime from/to version 3.7.2, 3.7.1 and 3.7 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

Updated the graphs of the performace chapter with to reflect this version of megaco. Also included results with HiPE-compiled codec's..

Own Id: OTP-7180

Fixed bugs and malfunctions

The behaviour megaco_encoder was lacking three functions which was made mandatory as of version 3.7.

See encode_transaction/3, encode_action_requests/3 and encode_action_reply/3 for more info

Own Id: OTP-7168

Aux Id: Seq 10867

It was possible to create permenant pending counter data for a somewhat misbehaving (request) receiver. If a megaco entity ("sender") sends a request and the "receiver" (of the request) responds with a pending message but never actually sends the reply (or if it is lost), the created pending counter data would never be deleted if the long_request_timer was set to infinity (old default) and the recv_pending_limit was set to an integer value (default is infinity).

Own Id: OTP-7189

Aux Id: Seq 10879

If a counter whas reset (wrap-around) as a result of increment larger than 1, then it was actually always set to the min_trans_id-value.

Own Id: OTP-7216

Incompatibilities

For those implementing their own codec's, the new megaco_encoder behaviour will require three more functions. See above for more info.

Own Id: OTP-7168

Aux Id: Seq 10867

The default value of the long_request_timer has been changed from infinity to 60 seconds.

Own Id: OTP-7189

Aux Id: Seq 10879

Megaco 3.7.2

Version 3.7.2 supports code replacement in runtime from/to version 3.7.1 and 3.7 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

There is a race condition when cancelling requests during a high load situations which could lead to spurious (megaco internal) messages beeing sent to user processes. When a request is issued using megaco:call, which returns only after a "reply" can be delivered, the request timer might expire during the cancelling of the request, which will cause megaco to attempt to deliver the timeout info, which will result in the spurious message. This problem has now been eliminated by introducing a proxy process, which simply dies when the "real" response has been delivered. The spurious reply will then be sent to a non-existing process.

Own Id: OTP-6972

Aux Id: Seq 10450

[text] Decoding a version 2 message with an observedEventParameter where the value of the parmValue was CT, failes. CT is defined as the context attribute token in version 3, and this incorrectly caused the scanner (which is version agnostic) to create an ContextAttrToken, which caused the version 2 parser to crash.

Own Id: OTP-7138

Aux Id: Seq 10854

Incompatibilities

-

Megaco 3.7.1

Version 3.7.1 supports code replacement in runtime from/to version 3.7 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

Reporting of error(s) detected during loading of the flex driver has been improved, by calling the erlang:format_error function.

Own Id: OTP-7005

Updated documentation for function megaco:connect/4.

Own Id: OTP-7000

Aux Id: Seq 10815

Use of depricated function erlang:fault replaced with erlang:error.

Own Id: OTP-6919

Fixed bugs and malfunctions

Corrected usage of function file:open/2 (the Modes argument is a list).

Dialyzer

Own Id: OTP-7124

Fixed a reply timer race condition problem resulting in (case clause) error message.

Own Id: OTP-6999

Aux Id: Seq 10815

Failure to parse SDP attribute FMTP rows.

Own Id: OTP-6992

Aux Id: Seq 10813

When the megaco application receives two instances of the same transaction requests (re-send) within too small a time, there is a small possibility that both are passed on to the user via a call to the callback function (handle_trans_request).

Own Id: OTP-6971

Aux Id: Seq 10802

Incompatibilities

-

Megaco 3.7
Improvements and new features

Added support for the full v3-standard (including segmentation).

See segmentation of transaction replies and handling megaco versions for more info.

Note that segmentation is currently not supported by the binary codec(s).

Own Id: OTP-5979

The megaco documentation source has been converted from SGML to XML.

Own Id: OTP-6753

SDP support updated according to RFC 4566.

Own Id: OTP-6804

Aux Id: Seq 10710

Added a way for the transport module to transfer extra information to the user callback functions callback functions upon receipt of a message. This is done by adding an extra argument when calling the (new) message delivery function(s) process_received_message/5 or receive_message/5.

Similarly, the UserReply part of the return value for the call function can now also include such extra information.

Own Id: OTP-6865

Aux Id: Seq 10559

Improve the utility functions for information retrieval: megaco:info, megaco:system_info, megaco:conn_info and megaco:user_info.

Own Id: OTP-6976

Aux Id: Seq 10804

Fixed bugs and malfunctions

-

Incompatibilities

Implementing (SDP-) support for RFC 4566 also means that some of the existing sdp-record definitions have been changed.

Own Id: OTP-6804

Aux Id: Seq 10710

Megaco 3.6.3

Version 3.6.3 supports code replacement in runtime from/to version 3.6.2, 3.6.1, 3.6.0.1, 3.6, 3.5.3, 3.5.2, 3.5.1.1, 3.5.1 and 3.5 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

Failure to parse SDP attribute FMTP rows.

Own Id: OTP-6992

Aux Id: Seq 10813

Incompatibilities

-

Megaco 3.6.2

Version 3.6.2 supports code replacement in runtime from/to version 3.6.1, 3.6.0.1, 3.6, 3.5.3, 3.5.2, 3.5.1.1, 3.5.1 and 3.5 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

When timers expire while a connection cancel (megaco:cancel) is in progress, there is a raise condition possibility. This has been eliminated.

Own Id: OTP-6921

Aux Id: Seq 10450

Incompatibilities

-

Megaco 3.6.1

Version 3.6.1 supports code replacement in runtime from/to version 3.6.0.1, 3.6, 3.5.3, 3.5.2, 3.5.1.1, 3.5.1 and 3.5 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

An empty time-zone adjustment was incorrectly allowed when decoding SDP using decode_sdp.

Also the parsing of attributes was to restrictive.

Own Id: OTP-6803

Aux Id: Seq 10710

Incompatibilities

-

Megaco 3.6.0.1

Version 3.6.0.1 supports code replacement in runtime from/to version 3.6, 3.5.3, 3.5.2, 3.5.1.1, 3.5.1 and 3.5 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

Minor Makefile changes.

Own Id: OTP-6704

Fixed bugs and malfunctions

-

Incompatibilities

-

Megaco 3.6

Version 3.6 supports code replacement in runtime from/to version 3.5.3, 3.5.2, 3.5.1.1, 3.5.1 and 3.5 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

Improved erl_dist codec handling of megaco_compressed codec config. Introduced behaviour, megaco_edist_compress, for the megaco_compressed callback of module.

Own Id: OTP-6609

The behaviour megaco_transport have been updated to include the optional function resend_message. This function is called instead of the standard send_message if the new config option resend_indication was set to and it is a message resend.

Own Id: OTP-6442

Aux Id: Seq 10393

Add ability to decrement the timeout time for incremental timers, see reference manual for more info.

Own Id: OTP-6441

Aux Id: Seq 10349

Miscellaneous minor performance improvements of the text codec's.

Own Id: OTP-6185

Fixed bugs and malfunctions

Missing documentation link in module megaco_user.

Own Id: OTP-6578

Incompatibilities

The interface of the megaco_compressed callback module has been changed, see the megaco_edist_compress behaviour module for more details.

Own Id: OTP-6609

Megaco 3.5.3

Version 3.5.3 supports code replacement in runtime from/to version 3.5.2, 3.5.1.1, 3.5.1 and 3.5 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

Using the call function at high load could cause replies from other transactions to be returned also.

At high load, when a process calls the function call, which times out, then makes another call, it is possible that the reply to the first request arrives while the process is waiting for reply to the second request. As no checks were made if the reply was actually the expected (transaction-id), this reply was also included in the result.

This problem has been fixed by calling the megaco_user callback function handle_unexpected_trans if unexpected transactions are received.

Own Id: OTP-6549

Aux Id: Seq 10598

Miscellaneous minor corrections, such as removing "dead code". Detected by dialyzer.

Own Id: OTP-6520

Incompatibilities

-

Megaco 3.5.2

Version 3.5.2 supports code replacement in runtime from/to version 3.5.1.1, 3.5.1 and 3.5 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

Minor improvement to the text codec error reporting.

Own Id: OTP-6404

Fixed bugs and malfunctions

Misc cleanup to eliminate some dialyzer warnings [dialyzer].

Own Id: OTP-6503

Improper text encoding of EventSpecs. All codec versions [dialyzer].

Own Id: OTP-6490

Missing (link) anchors.

Own Id: OTP-6422

Incompatibilities

-

Megaco 3.5.1

Version 3.5.1 supports code replacement in runtime from/to version 3.5, 3.4.4 and 3.4.3 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

When replies arrive during a call to megaco:cancel there is a raise condition possibility. This has been eliminated.

Own Id: OTP-6276

Aux Id: Seq 10450

MG receiving a request, when the reply to the service-change has not yet been received (505) (either because it's been lost or because the MGC is erroneous). This will now result in a call to handle_trans_reply with the UserReply: .

Own Id: OTP-6275

Aux Id: Seq 10458

Incompatibilities

-

Megaco 3.5

Version 3.5 supports code replacement in runtime from/to version 3.4.4 and 3.4.3 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

All error/warning messages from the megaco application will be tagged in such a way that they will be easy to identify (and search for in logs).

Own Id: OTP-6223

Aux Id: Seq 10423

The allowed return values of the send_message function of the megaco_transport callback module has been extended (to allow the transport module to cancel the message sending), see the functions call, handle_trans_reply, handle_trans_ack and send_message for more info.

Own Id: OTP-6253

Aux Id: Seq 10423

Fixed bugs and malfunctions

A minor problem related to the passage of the pending limit could potentially prevent the reply info to be retained when it should have been removed. Also, the user will not be informed about the passing of the pending limit in this special case.

Own Id: OTP-6256

Incompatibilities

-

Megaco 3.4.4

Version 3.4.4 supports code replacement in runtime from/to version 3.4.3, 3.4.2, 3.4.1 and 3.4 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

Improved documentation of call return values.

Own Id: OTP-6219

Fixed bugs and malfunctions

There was still one case when "pending limit exceeded" was reported as a message error instead of transaction error. This has been fixed.

Own Id: OTP-6217

Aux Id: Seq 10415

Incompatibilities

-

Megaco 3.4.3

Version 3.4.3 supports code replacement in runtime from/to version 3.4.2, 3.4.1 and 3.4 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

Added a number of v3 related error codes (defined in H248.08).

Own Id: OTP-6170

Aux Id: Seq 10372

Fixed bugs and malfunctions

Added check for the illegal option reply_data in the Options (third) argument to the call function. The valid options was documented but never checked.

Own Id: OTP-6171

Aux Id: Seq 10345

Incompatibilities

A call to the function call with the illegal option, reply_data, will now result in an result.

Own Id: OTP-6171

Aux Id: Seq 10345

Megaco 3.4.2

Version 3.4.2 supports code replacement in runtime from/to version 3.4.1, 3.4, 3.3.5, 3.3.4, 3.3.3, 3.3.2, 3.3.1 and 3.3 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

Pending limit exceeded error message was incorrectly composed as a message error instead of a TransactionReply (transactionError) error.

Own Id: OTP-6148

Aux Id: Seq 10337

Incompatibilities

The ErrorDescriptor of the pending limit exceeded error is now encapsulated within an TransactionReply instead of the messageBody.

Own Id: OTP-6148

Aux Id: Seq 10337

Megaco 3.4.1

Version 3.4.1 supports code replacement in runtime from/to version 3.4, 3.3.5, 3.3.4, 3.3.3, 3.3.2, 3.3.1 and 3.3 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

Incorrect version string(s) in appup file. Most of the version strings in the appup file was malformed, which most likely made up-/downgrade impossible.

Own Id: OTP-6113

Fixed release notes history.

Own Id: OTP-6108

Incompatibilities

-

Megaco 3.4

Version 3.4 supports code replacement in runtime from/to version 3.3.3, 3.3.2, 3.3.1 and 3.3 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

Handling failure to send reply. Previously, when megaco was unable to send a reply (built from the action list returned by handle_trans_request), nothing was done, except for sending an error message. This has now been changed so that the error will be returned to the user via a call to the callback function, handle_trans_ack (unless ).

Own Id: OTP-6055

Add possibility to override send options when sending reply messages. This is done by adding another return alternative to the handle_trans_request and handle_trans_long_request callback function(s).

Own Id: OTP-6052

Aux Id: Seq 10284

Added another config option . The purpose of this option is to make the megaco application to continue re-sending requests, even after having received a pending message, until it receives the reply or it gives up (timeout).

See user_info and conn_info for more info.

Own Id: OTP-6051

Aux Id: Seq 10284

Modify the way the stack handles the reply-timer. Now, if an incremental timer is used, every time there is an intermediate timeout, the timer is restarted (just as before) but the reply is also resent.

See user_info and conn_info for more info.

Own Id: OTP-6048

Aux Id: Seq 10284

Added the possibility to conditionally request immediate acknowledgement of a reply (when at least one pending message has been sent).

This is done by adding another return value for the handle_trans_request callback function.

Own Id: OTP-6030

Aux Id: Seq 10270

The SDP support has received a major updated. Added two new function's to decode and encode SDP.

Own Id: OTP-5980

Added support for another pre version of v3 (). This is based on the final version of the standard, but does not include support for segments.

Own Id: OTP-5769

Fixed bugs and malfunctions

Removed unnecessary error report. In a special case two (error_logger) error reports could be sent: When receiving a transaction request for which an reply, with immediate-ack-requested, has already been send, the reply is resent. But if the sending fails, two (error_logger) error reports is sent. This has been corrected (so that only one is sent).

Own Id: OTP-6090

Aux Id: Seq 10308

Bad formated debug printout in transaction sender.

Own Id: OTP-6089

Incompatibilities

All of the old SDP api function(s) has been removed.

Own Id: OTP-5980

Megaco 3.3.4

Version 3.3.4 supports code replacement in runtime from/to version 3.3.3, 3.3.2, 3.3.1 and 3.3 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

Misc Dialyzer warnings.

Own Id: OTP-6076

Incompatibilities

-

Megaco 3.3.3

Version 3.3.3 supports code replacement in runtime from/to version 3.3.2, 3.3.1 and 3.3 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

Flex driver split into two separate. One for use in threaded runtime system (OTP built with e.g. ), one for non-threaded runtime systems.

Own Id: OTP-6046

Fixed bugs and malfunctions

-

Incompatibilities

-

Megaco 3.3.2

Version 3.3.2 supports code replacement in runtime from/to version 3.3.1, 3.3 and 3.2.7 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

Improve timer documentation.

Own Id: OTP-6022

Aux Id: Seq 10266

Fixed bugs and malfunctions

[text] The parser has been made more strict with regard to what ContextID values will be accepted. , and will no longer be accepted.

Own Id: OTP-6017

Aux Id: Seq 10265

Incompatibilities

-

Megaco 3.3.1

Version 3.3.1 supports code replacement in runtime from/to version 3.3 and 3.2.7 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

[text] The text encoder (both pretty and compact) encodes terminationIDList incorrectly. This effects MuxDescriptor This applies to all versions.

Own Id: OTP-5993

Aux Id: Seq 10248

Incompatibilities

-

Megaco 3.3

Version 3.3 supports code replacement in runtime from/to version 3.2.7 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

Added a utility function to facilitate pretty-printing of messages, see token_tag2string.

Own Id: OTP-5973

Aux Id: Seq 10224

Fixed bugs and malfunctions

Fixed documentation after OTP-5953. The new info print functions where not documented, but the old, and deprecated, where still.

Own Id: OTP-5965

Incompatibilities

-

Megaco 3.2.7

Version 3.2.7 supports code replacement in runtime from/to version 3.2.6, 3.2.5 and 3.2.4 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

Updated configure script to handle smp-support.

Own Id: OTP-5952

Added new version info print function(s).

Own Id: OTP-5953

Fixed bugs and malfunctions

Code cleanup: Compiler warnings: variable X is unused.

Own Id: OTP-5948

Incompatibilities

The old version info print function, format_versions/1, have been deprecated.

Own Id: OTP-5953

Megaco 3.2.6

Version 3.2.6 supports code replacement in runtime from/to version 3.2.5, 3.2.4 and 3.2.3 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

Improve error message format on (reply) decode error.

Own Id: OTP-5918

Aux Id: Seq 10199

Fixed bugs and malfunctions

Wrong binary name resolver used for prev3b (prev3a).

Own Id: OTP-5919

When using ber_bin-codec and option {version3,prev3b} the wrong asn1 and transform modules (prev3a) where used.

Own Id: OTP-5920

Incompatibilities

-

Megaco 3.2.5

Version 3.2.5 supports code replacement in runtime from/to version 3.2.4 and 3.2.3 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

Aligned the user_info and conn_info functions regarding trans_id retrieval.

Own Id: OTP-5887

Aux Id: Seq 10184

Incompatibilities

The conn_info function once again returns the next transaction id.

Own Id: OTP-5887

Aux Id: Seq 10184

Megaco 3.2.4

Version 3.2.4 supports code replacement in runtime from/to version 3.2.3 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

Documentation of upgrade_receive_handle missing one argument ().

Own Id: OTP-5867

Documentation of conn_info did not document legal value .

Own Id: OTP-5879

Aux Id: Seq 10176

Documentation of conn_info did not document legal value .

Own Id: OTP-5880

Aux Id: Seq 10177

Improper [text] encode of localControlDescriptor. Incorrectly allowed zero length list of LocalParm. All versions (v1, v2, v3 [prev3a, prev3b]).

Own Id: OTP-5882

Function format_versions documentation with wrong arity.

Own Id: OTP-5885

Timer recalculation fails when receiving pending message if the timer is of the type and the field has the value .

Own Id: OTP-5886

Aux Id: Seq 10181

Incompatibilities

list of now at least has to be of length 1.

Own Id: OTP-5882

Megaco 3.2.3

Version 3.2.3 supports code replacement in runtime from/to version 3.2.2, 3.2.1 and 3.2 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

Assumed a more strict approach to the return values of the callback functions of the megaco_user behaviour. Now, a return value other then what is described in the behaviour documentation, will result in a warning message.

Except for the handle_trans_request/3 and handle_trans_long_request/3, which still results in error messages.

Own Id: OTP-5830

Aux Id: Seq 10148

Introduced a strict version control (strict_version) connection info and user info option. See the user_info and conn_info functions for more info.

Own Id: OTP-5839

Fixed bugs and malfunctions

Digit Map: Improper handling of duration. eval_digit_map and test_digit_event.

Own Id: OTP-5826

Aux Id: Seq 10085

The documentation of the call and cast functions was unclear regarding pre-encoded actions.

Own Id: OTP-5833

Aux Id: Seq 10146

The prev3b text codec's failed to properly decode an auditReply with ErrorDescriptor.

Own Id: OTP-5836

Aux Id: Seq 10155

Incompatibilities

The ok return value from test_digit_event and eval_digit_map has been changed.

Own Id: OTP-5826

Aux Id: Seq 10085

Megaco 3.2.2

Version 3.2.2 supports code replacement in runtime from/to version 3.2.1 and 3.2 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

Digit Map: Megaco does not handle "unexpected event" according to chapter 7.1.14.5 point 5. See eval_digit_map and test_digit_event.

Own Id: OTP-5799

Aux Id: Seq 10085

The text codec of prev3b should handle encoding/decoding of indAudMediaDescriptor as specified in the final version of the v3 spec. This is backward compatible and more aligned with the ASN.1.

Own Id: OTP-5803

Aux Id: Seq 10119

Flex scanner cannot handle empty local/remote descriptors.

Own Id: OTP-5804

Aux Id: Seq 10119

Text codecs does not handle messages of unsupported versions (or with incorrect version) in a good way.

Own Id: OTP-5805

Aux Id: Seq 10131

The documentation of the reply-timer was unclear.

Own Id: OTP-5816

Aux Id: Seq 10142

Incompatibilities

The ok return value from test_digit_event and eval_digit_map has been changed to accommodate for this problem.

Own Id: OTP-5799

Aux Id: Seq 10085

Megaco 3.2.1

Version 3.2.1 supports code replacement in runtime from/to version 3.2 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

In order to allow the user to drop (ignore) a transaction request a new return value, , has been added to the handle_trans_request/3 callback function.

Own Id: OTP-5725

Aux Id: Seq 10084

Fixed bugs and malfunctions

Text encoding of the termination id list in contextTerminationAudit incorrect. Missing { }. All versions.

Own Id: OTP-5793

Aux Id: Seq 10116

Incompatibilities

-

Megaco 3.2

Version 3.2 supports code replacement in runtime from/to version 3.1 and 3.0.1 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

Added support for another pre version of v3 (). This is basically the same as except that context priority (in contextProperties) has been "fixed" so that it is backward compatible with v2.

Own Id: OTP-5717

Fixed bugs and malfunctions

The (digit map) test and eval function(s) was lacking result info on what kind of completion was done; or .

Own Id: OTP-5750

Aux Id: Seq 10085

Incompatibilities

The (successfull) return value from the test_digit_event and eval_digit_map has been changed.

Own Id: OTP-5750

Aux Id: Seq 10085

Megaco 3.1

Version 3.1 supports code replacement in runtime from/to version 3.0.1 and 3.0 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

The has been tweaked so that the max_retries field can now also take the value . This means that the only way to actually restart the timer is if some external event occurs, e.g. a pending message when the long request timer is running. That is, if the timeout time actually expires, then so does the timer.

Own Id: OTP-5619

Aux Id: Seq 9845

Added function format_versions/1 to print the extended version info produced by the versions1 and versions2 functions.

Own Id: OTP-5664

Fixed bugs and malfunctions

Incorrect text encoding of embedded Events.

Own Id: OTP-5601

Incorrect text encoding of embedded Signal.

Own Id: OTP-5600

Misc bugs detected by Dyalizer.

Own Id: OTP-5597

Encoding of SDP was in text not done strictly according RFC2327. Each line should be terminated with carriage return and newline (0x0d0a), but was only terminated with single newline (0x0a).

Own Id: OTP-5542

Aux Id: Seq 9669

Incompatibilities

-

Megaco 3.0.1

Version 3.0.1 supports code replacement in runtime from/to version 3.0 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

Pending limit cleanup error's. In some situations (high load), reply-records where never removed, blocking new requests with the same transaction id.

Own Id: OTP-5401

Added utility functions to retrieve some system and application info, see versions1 and versions2.

Own Id: OTP-5446

When the enable_trace function is called with the argument, it sets up so that trace events are written as plain text to the given file (using ).

Own Id: OTP-5447

Incompatibilities

The argument to the function enable_trace no longer sets up to write the trace events directly to file but instead to be written to a plain text file using .

Also enable_trace no longer accepts the argument .

Own Id: OTP-5447

Megaco 3.0
Improvements and new features

Implementation of the Megaco v2 corrigendum 1 (03/2004).



This means in short:

The ModemDescriptor has been deprecated. If this descriptor is found in a received message it will be ignored (removed from the message).

If an attempt is made to encode a message containing a ModemDescriptor, an error will be returned.

If in the binary codec case, encoding-config contains native, then the ModemDescriptor will however be included in the message when encoding and also decoded. This means that it in this case it is up the user to never include the ModemDescriptor in a transmitted message and to ignore it, if received.

Addition of the EmergencyOffToken, which is used in the contextProperty.

Own Id: OTP-5204

Added receiving pending limit config property. This is the limit for the number of pending messages that is accepted before a request is considered "a lost cause".

Own Id: OTP-5220

Added support for preliminary version 3. Based on TD-33.

See chapter Handling megaco versions on how to configure and use the preliminary version 3 (prev3a).

Own Id: OTP-5236

Added configure thread support.

Own Id: OTP-5351

Fixed bugs and malfunctions

When text encoding the ServiceChangeParm in v2, the serviceChangeInfo field was ignored.

Own Id: OTP-5352

When text parsing serviceChangeParm in v2, all of auditItem was put into the auditToken field of the AuditDescriptor (the serviceChangeInfo field of the ServiceChangeParm record). The indAudterminationAudit should go into the auditPropertyToken field.

Own Id: OTP-5353

Binary name resolver was based on RFC 2885 (version 0.8 of the megaco standard). Among other things the package id numbering was incorrect. This is the case both for version 1 and 2.

Own Id: OTP-5272

Incompatibilities

Package number scheme (among other things) was changed in version 1 of the standard..

Own Id: OTP-5272

The config property orig_pending_limit has been renamed to sent_pending_limit.

Own Id: OTP-5220

Megaco 2.1.8

Version 2.1.8 supports code replacement in runtime from/to version 2.1.7 and 2.1.6 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

The error counter medGwyGatewayNumErrors did not work. This counter is incremented by the megaco application when decode of a message fails. Due to the construction of the decoders, nothing beyond the error reason (in the text case, basically an unintelligible list of tokens) is returned. E.g. not the Mid needed to be able to deduce which MG (conn-handle), this message came from. This resulted in an increment of the "global" medGwyGatewayNumErrors counter instead of the connection specific. This has been fixed. In the text case by adding a mini decoder, that basically only decodes the message as far as the Mid (if the error is in or before the Mid, then this decoder also fails).

Own Id: OTP-5296

Aux Id: Seq 9669

When the megaco:cancel/2 function is called, the megaco application is supposed to perform a cleanup. E.g. remove aut-dated request and reply records. For the reply-records this did not work, since it only removed those record which had the state field set to wait_for_ack, and not aborted! If the state had been set to aborted and not yet been removed (which normally happens when the reply_timer times out) when the disconnect and cancel functions where called, those records would never be removed. This means that if eventually a transaction was received which had the same transaction-id as the aborted reply, this would just be ignored!

Own Id: OTP-5310

Aux Id: Seq 9668

Incorrect definition of hexdig in the flex-scanner.

Angelo Contardi

Own Id: OTP-5312

Various cleanup of the v2 text parser:

1) Removed unused nonterminal and rule digitMapName.

2) Token 'TimeStampToken' also a safeToken.

Angelo Contardi

Own Id: OTP-5313

Incompatibilities

-

Megaco 2.1.7

Version 2.1.7 supports code replacement in runtime from/to version 2.1.6, 2.1.5, 2.1.4, 2.1.3, 2.1.2, 2.1.1 and 2.1 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

The text decoders failed to decode the contextRequest with a contextAudit (ContextAttrAuditRequest).

Own Id: OTP-5290

Incompatibilities

-

Megaco 2.1.6

Version 2.1.6 supports code replacement in runtime from/to version 2.1.5, 2.1.4, 2.1.3, 2.1.2, 2.1.1 and 2.1 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

Minor error handling improvement to the text encoder.

Own Id: OTP-5193

Fixed bugs and malfunctions

The megaco text codec failed to properly encode a message containing no or an empty terminationAudit list or possibly a terminationAudit list with only an "empty" emptyDescriptor (e.g. an AuditDescriptor without any values; auditToken is either asn1_NOVALUE or []). This effected AmmsReply and auditOther (AuditResult) and both v1 and v2.

Own Id: OTP-5186

Aux Id: Seq 9226

Version 2 codec corrections: Incorrectly transformed (encoded and decoded) IndAudStreamDescriptor (binary), encoded IndAudMediaDescriptor and IndAudStreamDescriptor (text). Incorrectly decoded IndAudMediaDescriptor (text).

Own Id: OTP-5201

Incompatibilities

-

Megaco 2.1.5

Version 2.1.5 supports code replacement in runtime from/to version 2.1.4, 2.1.3, 2.1.2, 2.1.1 and 2.1 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

Bad error message when encoding invalid termination id.

Own Id: OTP-5133

Aux Id: Seq 9153

The included tcp transport module had a possible message queue accumulation loophole. If the connection is terminated between the calls gen_tcp:accept/1 and gen_tcp:controlling_process/2 we did not clean up the message queue. Also, if controlling_process fails, a cleanup must be done.

Own Id: OTP-5130

Incompatibilities

-

Megaco 2.1.4

Version 2.1.4 supports code replacement in runtime from/to version 2.1.3, 2.1.2, 2.1.1 and 2.1 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

Failure to decode indAudLocalControlDescriptor with more then one indAudlocalParm.

This applies only to version 2.

Own Id: OTP-5106

Incompatibilities

-

Megaco 2.1.3

Version 2.1.3 supports code replacement in runtime from/to version 2.1.2, 2.1.1 and 2.1 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

Failure to encode a ActionReply with empty contextReply (asn1_NOVALUE) and commandReply ([]). Failure to decode ActionReply with error descriptor with non-empty contextReply and/or commandReply.

This applies to both version 1 and 2.

Own Id: OTP-5085

Incompatibilities

-

Megaco 2.1.2

Version 2.1.2 supports code replacement in runtime from/to version 2.1.1 and 2.1 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

Encoding of a MediaDescriptor fails if the streams part is empty (asn1_NOVALUE).

Own Id: OTP-5068

Incompatibilities

-

Megaco 2.1.1

Version 2.1.1 supports code replacement in runtime from/to version 2.1 except when using any of the drivers (flex for text or asn1 for binary).

Improvements and new features

-

Fixed bugs and malfunctions

A pretty text message containing an ObservedEvents without timestamp, will fail to decode. This effects both v1 and v2.

Own Id: OTP-5042

During node restart in a high load scenario, the megaco_messenger:receive_reply_remote function could be called on a node before the megaco app has actually been started. This will result in a crash (EXIT with badarg). This is now handled in the same way as if the request was not found (with a call to the callback function handle_unexpected_trans).

Own Id: OTP-5025

Aux Id: Seq 8658

Incompatibilities

-

Megaco 2.1
Improvements and new features

Allow separately encode action requests. Handle sending of those previously encoded action requests as binaries (as well as lists of action requests).

See encode_actions, call and cast.

Introduce a transaction sender process (one for each connection) which will accumulate transactions and send several in one message.

See transaction sender, user_info and conn_info.

New encoding-config options for the erl_dist encoder which makes it possible to compress the megaco messages. This makes the erl_dist encoded message much more compact (about 1/3 of the size).

See megaco_compressed.

Fixed bugs and malfunctions

Text parser(s) did not handle parsing of the StreamId field of RequestedEvent and SecondRequestedEvent.

Own Id: OTP-4974

Repeated transaction request receiving when exceeding pending limit will cause the message handling process to crash.

Own Id: OTP-4956

Aux Id: Seq 8445

Text parser did not handle auditReturnItem properly, as defined in IGv11.

Own Id: OTP-4950

Missing [text] servChgReplyParm consistency check.

Own Id: OTP-4949

Incorrect handling of comments in text messages.

Own Id: OTP-4946

Missing [text] serviceChangeParm consistency check.

Own Id: OTP-4945

Incompatibilities

Text parser did not handle auditReturnItem properly, as defined in IGv11. The result which was supposed to have been presented as the tuple: in the termination audit list, was instead entered as in the termination audit list. This has been fixed.

Own Id: OTP-4950

In previous releases there where a couple of user and connection config items dealing with accumulating transaction ack sending. These has all been renamed due to the introduction of the transaction sender.

See transaction sender, user_info and conn_info.

Megaco 2.0.1
Improvements and new features

-

Fixed bugs and malfunctions

Megaco did not handle IPv6-addresses.

Own Id: OTP-4920

Text encoding of hex-digits sometimes incorrect.

Own Id: OTP-4921

Incompatibilities

-

Megaco 2.0
Improvements and new features

Support for both version 1 and 2 of the Megaco standard, updated according with IGv10-13.

Version selection is described in chapter Handling megaco versions 1 & 2.

It is now possible to use the ASN.1 linked in driver for decode/encode of messages (encoding config driver).

See chapter Configuration of binary encoding module(s).

Added a new configuration parameter, orig_pending_limit, to support the xOriginatingPendingLimit (x = MG or MGC) property in the root package.

See the orig_pending_limit parameter of the user_info function (also conn_info).

Added a new configuration parameter, threaded. This tells the megaco app, that all transaction requests in a message should be executed in parallel (e.g. each in it's own process).

See the threaded parameter of the user_info function (also conn_info).

Added behaviour modules megaco_transport and megaco_encoder.

Added new (message) test functions to the megaco module, see test_request and test_reply.

Minor improvements to the tracing.

Minor improvements to the simple example.

Fixed bugs and malfunctions

Update of the request timer incorrect when receiving a pending message. Could cause an exit of the process handling the message and a subsequent call to the callback function.

Own Id: OTP-4836

Failed stopping the request timer when receiving a reply.

The only effect this had was that the request timer possibly ran one extra time (without doing anything).

Own Id: OTP-4843

Incompatibilities

signalsDescriptor has changed i v2

ServiceChangeProfile has changed in v2

Megaco 1.2.3
Improvements and new features

-

Fixed bugs and malfunctions

Megaco re-transmission loop, when setting the long request timer to an incremental timer. Megaco changes to the long request timer when receiving an pending message (after having sent a request). Each time the (long) timer expire, it will incorrectly result in an re-send of the request. This is meaningless since we know from the received pending that the "other side" has received the request and is working on it. Furthermore, when in this case the "other side" receives the request again, it will send another pending message. Receiving a pending message in this case will restart the timer (reset it to the initial values). This means that the timer will actually never fully expire and the two stacks will continue to exchange request/pending messages for as long as the "other side" is working on the request.

Own Id: OTP-4760

Aux Id: Seq 8003

Incompatibilities

-

Known bugs and problems

-

Megaco 1.2.2

Version 1.2.2 supports code replacement in runtime from/to version 1.2.1 and 1.2.

Improvements and new features

Only spawn a process for the reply-timer if the user uses three-way-handshake.

Own Id: OTP-4729

Fixed bugs and malfunctions

Encoding and decoding of the hexdig in AuthenticationHeader incorrect.

Own Id: OTP-4710

Incompatibilities

When downgrading form 1.2.2, reply-timers started when running 1.2.2 will not be properly handled since the format has changed. An error message will be printed when they expire.

Known bugs and problems

-

Megaco 1.2.1

Version 1.2.1 only supports code replacement in runtime from/to version 1.2.

Improvements and new features

This is just a code up-/downgrade cleanup release. I.e. It's the same as version 1.2 minus the ugly stuff needed to handle up-/downgrade from/to version 1.1.2, 1.1.1 and 1.1.0.

Fixed bugs and malfunctions

-

Incompatibilities

-

Known bugs and problems

-

Megaco 1.2

Version 1.2 supports code replacement in runtime from/to version 1.1.2, 1.1.1 and 1.1.0.

Improvements and new features

It is now possible to send more then one transaction (request) in a message. See call and cast.

Req Id: M[4]-1

Own Id: OTP-4589

Two new parameters for user and connection info has been added: and . These are used together with the flag and control whether the acks should be sent immediately or accumulated (and sent later). Note that this has nothing to do with the -flag in reply transactions. See user_info and conn_info.

Own Id: OTP-4669

Fixed bugs and malfunctions

TCP transport supervision error (cut-and-paste error).

The megaco_tcp worker child was started as if it where a supervisor (and not a worker) and with a dependency to megaco_tcp_connection_sup (which it has none)

Own Id: OTP-4649

Encoding of transaction ack fails with id ranges.

This was not really a problem in previous releases since such a message was never created (Ack was, possibly, sent for each received transaction reply).

Own Id: OTP-4652

Incompatibilities

-

Known bugs and problems

Neither the TCP nor the UDP transport mechanisms are part of the megaco supervision tree. This makes code up-/downgrade difficult when either of them are used as transport.

This will be fixed in a future release of megaco.

Megaco 1.1.2

Version 1.1.2 supports code replacement in runtime from/to version 1.1.1 and 1.1.0.

Improvements and new features

-

Fixed bugs and malfunctions

Service change reason text encoding now always quoted string.

Peter-Henry Mander

Own Id: OTP-4632

Incompatibilities

-

Known bugs and problems

-

Megaco 1.1.1

Version 1.1.1 supports code replacement in runtime from/to version 1.1.0.

Improvements and new features

Added support for the Megaco mib.

Fixed bugs and malfunctions

Result of catch gen_udp:open not properly handled.

Own Id: OTP-4566

Incompatibilities

-

Known bugs and problems

-

Megaco 1.1.0

Version 1.1.0 does not support code replacement in runtime from previous versions.

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

Fixed bugs and malfunctions

Decode of oneStream incorrect.

.

Own Id: OTP-4490

Transaction id counter wrapping incorrect when Max is .

Incorrectly the documentation defined a connection info item . It should have been .

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

Incompatibilities

-

Known bugs and problems

-

Megaco 1.0.4

Version 1.0.4 supports code replacement in runtime from/to version 1.0.2 and 1.0.3.

Improvements and new features

Adding utility functions for megaco tracing.

Own Id: OTP-4339

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 described 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

Incompatibilities

-

Known bugs and problems

-

Megaco 1.0.3
Improvements and new features

-

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 field in MediaDescriptor, has been made optional in order to comply with IGv6 6.50. It does also mean that the new default value is .

Own Id: OTP-4288

The user arguments was not supplied to the callback function as described by megaco_user.

Own Id: OTP-4290

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.

Known bugs and problems

-

Megaco 1.0.2
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.

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 unnecessary '-lfl' link option.

Own Id: OTP-4224

Installed source was not placed in their proper (sub-) directory.

Incompatibilities

-

Known bugs and problems

-

Megaco 1.0.1
Improvements and new features

-

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

Incompatibilities

-

Known bugs and problems

-

Megaco 1.0
Improvements and new features

Flex scanner: Added scanner to system info.

Fixed bugs and malfunctions

-

Incompatibilities

-

Known bugs and problems

-