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.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.1.1 Improvements and new features

-

#### 1.1.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.1.3 Incompatibilities

-

### 1.2 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.2.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.2.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.2.3 Incompatibilities

-

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

#### 1.3.1 Improvements and new features

- Improved documentation of call return values.
  Own Id: OTP-6219

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

#### 1.3.3 Incompatibilities

-

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

#### 1.4.1 Improvements and new features

- Added a number of v3 related error codes (defined in H248.08).
  Own Id: OTP-6170
  Aux Id: Seq 10372

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

#### 1.4.3 Incompatibilities

- A call to the function call with the illegal option, reply_data, will now result in an `{error, term()}` result.
  Own Id: OTP-6171
  Aux Id: Seq 10345

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

#### 1.5.1 Improvements and new features

-

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

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

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

#### 1.6.1 Improvements and new features

-

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

#### 1.6.3 Incompatibilities

-

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

#### 1.7.1 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 `ack_action() = discard_ack`).
  Own Id: OTP-6055
- Add possibillity 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 `long_request_resend`. 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 possibillity to conditionally request immediate acknowledgement of a reply (when atleast 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 (`prev3c`). This is based on the final version of the standard, but does not include support for segments.
  Own Id: OTP-5769

#### 1.7.2 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 immediade-ack-requested, has already been send, the reply is resent. But if the sending failes, 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

#### 1.7.3 Incompatibilities

- All of the old SDP api function(s) has been removed.
  Own Id: OTP-5980

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

#### 1.8.1 Improvements and new features

-

#### 1.8.2 Fixed bugs and malfunctions

- Misc Dialyzer warnings.
  Own Id: OTP-6076

#### 1.8.3 Incompatibilities

-

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

#### 1.9.1 Improvements and new features

- Flex driver split into two separate. One for use in threaded runtime system (OTP built with e.g. `--enable-threads`), one for non-threaded runtime systems.
  Own Id: OTP-6046

#### 1.9.2 Fixed bugs and malfunctions

-

#### 1.9.3 Incompatibilities

-

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

#### 1.10.1 Improvements and new features

- Improve timer documentation.
  Own Id: OTP-6022
  Aux Id: Seq 10266

#### 1.10.2 Fixed bugs and malfunctions

- [text] The parser has been made more strict with regard to what ContextID values will be accepted. `0x0`, `0xFFFFFFFE` and `0xFFFFFFFF` will no longer be accepted.
  Own Id: OTP-6017
  Aux Id: Seq 10265

#### 1.10.3 Incompatibilities

-

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

#### 1.11.1 Improvements and new features

-

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

#### 1.11.3 Incompatibilities

-

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

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

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

#### 1.12.3 Incompatibilities

-

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

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

#### 1.13.2 Fixed bugs and malfunctions

- Code cleanup: Compiler warnings: variable X is unused.
  Own Id: OTP-5948

#### 1.13.3 Incompatibilities

- The old version info print function, format_versions/1, have been deprecated.
  Own Id: OTP-5953

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

#### 1.14.1 Improvements and new features

- Improve error mesage format on (reply) decode error.
  Own Id: OTP-5918
  Aux Id: Seq 10199

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

#### 1.14.3 Incompatibilities

-

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

#### 1.15.1 Improvements and new features

-

#### 1.15.2 Fixed bugs and malfunctions

- Aligned the user_info and conn_info functions regarding trans_id retreival.
  Own Id: OTP-5887
  Aux Id: Seq 10184

#### 1.15.3 Incompatibilities

- The conn_info function once again returns the next transaction id.
  Own Id: OTP-5887
  Aux Id: Seq 10184

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

#### 1.16.1 Improvements and new features

-

#### 1.16.2 Fixed bugs and malfunctions

- Documentation of upgrade_receive_handle missing one argument (`NewHandle`).
  Own Id: OTP-5867
- Documentation of conn_info did not document legal `Item` value `local_mid`.
  Own Id: OTP-5879
  Aux Id: Seq 10176
- Documentation of conn_info did not document legal `Item` value `remote_mid`.
  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 failes when receiving pending message if the timer is of the type `megaco_incr_timer` and the `max_retries` field has the value `infinity_restartable`.
  Own Id: OTP-5886
  Aux Id: Seq 10181

#### 1.16.3 Incompatibilities

- `localControlDescriptor` list of `localParm` now atleast has to be of length 1.
  Own Id: OTP-5882

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

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

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

#### 1.17.3 Incompatibilities

- The ok return value from test_digit_event and eval_digit_map has been changed.
  Own Id: OTP-5826
  Aux Id: Seq 10085

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

#### 1.18.1 Improvements and new features

-

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

#### 1.18.3 Incompatibilities

- The ok return value from test_digit_event and eval_digit_map has been changed to accomodate for this problem.
  Own Id: OTP-5799
  Aux Id: Seq 10085

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

#### 1.19.1 Improvements and new features

- In order to allow the user to drop (ignore) a transaction request a new return value, `ignore_trans_request`, has been added to the handle_trans_request/3 callback function.
  Own Id: OTP-5725
  Aux Id: Seq 10084

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

#### 1.19.3 Incompatibilities

-

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

#### 1.20.1 Improvements and new features

- Added support for another pre version of v3 (`prev3b`). This is basically the same as `prev3a` except that context priority (in contextProperties) has been "fixed" so that it is backward compatible with v2.
  Own Id: OTP-5717

#### 1.20.2 Fixed bugs and malfunctions

- The (digit map) test and eval function(s) was lacking result info on what kind of completion was done; `full` or `unambiguous`.
  Own Id: OTP-5750
  Aux Id: Seq 10085

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

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

#### 1.21.1 Improvements and new features

- The `megaco_incr_timer` has been tweaked so that the max_retries field can now also take the value `infinity_restartable`. 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

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

#### 1.21.3 Incompatibilities

-

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

#### 1.22.1 Improvements and new features

-

#### 1.22.2 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 `File` argument, it sets up `dbg` so that trace events are written as plain text to the given file (using `io:format`).
  Own Id: OTP-5447

#### 1.22.3 Incompatibilities

- The `File` argument to the function enable_trace no longer sets up `dbg` to write the trace events directly to file but instead to be written to a plain text file using `io:format`.
  Also enable_trace no longer accepts the argument `{io, Verbosity}`.
  Own Id: OTP-5447

### 1.23 Megaco 3.0

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

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

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

### 1.24 Release notes history

For information about older versions see release notes history.

Copyright © 1991-2007 Ericsson AB