Megaco Release Notes history

## 1 Megaco Release Notes history

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

#### 1.1.1 Improvements and new features

-

#### 1.1.2 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 whould 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

#### 1.1.3 Incompatibilities

-

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

#### 1.2.1 Improvements and new features

-

#### 1.2.2 Fixed bugs and malfunctions

- The text decoders failed to decode the contextRequest with a contextAudit (ContextAttrAuditRequest).
  Own Id: OTP-5290

#### 1.2.3 Incompatibilities

-

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

#### 1.3.1 Improvements and new features

- Minor error handling improvement to the text encoder.
  Own Id: OTP-5193

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

#### 1.3.3 Incompatibilities

-

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

#### 1.4.1 Improvements and new features

-

#### 1.4.2 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 failes, a cleanup must be done.
  Own Id: OTP-5130

#### 1.4.3 Incompatibilities

-

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

#### 1.5.1 Improvements and new features

-

#### 1.5.2 Fixed bugs and malfunctions

- Failure to decode indAudLocalControlDescriptor with more then one indAudlocalParm.
  This applies only to version 2.
  Own Id: OTP-5106

#### 1.5.3 Incompatibilities

-

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

#### 1.6.1 Improvements and new features

-

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

#### 1.6.3 Incompatibilities

-

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

#### 1.7.1 Improvements and new features

-

#### 1.7.2 Fixed bugs and malfunctions

- Encoding of a MediaDescriptor fails if the streams part is empty (asn1_NOVALUE).
  Own Id: OTP-5068

#### 1.7.3 Incompatibilities

-

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

#### 1.8.1 Improvements and new features

-

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

#### 1.8.3 Incompatibilities

-

### 1.9 Megaco 2.1

#### 1.9.1 Improvements and new features

- Allow separatelly 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.

#### 1.9.2 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 constistency check.
  Own Id: OTP-4949
- Incorrect handling of comments in text messages.
  Own Id: OTP-4946
- Missing [text] serviceChangeParm constistency check.
  Own Id: OTP-4945

#### 1.9.3 Incompatibilities

- Text parser did not handle auditReturnItem properly, as defined in IGv11. The result which was supposed to have been presented as the tuple: `{emptyDescriptor, #'AuditDescriptor{}}` in the termination audit list, was instead entered as `{auditReturnItem, atom()}` 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.

### 1.10 Megaco 2.0.1

#### 1.10.1 Improvements and new features

-

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

#### 1.10.3 Incompatibilities

-

### 1.11 Megaco 2.0

#### 1.11.1 Improvements and new features

- Support for both version 1 & 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.

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

#### 1.11.3 Incompatibilities

- signalsDescriptor has changed i v2
- ServiceChangeProfile has changed in v2

### 1.12 Megaco 1.2.3

#### 1.12.1 Improvements and new features

-

#### 1.12.2 Fixed bugs and malfunctions

- Megaco re-transmission loop, when setting the long request timer to an inremental 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

#### 1.12.3 Incompatibilities

-

#### 1.12.4 Known bugs and problems

-

### 1.13 Megaco 1.2.2

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

#### 1.13.1 Improvements and new features

- Only spawn a process for the reply-timer if the user uses three-way-handshake.
  Own Id: OTP-4729

#### 1.13.2 Fixed bugs and malfunctions

- Encoding and decoding of the hexdig in AuthenticationHeader incorrect.
  Own Id: OTP-4710

#### 1.13.3 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.

#### 1.13.4 Known bugs and problems

-

### 1.14 Megaco 1.2.1

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

#### 1.14.1 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.

#### 1.14.2 Fixed bugs and malfunctions

-

#### 1.14.3 Incompatibilities

-

#### 1.14.4 Known bugs and problems

-

### 1.15 Megaco 1.2

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

#### 1.15.1 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: `accu_ack_timer` and `accu_ack_maxcount`. These are used together with the `auto_ack` flag and control whether the acks should be sent immediatly or accumulated (and sent later). Note that this has nothing to do with the `immAckRequired`-flag in reply transactions. See user_info and conn_info.
  Own Id: OTP-4669

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

#### 1.15.3 Incompatibilities

-

#### 1.15.4 Known bugs and problems

- Neither the TCP nor the UDP transport mechanisms are part of the megaco supervsion 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.

### 1.16 Megaco 1.1.2

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

#### 1.16.1 Improvements and new features

-

#### 1.16.2 Fixed bugs and malfunctions

- Service change reason text encoding now always quoted string.
  Peter-Henry Mander
  Own Id: OTP-4632

#### 1.16.3 Incompatibilities

-

#### 1.16.4 Known bugs and problems

-

### 1.17 Megaco 1.1.1

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

#### 1.17.1 Improvements and new features

- Added support for the Megaco mib.

#### 1.17.2 Fixed bugs and malfunctions

- Result of catch gen_udp:open not properly handled.
  Own Id: OTP-4566

#### 1.17.3 Incompatibilities

-

#### 1.17.4 Known bugs and problems

-

### 1.18 Megaco 1.1.0

Version 1.1.0 does not suppurt code replacement in runtime from pervious versions.

#### 1.18.1 Improvements and new features

- Reply ack timeout now results in a call to callback function handle_trans_ack/4 with AckStatus = {error, timeout}.
  Own Id: OTP-4378
- The binary codecs ber_bin and per_bin is now both compiled with the +optimize compiler flag for better runtime performance.
  Own Id: OTP-4383
- The previously included tool, et, has been moved out of the Megaco application. It is now provided as a separate application in OTP (as of R9).
  Own Id: OTP-4487
- Added attribute app_vsn to all modules.
  Own Id: OTP-4486

#### 1.18.2 Fixed bugs and malfunctions

- Decode of oneStream incorrect.
  .
  Own Id: OTP-4490
- Transaction id counter wrapping incorrect when Max is `infinity`.
  Incorrectly the documentation defined a connection info item `min_trans_id`. It should have been `trans_id`.
  Own Id: OTP-4484
- Package name check in the text parser incorrect.
  Own Id: OTP-4364
- Fixed a minor build problem causing the file 'megaco_text_parser.yrl' to not be included in the release.
  Own Id: OTP-4363

#### 1.18.3 Incompatibilities

-

#### 1.18.4 Known bugs and problems

-

### 1.19 Megaco 1.0.4

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

#### 1.19.1 Improvements and new features

- Adding utility functions for megaco tracing.
  Own Id: OTP-4339

#### 1.19.2 Fixed bugs and malfunctions

- Optional line-number configure for the megaco flex scanner incorrect.
  The intention was that line-numbering could be replaced with token number in order to improve performance. This did not work (line-numbers was always chosen). This has no runtime effect.
  Own Id: OTP-4336
- Improved error reporting from the megaco messenger module.
  Own Id: OTP-4337
- Text parsing of type octet string erroneous.
  Own Id: OTP-4357
- A message containing a transaction request without the transaction id value is incorrectly reported back to the sender with a just an ErrorDescriptor. The correct behaviour is describen in chapter 8.1.1 of RFC 3015. Now the result will be a transactioReply with transaction id = 0 and an ErrorDescriptor.
  Own Id: OTP-4359
  Aux Id: Seq 7330

#### 1.19.3 Incompatibilities

-

#### 1.19.4 Known bugs and problems

-

### 1.20 Megaco 1.0.3

#### 1.20.1 Improvements and new features

-

#### 1.20.2 Fixed bugs and malfunctions

- Handling of comments in text messages incorrect.
  For the ordinary text codec comments did not work. For the flex text codecs, double quoted strings in comments did not work.
  Own Id: OTP-4299
  Aux Id: Seq 7330
- The `streams` field in MediaDescriptor, has been made optional in order to comply with IGv6 6.50. It does also mean that the new default value is `asn1_NOVALUE`.
  Own Id: OTP-4288
- The user arguments was not supplied to the callback function `handle_unexpected_trans` as described by megaco_user.
  Own Id: OTP-4290

#### 1.20.3 Incompatibilities

- The scanner item of system info has been removed and instead been replaced by text_config. Also no longer contains any MFA info. From now on, just the text config.

#### 1.20.4 Known bugs and problems

-

### 1.21 Megaco 1.0.2

#### 1.21.1 Improvements and new features

- Added another binary decoder; per_bin.
  To be able to use the per_bin encoder the ASN.1 application of version 1.3.2 or later is needed for R8B systems. For R7B01, ASN.1 of version 1.3.1.3 or later must be used.

#### 1.21.2 Fixed bugs and malfunctions

- Memory leak in the flex scanner. Message larger then approx. 1000 bytes cannot be decoded. Will cause a core dump! Note that this will only be a problem if the flex scanner has been configured as encoding/decoding module!
  Own Id: OTP-4236
- Fixed Makefile.in for the flex scanner. Removed unneccessary '-lfl' link option.
  Own Id: OTP-4224
- Installed source was not placed in their proper (sub-) directory.

#### 1.21.3 Incompatibilities

-

#### 1.21.4 Known bugs and problems

-

### 1.22 Megaco 1.0.1

#### 1.22.1 Improvements and new features

-

#### 1.22.2 Fixed bugs and malfunctions

- The megaco application now forward's unexpected replies. This is done with a call to handle_unexpected_trans/3.
  Own Id: OTP-4212
  Aux Id: Seq 7181
- Megaco leaves entries in the megaco_replies table.
  Own Id: OTP-4213
  Aux Id: Seq 7208

#### 1.22.3 Incompatibilities

-

#### 1.22.4 Known bugs and problems

-

### 1.23 Megaco 1.0

#### 1.23.1 Improvements and new features

- Flex scanner: Added scanner to system info.

#### 1.23.2 Fixed bugs and malfunctions

-

#### 1.23.3 Incompatibilities

-

#### 1.23.4 Known bugs and problems

-

Copyright © 1991-2006 Ericsson AB