Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[new-feature]: Advanced Codec Negotiation #223

Open
maximilianfridrich opened this issue Aug 3, 2023 · 2 comments · May be fixed by #285
Open

[new-feature]: Advanced Codec Negotiation #223

maximilianfridrich opened this issue Aug 3, 2023 · 2 comments · May be fixed by #285
Assignees
Labels
new-feature support-level-core Functionality with core support level waiting-for-standard-release-development-cycle This change is pending the master branch being the next standard release development cycle.

Comments

@maximilianfridrich
Copy link
Contributor

Feature Description

This feature has long been talked about and a lot of excellent work to prepare this feature has been done by @gtjoseph (e.g. 8d1064e, 647c53c, 9bd1d68).

The pjsip configuration options for endpoints exist, what's left is implementing the functionality.

References:

I have a working patch + testsuite test cases. Feel free to assign this issue to me.

@jcolp jcolp added support-level-core Functionality with core support level and removed triage labels Aug 3, 2023
@maximilianfridrich
Copy link
Contributor Author

I might have jumped the gun a bit. It looks like I broke the all_codecs_on_empty_reinvite feature in the late-offer case. I will look into that, I can't submit the patch yet.

@maximilianfridrich
Copy link
Contributor Author

Update: all_codecs_on_empty_reinvite is fixed and of the ~400 pjsip test cases there are only about 5 left that are not green yet (we have added about 20 additional ones).

Currently I am struggling with things like ptime (aka framing) which is set in ast_format_cap, format_cap_framed and also in ast_rtp_codecs. The framing information gets lost when ast_format_cap_append (or a similar cap appending function) is called and then the value in ast_rtp_codecs might be used anyways. This part of the code is quite hard to comprehend.

maximilianfridrich added a commit to maximilianfridrich/asterisk that referenced this issue Aug 23, 2023
Resolves: asterisk#223

UpgradeNote: The two pjsip.conf options "incoming_call_offer_pref" and
"outgoing_call_offer_pref" have been removed. Instead, the new options
"codec_prefs_incoming_answer", "codec_prefs_incoming_offer",
"codec_prefs_outgoing_answer", "codec_prefs_outgoing_offer" must be
used. This could break existing deployments which must be adapted to
use the new settings.

UserNote: The Advanced Codec Negotiation feature is now implemented.
maximilianfridrich added a commit to maximilianfridrich/asterisk that referenced this issue Aug 24, 2023
Resolves: asterisk#223

UpgradeNote: The two pjsip.conf options "incoming_call_offer_pref" and
"outgoing_call_offer_pref" have been removed. Instead, the new options
"codec_prefs_incoming_answer", "codec_prefs_incoming_offer",
"codec_prefs_outgoing_answer", "codec_prefs_outgoing_offer" must be
used. Even if the old settings were not used, this could break existing
deployments as the default ACN options are now in use and they might
behave differently in some call flows (e.g. by default, pending codecs
are always preferred, not the endpoint configuration).

UserNote: The Advanced Codec Negotiation feature is now implemented.
maximilianfridrich added a commit to maximilianfridrich/asterisk that referenced this issue Aug 25, 2023
Resolves: asterisk#223

UpgradeNote: The two pjsip.conf options "incoming_call_offer_pref" and
"outgoing_call_offer_pref" have been removed. Instead, the new options
"codec_prefs_incoming_answer", "codec_prefs_incoming_offer",
"codec_prefs_outgoing_answer", "codec_prefs_outgoing_offer" must be
used. Even if the old settings were not used, this could break existing
deployments as the default ACN options are now in use and they might
behave differently in some call flows (e.g. by default, pending codecs
are always preferred, not the endpoint configuration).

UserNote: The Advanced Codec Negotiation feature is now implemented.
maximilianfridrich added a commit to maximilianfridrich/asterisk that referenced this issue Aug 26, 2023
Resolves: asterisk#223

UpgradeNote: The two pjsip.conf options "incoming_call_offer_pref" and
"outgoing_call_offer_pref" have been removed. Instead, the new options
"codec_prefs_incoming_answer", "codec_prefs_incoming_offer",
"codec_prefs_outgoing_answer", "codec_prefs_outgoing_offer" must be
used. Even if the old settings were not used, this could break existing
deployments as the default ACN options are now in use and they might
behave differently in some call flows (e.g. by default, pending codecs
are always preferred, not the endpoint configuration).

UserNote: The Advanced Codec Negotiation feature is now implemented.
maximilianfridrich added a commit to maximilianfridrich/asterisk that referenced this issue Aug 28, 2023
Advanced Codec Negotiation is now implemented for the dial application,
pjsip channels and local channels.

Resolves: asterisk#223

UpgradeNote: The two pjsip.conf options "incoming_call_offer_pref" and
"outgoing_call_offer_pref" have been removed. Instead, the new options
"codec_prefs_incoming_answer", "codec_prefs_incoming_offer",
"codec_prefs_outgoing_answer", "codec_prefs_outgoing_offer" must be
used. Even if the old settings were not used, this could break existing
deployments as the default ACN options are now in use and they might
behave differently in some call flows (e.g. by default, pending codecs
are always preferred, not the endpoint configuration).

UserNote: The Advanced Codec Negotiation feature is now implemented.
maximilianfridrich added a commit to maximilianfridrich/asterisk that referenced this issue Aug 28, 2023
Advanced Codec Negotiation is now implemented for the dial application,
pjsip channels and local channels.

Resolves: asterisk#223

UpgradeNote: The two pjsip.conf options "incoming_call_offer_pref" and
"outgoing_call_offer_pref" have been removed. Instead, the new options
"codec_prefs_incoming_answer", "codec_prefs_incoming_offer",
"codec_prefs_outgoing_answer", "codec_prefs_outgoing_offer" must be
used. Even if the old settings were not used, this could break existing
deployments as the default ACN options are now in use and they might
behave differently in some call flows (e.g. by default, pending codecs
are always preferred, not the endpoint configuration).

UserNote: The Advanced Codec Negotiation feature is now implemented.
maximilianfridrich added a commit to maximilianfridrich/asterisk that referenced this issue Aug 29, 2023
Advanced Codec Negotiation is now implemented for the dial application,
pjsip channels and local channels.

Resolves: asterisk#223

UpgradeNote: The two pjsip.conf options "incoming_call_offer_pref" and
"outgoing_call_offer_pref" have been removed. Instead, the new options
"codec_prefs_incoming_answer", "codec_prefs_incoming_offer",
"codec_prefs_outgoing_answer", "codec_prefs_outgoing_offer" must be
used. Even if the old settings were not used, this could break existing
deployments as the default ACN options are now in use and they might
behave differently in some call flows (e.g. by default, pending codecs
are always preferred, not the endpoint configuration).

UserNote: The Advanced Codec Negotiation feature is now implemented.
maximilianfridrich added a commit to maximilianfridrich/asterisk that referenced this issue Aug 30, 2023
Advanced Codec Negotiation is now implemented for the dial application,
pjsip channels and local channels.

Resolves: asterisk#223

UpgradeNote: The two pjsip.conf options "incoming_call_offer_pref" and
"outgoing_call_offer_pref" have been removed. Instead, the new options
"codec_prefs_incoming_answer", "codec_prefs_incoming_offer",
"codec_prefs_outgoing_answer", "codec_prefs_outgoing_offer" must be
used. Even if the old settings were not used, this could break existing
deployments as the default ACN options are now in use and they might
behave differently in some call flows (e.g. by default, pending codecs
are always preferred, not the endpoint configuration).

UserNote: The Advanced Codec Negotiation feature is now implemented.
maximilianfridrich added a commit to maximilianfridrich/asterisk that referenced this issue Aug 30, 2023
Advanced Codec Negotiation is now implemented for the dial application,
pjsip channels and local channels.

Resolves: asterisk#223

UpgradeNote: The two pjsip.conf options "incoming_call_offer_pref" and
"outgoing_call_offer_pref" have been removed. Instead, the new options
"codec_prefs_incoming_answer", "codec_prefs_incoming_offer",
"codec_prefs_outgoing_answer", "codec_prefs_outgoing_offer" must be
used. Even if the old settings were not used, this could break existing
deployments as the default ACN options are now in use and they might
behave differently in some call flows (e.g. by default, pending codecs
are always preferred, not the endpoint configuration).

UserNote: The Advanced Codec Negotiation feature is now implemented.
@jcolp jcolp added the waiting-for-standard-release-development-cycle This change is pending the master branch being the next standard release development cycle. label Aug 31, 2023
maximilianfridrich added a commit to maximilianfridrich/asterisk that referenced this issue Sep 12, 2023
Advanced Codec Negotiation is now implemented for the dial application,
pjsip channels and local channels.

Resolves: asterisk#223

UpgradeNote: The two pjsip.conf options "incoming_call_offer_pref" and
"outgoing_call_offer_pref" have been removed. Instead, the new options
"codec_prefs_incoming_answer", "codec_prefs_incoming_offer",
"codec_prefs_outgoing_answer", "codec_prefs_outgoing_offer" must be
used. Even if the old settings were not used, this could break existing
deployments as the default ACN options are now in use and they might
behave differently in some call flows (e.g. by default, pending codecs
are always preferred, not the endpoint configuration).

UserNote: The Advanced Codec Negotiation feature is now implemented.
maximilianfridrich added a commit to maximilianfridrich/asterisk that referenced this issue Nov 15, 2023
Advanced Codec Negotiation is now implemented for the dial application,
pjsip channels and local channels.

Resolves: asterisk#223

UpgradeNote: The two pjsip.conf options "incoming_call_offer_pref" and
"outgoing_call_offer_pref" have been removed. Instead, the new options
"codec_prefs_incoming_answer", "codec_prefs_incoming_offer",
"codec_prefs_outgoing_answer", "codec_prefs_outgoing_offer" must be
used. Even if the old settings were not used, this could break existing
deployments as the default ACN options are now in use and they might
behave differently in some call flows (e.g. by default, pending codecs
are always preferred, not the endpoint configuration).

UserNote: The Advanced Codec Negotiation feature is now implemented.
maximilianfridrich added a commit to maximilianfridrich/asterisk that referenced this issue Nov 15, 2023
Advanced Codec Negotiation is now implemented for the dial application,
pjsip channels and local channels.

Resolves: asterisk#223

UpgradeNote: The two pjsip.conf options "incoming_call_offer_pref" and
"outgoing_call_offer_pref" have been removed. Instead, the new options
"codec_prefs_incoming_answer", "codec_prefs_incoming_offer",
"codec_prefs_outgoing_answer", "codec_prefs_outgoing_offer" must be
used. Even if the old settings were not used, this could break existing
deployments as the default ACN options are now in use and they might
behave differently in some call flows (e.g. by default, pending codecs
are always preferred, not the endpoint configuration).

UserNote: The Advanced Codec Negotiation feature is now implemented.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new-feature support-level-core Functionality with core support level waiting-for-standard-release-development-cycle This change is pending the master branch being the next standard release development cycle.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants