diff options
-rw-r--r-- | configs/h323.conf.sample | 1 | ||||
-rw-r--r-- | configs/sip.conf.sample | 2 | ||||
-rw-r--r-- | configs/skinny.conf.sample | 2 | ||||
-rw-r--r-- | doc/rtp-packetization.txt | 73 |
4 files changed, 76 insertions, 2 deletions
diff --git a/configs/h323.conf.sample b/configs/h323.conf.sample index 1962f2167..4b558ec0b 100644 --- a/configs/h323.conf.sample +++ b/configs/h323.conf.sample @@ -24,6 +24,7 @@ port = 1720 ;allow=all ; turns on all installed codecs ;disallow=g723.1 ; Hm... Proprietary, don't use it... ;allow=gsm ; Always allow GSM, it's cool :) +;allow=ulaw ; see doc/rtp-packetization for framing options ; ; User-Input Mode (DTMF) ; diff --git a/configs/sip.conf.sample b/configs/sip.conf.sample index f931780b9..07389e16b 100644 --- a/configs/sip.conf.sample +++ b/configs/sip.conf.sample @@ -70,7 +70,7 @@ srvlookup=yes ; Enable DNS SRV lookups on outbound calls ; defaults to "asterisk" ;disallow=all ; First disallow all codecs ;allow=ulaw ; Allow codecs in order of preference -;allow=ilbc ; +;allow=ilbc ; see doc/rtp-packetization for framing options ; ; This option specifies a preference for which music on hold class this channel ; should listen to when put on hold if the music class has not been set on the diff --git a/configs/skinny.conf.sample b/configs/skinny.conf.sample index 709cebd6e..995012083 100644 --- a/configs/skinny.conf.sample +++ b/configs/skinny.conf.sample @@ -7,7 +7,7 @@ bindport=2000 ; Port to bind to, default tcp/2000 dateformat=M-D-Y ; M,D,Y in any order (5 chars max) keepalive=120 -;allow=all +;allow=all ; see doc/rtp-packetization for framing options ;disallow= ;------------------------------ JITTER BUFFER CONFIGURATION -------------------------- diff --git a/doc/rtp-packetization.txt b/doc/rtp-packetization.txt new file mode 100644 index 000000000..b38acf8e4 --- /dev/null +++ b/doc/rtp-packetization.txt @@ -0,0 +1,73 @@ +Overview +------- +Asterisk currently supports configurable RTP packetization per codec for +select RTP-based channels. + +Channels +------- +These channel drivers allow RTP packetization on a user/peer/friend +or global level: + chan_sip + chan_skinny + chan_h323 + chan_ooh323 (Asterisk-Addons) + +Configuration +------- +To set a desired packetization interval on a specific codec, +append that inteval to the allow= statement. + +Example: +allow=ulaw:30,alaw,g729:60 + +No packetization is specified in the case of alaw in this example, +so the default of 20ms is used. + +Autoframing +------- +In addition, chan_sip has the ability to negotiate the desired +framing at call establishment. + +In sip.conf if autoframing=yes is set in the global section, then +all calls will try to set the packetization based on the remote +endpoint's preferences. This behaviour depends on the endpoints +ability to present the desired packetization (ptime:) in the SDP. +If the endpoint does not include a ptime attribute, the call will +be established with 20ms packetization. + +Autoframing can be set at the global level or on a user/peer/friend +basis. If it is enabled at the global level, it applies to all +users/peers/friends regardless of their prefered codec packetization. + +Codec framing options +------- +The following table lists the minimum and maximum values that are +valid per codec, as well as the increment value used for each. +Please note that the maximum values here are only recommended +maximums, and should not exceed the RTP MTU. + +Name Min Max Default Increment +g723 30 300 30 30 +gsm 20 60 20 20 +ulaw 10 30 20 10 +alaw 10 30 20 10 +g726 10 50 20 10 +ADPCM 10 30 20 10 +SLIN 10 70 20 10 +lpc10 20 20 20 20 +g729 10 230 20 10 +speex 10 60 20 10 +ilbc 30 30 30 30 +g726_aal2 10 50 20 10 + +Invalid framing options are handled based on the following rules: + 1. If the specified framing is less than the codec's minimum, then + the minimum value is used. + 2. If the specific framing is greater than the codec's maximum, then + the maximum value is used + 3. If the specificed framing does not meet the increment requirement, + the specified framing is rounded down to the closest valid + framing options. + example allow=ulaw:33 will set the codec to 30ms framing + 4. If no framing is specified in the allow= directive, then the + codec default is used. |