Oops
[asterisk/asterisk.git] / doc / rtp-packetization.txt
1 Overview
2 -------
3 Asterisk currently supports configurable RTP packetization per codec for 
4 select RTP-based channels.
5
6 Channels
7 -------
8 These channel drivers allow RTP packetization on a user/peer/friend
9 or global level:
10     chan_sip
11     chan_skinny
12     chan_h323
13     chan_ooh323 (Asterisk-Addons)
14     chan_gtalk
15     chan_jingle
16
17 Configuration
18 -------
19 To set a desired packetization interval on a specific codec,
20 append that inteval to the allow= statement.
21
22 Example:
23 allow=ulaw:30,alaw,g729:60
24
25 No packetization is specified in the case of alaw in this example,
26 so the default of 20ms is used.
27
28 Autoframing
29 -------
30 In addition, chan_sip has the ability to negotiate the desired
31 framing at call establishment.
32
33 In sip.conf if autoframing=yes is set in the global section, then
34 all calls will try to set the packetization based on the remote
35 endpoint's preferences.  This behaviour depends on the endpoints
36 ability to present the desired packetization (ptime:) in the SDP.
37 If the endpoint does not include a ptime attribute, the call will 
38 be established with 20ms packetization.
39
40 Autoframing can be set at the global level or on a user/peer/friend
41 basis.  If it is enabled at the global level, it applies to all
42 users/peers/friends regardless of their prefered codec packetization.
43
44 Codec framing options
45 -------
46 The following table lists the minimum and maximum values that are
47 valid per codec, as well as the increment value used for each.
48 Please note that the maximum values here are only recommended
49 maximums, and should not exceed the RTP MTU.
50
51 Name            Min             Max             Default         Increment
52 g723            30              300             30              30
53 gsm             20              300             20              20
54 ulaw            10              150             20              10
55 alaw            10              150             20              10
56 g726            10              300             20              10
57 ADPCM           10              300             20              10
58 SLIN            10              70              20              10
59 lpc10           20              20              20              20
60 g729            10              230             20              10
61 speex           10              60              20              10
62 ilbc            30              30              30              30
63 g726_aal2       10              300             20              10
64
65 Invalid framing options are handled based on the following rules:
66   1.  If the specified framing is less than the codec's minimum, then
67         the minimum value is used.
68   2.  If the specific framing is greater than the codec's maximum, then
69         the maximum value is used
70   3.  If the specificed framing does not meet the increment requirement,
71         the specified framing is rounded down to the closest valid
72         framing options.
73                 example allow=ulaw:33 will set the codec to 30ms framing
74   4.  If no framing is specified in the allow= directive, then the
75         codec default is used.