2021-11-19 15:52:42 +08:00
|
|
|
[speex]
|
|
|
|
; CBR encoding quality [0..10]
|
|
|
|
; used only when vbr = false
|
|
|
|
quality => 3
|
|
|
|
|
|
|
|
; codec complexity [0..10]
|
|
|
|
; tradeoff between cpu/quality
|
|
|
|
complexity => 2
|
|
|
|
|
|
|
|
; perceptual enhancement [true / false]
|
|
|
|
; improves clarity of decoded speech
|
|
|
|
enhancement => true
|
|
|
|
|
|
|
|
; voice activity detection [true / false]
|
|
|
|
; reduces bitrate when no voice detected, used only for CBR
|
|
|
|
; (implicit in VBR/ABR)
|
|
|
|
vad => true
|
|
|
|
|
|
|
|
; variable bit rate [true / false]
|
|
|
|
; uses bit rate proportionate to voice complexity
|
2021-11-26 23:08:18 +08:00
|
|
|
vbr => false
|
2021-11-19 15:52:42 +08:00
|
|
|
|
|
|
|
; available bit rate [bps, 0 = off]
|
|
|
|
; encoding quality modulated to match this target bit rate
|
|
|
|
; not recommended with dtx or pp_vad - may cause bandwidth spikes
|
|
|
|
abr => 0
|
|
|
|
|
|
|
|
; VBR encoding quality [0-10]
|
|
|
|
; floating-point values allowed
|
|
|
|
vbr_quality => 4
|
|
|
|
|
|
|
|
; discontinuous transmission [true / false]
|
|
|
|
; stops transmitting completely when silence is detected
|
|
|
|
; pp_vad is far more effective but more CPU intensive
|
|
|
|
dtx => false
|
|
|
|
|
|
|
|
; preprocessor configuration
|
|
|
|
; these options only affect Speex v1.1.8 or newer
|
|
|
|
|
|
|
|
; enable preprocessor [true / false]
|
|
|
|
; allows dsp functionality below but incurs CPU overhead
|
|
|
|
preprocess => false
|
|
|
|
|
|
|
|
; preproc voice activity detection [true / false]
|
|
|
|
; more advanced equivalent of DTX, based on voice frequencies
|
|
|
|
pp_vad => false
|
|
|
|
|
|
|
|
; preproc automatic gain control [true / false]
|
|
|
|
pp_agc => false
|
|
|
|
pp_agc_level => 8000
|
|
|
|
|
|
|
|
; preproc denoiser [true / false]
|
|
|
|
pp_denoise => false
|
|
|
|
|
|
|
|
; preproc dereverb [true / false]
|
|
|
|
pp_dereverb => false
|
|
|
|
pp_dereverb_decay => 0.4
|
|
|
|
pp_dereverb_level => 0.3
|
|
|
|
|
|
|
|
; experimental bitrate changes depending on RTCP feedback [true / false]
|
|
|
|
experimental_rtcp_feedback => false
|
|
|
|
|
|
|
|
|
|
|
|
[plc]
|
|
|
|
; for all codecs which do not support native PLC
|
|
|
|
; this determines whether to perform generic PLC
|
|
|
|
; there is a minor performance penalty for this.
|
|
|
|
; By default plc is applied only when the 2 codecs
|
|
|
|
; in a channel are different.
|
|
|
|
genericplc => true
|
|
|
|
; Apply generic plc to channels even if the 2 codecs
|
|
|
|
; are the same. This forces transcoding via slin so
|
|
|
|
; the performance impact should be considered.
|
|
|
|
; Ignored if genericplc is not also enabled.
|
|
|
|
genericplc_on_equal_codecs => false
|
|
|
|
|
|
|
|
; Generate custom formats for formats requiring attributes.
|
|
|
|
; After defining the custom format, the name used in defining
|
|
|
|
; the format can be used throughout Asterisk in the format 'allow'
|
|
|
|
; and 'disallow' options.
|
|
|
|
;
|
|
|
|
; Example: silk8 is a predefined custom format in this config file.
|
|
|
|
; Once this config file is loaded, silk8 can be used anywhere a
|
|
|
|
; peer's codec capabilities are defined.
|
|
|
|
;
|
|
|
|
; In sip.conf 'silk8' can be defined as a capability for a peer.
|
|
|
|
; [peer1]
|
|
|
|
; type=peer
|
|
|
|
; host=dynamic
|
|
|
|
; disallow=all
|
|
|
|
; allow=silk8 ;custom codec defined in codecs.conf
|
|
|
|
;
|
|
|
|
; LIMITATIONS
|
|
|
|
; Custom formats can only be defined at startup. Any changes to this
|
|
|
|
; file made after startup will not take into effect until after Asterisk
|
|
|
|
; is restarted.
|
|
|
|
;
|
|
|
|
|
|
|
|
; Default Custom SILK format definitions, only one custom SILK format per
|
|
|
|
; sample rate is allowed.
|
|
|
|
[silk8]
|
|
|
|
type=silk
|
|
|
|
samprate=8000
|
|
|
|
fec=true ; turn on or off encoding with forward error correction.
|
|
|
|
; On recommended, off by default.
|
|
|
|
packetloss_percentage=10 ; Estimated packet loss percentage in uplink direction. This
|
|
|
|
; affects how much redundancy is built in when using fec.
|
|
|
|
; The higher the percentage, the larger amount of bandwidth is
|
|
|
|
; used. Default is 0%, 10% is recommended when fec is in use.
|
|
|
|
|
|
|
|
maxbitrate=10000 ; Use the table below to make sure a useful bitrate is choosen
|
|
|
|
; for maxbitrate. If not set or value is not within the bounds
|
|
|
|
; of the encoder, a default value is chosen.
|
|
|
|
;
|
|
|
|
; sample rate | bitrate range
|
|
|
|
; 8khz | 5000 - 20000 bps
|
|
|
|
; 12khz | 7000 - 25000 bps
|
|
|
|
; 16khz | 8000 - 30000 bps
|
|
|
|
; 24khz | 20000- 40000 bps
|
|
|
|
;
|
|
|
|
;dtx=true ; Encode using discontinuous transmission mode or not. Turning this
|
|
|
|
; on will save bandwidth during periods of silence at the cost of
|
|
|
|
; increased computational complexity. Off by default.
|
|
|
|
|
|
|
|
[silk12]
|
|
|
|
type=silk
|
|
|
|
samprate=12000
|
|
|
|
maxbitrate=12000
|
|
|
|
fec=true
|
|
|
|
packetloss_percentage=10;
|
|
|
|
|
|
|
|
[silk16]
|
|
|
|
type=silk
|
|
|
|
samprate=16000
|
|
|
|
maxbitrate=20000
|
|
|
|
fec=true
|
|
|
|
packetloss_percentage=10;
|
|
|
|
|
|
|
|
[silk24]
|
|
|
|
type=silk
|
|
|
|
samprate=24000
|
|
|
|
maxbitrate=30000
|
|
|
|
fec=true
|
|
|
|
packetloss_percentage=10;
|
|
|
|
|
|
|
|
|
|
|
|
; Default custom CELT codec definitions. Only one custom CELT definition is allowed
|
|
|
|
; per a sample rate.
|
|
|
|
;[celt44]
|
|
|
|
;type=celt
|
|
|
|
;samprate=44100 ; The samplerate in hz. This option is required.
|
|
|
|
;framesize=480 ; The framesize option represents the duration of each frame in samples.
|
|
|
|
; This must be a factor of 2. This option is only advertised in an SDP
|
|
|
|
; when it is set. Otherwise a default of framesize of 480 is assumed
|
|
|
|
; internally
|
|
|
|
|
|
|
|
;[celt48]
|
|
|
|
;type=celt
|
|
|
|
;samprate=48000
|
|
|
|
|
|
|
|
;[celt32]
|
|
|
|
;type=celt
|
|
|
|
;samprate=32000
|
|
|
|
|
|
|
|
;============================ OPUS Section Options ============================
|
|
|
|
;
|
|
|
|
; NOTE: Accurate documentation corresponding to your downloaded version of
|
|
|
|
; codec_opus is available from Asterisk's CLI:
|
|
|
|
;
|
|
|
|
; *CLI> config show help codec_opus opus
|
|
|
|
;
|
|
|
|
;[opus]
|
|
|
|
;type= ; Must be of type "opus" (default: "")
|
|
|
|
;packet_loss= ; Encoder's packet loss percentage. Can be any number between 0
|
|
|
|
; and 100, inclusive. A higher value results in more loss
|
|
|
|
; resistance. (default: 0)
|
|
|
|
;complexity= ; Encoder's computational complexity. Can be any number between 0
|
|
|
|
; and 10, inclusive. Note, 10 equals the highest complexity.
|
|
|
|
; (default: 10)
|
|
|
|
;max_bandwidth= ; Encoder's maximum bandwidth allowed. Sets an upper bandwidth
|
|
|
|
; bound on the encoder. Can be any of the following: narrow,
|
|
|
|
; medium, wide, super_wide, full. (default: full)
|
|
|
|
;signal= ; Encoder's signal type. Aids in mode selection on the encoder: Can
|
|
|
|
; be any of the following: auto, voice, music. (default: auto)
|
|
|
|
;application= ; Encoder's application type. Can be any of the following: voip,
|
|
|
|
; audio, low_delay. (default: voip)
|
|
|
|
;max_playback_rate= ; Override the maximum playback rate in the offer's SDP.
|
|
|
|
; Any value between 8000 and 48000 (inclusive) is valid,
|
|
|
|
; however typically it should match one of the usual opus
|
|
|
|
; bandwidths. (default: 48000)
|
|
|
|
;bitrate= ; Override the maximum average bitrate in the offer's SDP. Any value
|
|
|
|
; between 500 and 512000 is valid. The following values are also
|
|
|
|
; allowed: auto, max. (default: auto)
|
|
|
|
;cbr= ; Override the constant bit rate parameter in the offer's SDP. A value of
|
|
|
|
; 0/false/no represents a variable bit rate whereas 1/true/yes represents
|
|
|
|
; a constant bit rate. (default: no)
|
|
|
|
;fec= ; Override the use inband fec parameter in the offer's SDP. A value of
|
|
|
|
; 0/false/no represents disabled whereas 1/true/yes represents enabled.
|
|
|
|
; (default: yes)
|
|
|
|
;dtx= ; Override the use dtx parameter in the offer's SDP. A value of 0/false/no
|
|
|
|
; represents disabled whereas 1/true/yes represents enabled. (default: no)
|
|
|
|
|
|
|
|
;=============================== OPUS Examples ================================
|
|
|
|
;
|
|
|
|
;[opus]
|
|
|
|
;type=opus
|
|
|
|
;max_playback_rate=8000 ; Limit the maximum playback rate on the encoder
|
|
|
|
;fec=no ; No inband fec
|
|
|
|
|
|
|
|
;[myopus]
|
|
|
|
;type=opus
|
|
|
|
;max_bandwidth=wide ; Maximum encoded bandwidth set to wide band (0-8000 Hz
|
|
|
|
; ; audio bandwidth at 16Khz sample rate)
|
|
|
|
;cbr=yes ; Negotiate a constant bit rate
|
|
|
|
|
2021-11-26 23:08:18 +08:00
|
|
|
[opusloss]
|
|
|
|
type=opus
|
|
|
|
cbr=yes
|
|
|
|
packet_loss=10
|
|
|
|
|
2021-11-19 15:52:42 +08:00
|
|
|
[opus48]
|
|
|
|
type=opus
|
|
|
|
max_playback_rate=48000
|
|
|
|
max_bandwidth=wide
|
|
|
|
bitrate=48000
|
2021-11-26 23:08:18 +08:00
|
|
|
cbr=yes
|
2021-11-19 15:52:42 +08:00
|
|
|
packet_loss=10
|
|
|
|
|
|
|
|
[opus64]
|
|
|
|
type=opus
|
|
|
|
max_playback_rate=48000
|
|
|
|
max_bandwidth=full
|
|
|
|
bitrate=64000
|
|
|
|
|
|
|
|
[opus96]
|
|
|
|
type=opus
|
|
|
|
max_playback_rate=48000
|
|
|
|
max_bandwidth=full
|
|
|
|
bitrate=96000
|