codec negotiation: add incoming_call_offer_prefs option

Add a new option, incoming_call_offer_pref, to res_pjsip endpoints that
specifies the preferred order of codecs after receiving an offer.

This patch does the following:

  Adds a new enumeration, ast_sip_call_codec_pref, used by the the new
configuration option that's added to the endpoint media structure.

  Adds a new ast_sip_session_caps structure that's set for each session media
object.

  Creates a new file, res_pjsip_session_caps that "implements" the new
structure and option, and is compiled into the res_pjsip_session library.

ASTERISK-28756 #close

Change-Id: I35e7a2a0c236cfb6bd9cdf89539f57a1ffefc76f
This commit is contained in:
Kevin Harwell
2020-02-24 12:47:46 -06:00
parent 87fda066ea
commit 06dada3f01
11 changed files with 484 additions and 20 deletions

View File

@@ -925,6 +925,27 @@
<configOption name="preferred_codec_only" default="no">
<synopsis>Respond to a SIP invite with the single most preferred codec rather than advertising all joint codec capabilities. This limits the other side's codec choice to exactly what we prefer.</synopsis>
</configOption>
<configOption name="incoming_call_offer_pref" default="local">
<synopsis>After receiving an incoming offer create a list of preferred codecs between
those received in the SDP offer, and those specified in endpoint configuration.</synopsis>
<description>
<note><para>This list will consist of only those codecs found in both.</para></note>
<enumlist>
<enum name="local"><para>
Order by the endpoint configuration allow line (default)
</para></enum>
<enum name="local_single"><para>
Order by the endpoint configuration allow line, but the list will only contain the first, or 'top' item
</para></enum>
<enum name="remote"><para>
Order by what is received in the SDP offer
</para></enum>
<enum name="remote_single"><para>
Order by what is received in the SDP offer, but the list will only contain the first, or 'top' item
</para></enum>
</enumlist>
</description>
</configOption>
<configOption name="rtp_keepalive">
<synopsis>Number of seconds between RTP comfort noise keepalive packets.</synopsis>
<description><para>