[Home]

Summary:ASTERISK-29183: Audio/Video Codecs: Format parameters get lost.
Reporter:Alexander Traud (traud)Labels:
Date Opened:2020-11-27 08:31:36.000-0600Date Closed:
Priority:MajorRegression?
Status:Open/NewComponents:Core/CodecInterface
Versions:16.15.0 18.1.0 Frequency of
Occurrence
Related
Issues:
is related toASTERISK-26498 codec formats: attributes not negotiated properly on 200 OK
Environment:Attachments:
Description:In June, a discussion started about a new, still upcoming Advanced Codec Negotiation (ACN; [mailing list|http://lists.digium.com/pipermail/asterisk-dev/2020-June/thread.html], [blog post|https://www.asterisk.org/asterisk-acn-advanced-codec-negotiation/], [wiki entry|https://wiki.asterisk.org/wiki/display/AST/PJSIP+Advanced+Codec+Negotiation]). Because I am leaving the Asterisk platform, just a note that Asterisk has not only problems with format negotiation but also preserving [SDP|https://tools.ietf.org/html/rfc4566] format parameters: {{a=fmtp …}}. Missing parameters heavily affect the overall negotiation, for example to get things working like in ASTERISK-29182 would not be possible at all.

Actually, I hacked format-parameter preserving into Asterisk years ago to get my AMR modules working. Although those hacks went into Asterisk, still scenarios exist which still loose the format parameters ([example|https://github.com/traud/asterisk-amr/issues/8#issuecomment-260714794]). Long story short: As of today, Asterisk was not designed to preserve format parameters in any bridge.
Comments:By: Asterisk Team (asteriskteam) 2020-11-27 08:31:38.181-0600

Thanks for creating a report! The issue has entered the triage process. That means the issue will wait in this status until a Bug Marshal has an opportunity to review the issue. Once the issue has been reviewed you will receive comments regarding the next steps towards resolution. Please note that log messages and other files should not be sent to the Sangoma Asterisk Team unless explicitly asked for. All files should be placed on this issue in a sanitized fashion as needed.

A good first step is for you to review the [Asterisk Issue Guidelines|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines] if you haven't already. The guidelines detail what is expected from an Asterisk issue report.

Then, if you are submitting a patch, please review the [Patch Contribution Process|https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process].

Please note that once your issue enters an open state it has been accepted. As Asterisk is an open source project there is no guarantee or timeframe on when your issue will be looked into. If you need expedient resolution you will need to find and pay a suitable developer. Asking for an update on your issue will not yield any progress on it and will not result in a response. All updates are posted to the issue when they occur.

Please note that by submitting data, code, or documentation to Sangoma through JIRA, you accept the Terms of Use present at [https://www.asterisk.org/terms-of-use/|https://www.asterisk.org/terms-of-use/].

By: Alexander Traud (traud) 2020-12-01 03:21:04.777-0600

A side-note about the related issue added by the Asterisk Team: ASTERISK-26498 documents a general limitation of that particular codec module. At least, that is my understanding of that closed-source codec module. I have not reverse-engineered it yet. In contrast, the [open-source Opus Codec module|https://github.com/traud/asterisk-opus] joins format parameters ‘correctly’, see \_getjoint in the res_format_attr\_ module. The issue here is not about ‘codec modules’ but the overall architecture of how ‘format objects’ are exchanged/negotiated between call legs in different bridges while the call is set up.

In other words: With the new [Scope Tracing|https://gerrit.asterisk.org/c/asterisk/+/14463], do not only investigate when+which a ‘format’ gets selected but also which ‘format objects’ get selected. With the *actual* -- not *cached* -- format objects, a codec module is able to join the format parameters between them.

By: Alexander Traud (traud) 2020-12-01 08:36:37.612-0600

bq. hacked format-parameter preserving

see ASTERISK-25535 and ASTERISK-25545

By: Alexander Traud (traud) 2020-12-01 09:10:06.790-0600

ASTERISK-28671 might be related.