rtp_engine: allocate RTP dynamic payloads per session

Dynamic payload types were statically defined in Asterisk. This unfortunately
limited the number of dynamic payloads that could be registered. With this patch
dynamic payload type numbers are now assigned dynamically and per RTP instance.
However, in order to limit any issues where some clients expect the old
statically defined value this patch makes it so the value Asterisk used to pre-
designate is used for the dynamic assignment if available.

An option, "rtp_use_dynamic", has also been added (can be set in asterisk.conf)
that turns the new dynamic behavior on or off. When off it reverts back to using
statically defined payload values. This option defaults to "yes" in Asterisk 15.

ASTERISK-26515 #close
patches:
  ASTERISK-26515.diff submitted by jcolp (license 5000

Change-Id: I7653465c5ebeaf968f1a1cc8f3f4f5c4321da7fc
This commit is contained in:
Kevin Harwell
2017-03-22 15:43:33 -05:00
parent 06c9966608
commit 9b103e7bea
5 changed files with 175 additions and 109 deletions
+1
View File
@@ -196,6 +196,7 @@ extern int dahdi_chan_name_len;
extern int ast_language_is_prefix;
extern int ast_option_rtpusedynamic;
extern unsigned int ast_option_rtpptdynamic;
#if defined(__cplusplus) || defined(c_plusplus)