Bug #3510

Make sure the ECU (Error Concealment Unit) is working correctly

Added by fixeria over 2 years ago. Updated 4 months ago.

Target version:
Start date:
Due date:
% Done:


Spec Reference:


In 69d0d506775c82eb2bde66fe748100a94a3173a0 "osmo-bts-trx: perform error concealment for FR frames",
the ECU (Error Concealment Unit) was introduced. In short, if one (or more) speech frame is lost,
one may experience some unpleasant audio effects. The ECU is used to avoid such effects.

While working on audio support in OsmocomBB, I have discovered that the libosmocoding API
actually produces decoded speech frames in RTP format, and I guess the ECU implementation
may expect speech frames in canonical format.

I think it makes sense to:

  • clarify, which frame format is expected by the libosmocodec's ECU FR implementation?
    • add some comments there (I couldn't find any);
  • manually test with a regular phone (by dripping TCH bursts somehow);
  • add some TTCN-3 testing coverage;


#1 Updated by laforge about 2 years ago

  • Assignee set to tnt

#2 Updated by tnt over 1 year ago

The RTP order and "canonical order" are the same (and different from the order "on-the-air" where bits are priority shuffled).
Only difference is the "marker" in the first 4 bits, but we never use the canonical format anywhere.

The ECU takes a frame in RTP payload format for sure and AFAICT it works and it has a test included in libosmocore.

#3 Updated by tnt over 1 year ago

fixeria I submitted to improve the documentation.

Other than that, AFAICT the ECU works "fine" (i.e. as I understand GSM 06.11)

#4 Updated by laforge 4 months ago

  • Status changed from New to Resolved

Also available in: Atom PDF

Add picture from clipboard (Maximum size: 48.8 MB)