Megaco Release Notes

## 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 3.9.1.1

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

#### 1.1.1 Improvements and new features

- Miscellaneous dialyzer related and test case cleanup.
  Own Id: OTP-7614

#### 1.1.2 Fixed bugs and malfunctions

-

#### 1.1.3 Incompatibilities

-

### 1.2 Megaco 3.9.1

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

#### 1.2.1 Improvements and new features

-

#### 1.2.2 Fixed bugs and malfunctions

- [text] The flex scanner did not allow an empty quotedString in propertyParm.
  Own Id: OTP-7573
  Aux Id: Seq 11062
- [text] Unable to decode a version 2 message with a topologyTriple containing an (optional) eventStream.
  Own Id: OTP-7576
  Aux Id: Seq 11066

#### 1.2.3 Incompatibilities

-

### 1.3 Megaco 3.9

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

#### 1.3.1 Improvements and new features

- [text] The text codec(s) has been optimized. The parsing of "property parameters" has been moved to the scanner(s). Which means that when decoding messages containing property parameters, using the flex scanner, decode time(s) will be reduced. The reduction depends on the message, but can be as large as 25%.
  Own Id: OTP-7431

#### 1.3.2 Fixed bugs and malfunctions

-

#### 1.3.3 Incompatibilities

-

### 1.4 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).

#### 1.4.1 Improvements and new features

-

#### 1.4.2 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

#### 1.4.3 Incompatibilities

-

### 1.5 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).

#### 1.5.1 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

#### 1.5.2 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

#### 1.5.3 Incompatibilities

-

### 1.6 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).

#### 1.6.1 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

#### 1.6.2 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

#### 1.6.3 Incompatibilities

-

### 1.7 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).

#### 1.7.1 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

#### 1.7.2 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

#### 1.7.3 Incompatibilities

-

### 1.8 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).

#### 1.8.1 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

#### 1.8.2 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

#### 1.8.3 Incompatibilities

-

### 1.9 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).

#### 1.9.1 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

#### 1.9.2 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

#### 1.9.3 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

### 1.10 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).

#### 1.10.1 Improvements and new features

-

#### 1.10.2 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

#### 1.10.3 Incompatibilities

-

### 1.11 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).

#### 1.11.1 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

#### 1.11.2 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

#### 1.11.3 Incompatibilities

-

### 1.12 Megaco 3.7

#### 1.12.1 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

#### 1.12.2 Fixed bugs and malfunctions

-

#### 1.12.3 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

### 1.13 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).

#### 1.13.1 Improvements and new features

-

#### 1.13.2 Fixed bugs and malfunctions

- Failure to parse SDP attribute FMTP rows.
  Own Id: OTP-6992
  Aux Id: Seq 10813

#### 1.13.3 Incompatibilities

-

### 1.14 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).

#### 1.14.1 Improvements and new features

-

#### 1.14.2 Fixed bugs and malfunctions

- When timers expire while a connection cancel (megaco:cancel) is in progress, there is a raise condition possibillity. This has been eliminated.
  Own Id: OTP-6921
  Aux Id: Seq 10450

#### 1.14.3 Incompatibilities

-

### 1.15 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).

#### 1.15.1 Improvements and new features

-

#### 1.15.2 Fixed bugs and malfunctions

- An empty time-zone adjustement 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

#### 1.15.3 Incompatibilities

-

### 1.16 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).

#### 1.16.1 Improvements and new features

- Minor Makefile changes.
  Own Id: OTP-6704

#### 1.16.2 Fixed bugs and malfunctions

-

#### 1.16.3 Incompatibilities

-

### 1.17 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).

#### 1.17.1 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 trueand it is a message resend.
  Own Id: OTP-6442
  Aux Id: Seq 10393
- Add abillity 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

#### 1.17.2 Fixed bugs and malfunctions

- Missing documentation link in module megaco_user.
  Own Id: OTP-6578

#### 1.17.3 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

### 1.18 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).

#### 1.18.1 Improvements and new features

-

#### 1.18.2 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

#### 1.18.3 Incompatibilities

-

### 1.19 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).

#### 1.19.1 Improvements and new features

- Minor improvement to the text codec error reporting.
  Own Id: OTP-6404

#### 1.19.2 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

#### 1.19.3 Incompatibilities

-

### 1.20 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).

#### 1.20.1 Improvements and new features

-

#### 1.20.2 Fixed bugs and malfunctions

- When replies arrive during a call to megaco:cancel there is a raise condition possibillity. 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: {error, timeout}.
  Own Id: OTP-6275
  Aux Id: Seq 10458

#### 1.20.3 Incompatibilities

-

### 1.21 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).

#### 1.21.1 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

#### 1.21.2 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

#### 1.21.3 Incompatibilities

-

### 1.22 Release notes history

For information about older versions see release notes history.

megaco 3.9.1.1
Copyright © 1991-2008 Ericsson AB