aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorqwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b>2006-09-20 17:39:59 +0000
committerqwell <qwell@f38db490-d61c-443f-a65b-d21fe96a405b>2006-09-20 17:39:59 +0000
commit62752745f50399224e0d7c9eec77a3879d584683 (patch)
treeb7cb886010c20f183b7a7f50f1aaf2aa5ce1bf59
parent3c35e5e958ccff5a307542e84ae3916a3dc2ae06 (diff)
Add documentation on rtp packetization.
Technically, ooh323 doesn't support it yet, but there is a patch that should be committed very soon. Issue #7989, patch by DEA, slightly modified. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@43344 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--configs/h323.conf.sample1
-rw-r--r--configs/sip.conf.sample2
-rw-r--r--configs/skinny.conf.sample2
-rw-r--r--doc/rtp-packetization.txt73
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.