Skip to content
Snippets Groups Projects
qos.tex 5.39 KiB
Newer Older
  • Learn to ignore specific revisions
  • \subsubsection{Introduction}
    
    Asterisk supports different QoS settings at the application level for various
    protocols on both signaling and media. The Type of Service (TOS) byte can be
    set on outgoing IP packets for various protocols. The TOS byte is used by the
    network to provide some level of Quality of Service (QoS) even if the network
    is congested with other traffic.
    
    Asterisk running on Linux can also set 802.1p CoS marks in VLAN packets for the 
    VoIP protocols it uses. This is useful when working in a switched environment.
    In fact Asterisk only set priority for Linux socket. For mapping this priority
    
    and VLAN CoS mark you need to use this command:
    
    \begin{verbatim}
    vconfig set_egress_map [vlan-device] [skb-priority] [vlan-qos]
    \end{verbatim}
    
    The table below shows all VoIP channel drivers and other Asterisk modules that
    support QoS settings for network traffic. It also shows the type(s) of
    traffic for which each module can support setting QoS settings.
    
    
    \begin{verbatim}
     Channel Drivers
    +==============+===========+=====+=====+=====+
    |              | Signaling |Audio|Video| Text|
    +==============+===========+=====+=====+=====+
    |chan_sip      |     +     |  +  |  +  |  +  |
    |--------------+-----------+-----+-----+-----+
    |chan_skinny   |     +     |  +  |  +  |     |
    |--------------+-----------+-----+-----+-----+
    |chan_mgcp     |     +     |  +  |     |     |
    |--------------+-----------+-----+-----+-----+
    |chan_unistim  |     +     |  +  |     |     |
    |--------------+-----------+-----+-----+-----+
    |chan_h323     |           |  +  |     |     |
    |--------------+-----------+-----+-----+-----+
    
    +==============+=============================+
     Other
    +==============+=============================+
    | dundi.conf   |     + (tos setting)         |
    |--------------+-----------------------------+
    | iaxprov.conf |     + (tos setting)         |
    +==============+=============================+
    \end{verbatim}
    
    
    \subsubsection{IP TOS values}
    The allowable values for any of the tos* parameters are: 
    CS0, CS1, CS2, CS3, CS4, CS5, CS6, CS7, AF11, AF12, AF13, AF21, AF22, AF23, 
    AF31, AF32, AF33, AF41, AF42, AF43 and ef (expedited forwarding),
    
    The tos* parameters also take numeric values.
    
    Note that on a Linux system, Asterisk must be compiled with libcap in order to
    use the ef tos setting if Asterisk is not run as root.
    
    The lowdelay, throughput, reliability, mincost, and none values have been removed
    
    in current releases.
    
    \subsubsection{802.1p CoS values}
    
    
    Because 802.1p uses 3 bits of the VLAN header, this parameter can take integer
    values from 0 to 7.
    
    
    \subsubsection{Recommended values}
    
    The recommended values shown below are also included in sample configuration files:
    
    \begin{verbatim}
    +============+=========+======+
    |            |  tos    |  cos |
    +============+=========+======+
    |Signaling   |  cs3    |  3   |
    |Audio       |  ef     |  5   |
    |Video       |  af41   |  4   |
    |Text        |  af41   |  3   |
    |Other       |  ef     |      |
    +============+=========+======+
    \end{verbatim}
    
    
    \subsubsection{IAX2}
    
    In iax.conf, there is a "tos" parameter that sets the global default TOS
    
    for IAX packets generated by chan\_iax2.  Since IAX connections combine
    
    signalling, audio, and video into one UDP stream, it is not possible
    to set the TOS separately for the different types of traffic.
    
    
    In iaxprov.conf, there is a "tos" parameter that tells the IAXy what TOS
    
    to set on packets it generates.  As with the parameter in iax.conf,
    IAX packets generated by an IAXy cannot have different TOS settings
    based upon the type of packet.  However different IAXy devices can
    have different TOS settings.
    
    
    \subsubsection{SIP}
    
    In sip.conf, there are four parameters that control the TOS settings:
    
    "tos\_sip", "tos\_audio", "tos\_video" and "tos\_text". tos\_sip controls
    what TOS SIP call signaling packets are set to. tos\_audio, tos\_video
    
    and tos\_text control what TOS values are used for RTP audio, video, and text
    packets, respectively.
    
    There are four parameters to control 802.1p CoS: "cos\_sip", "cos\_audio",
    
    "cos\_video" and "cos\_text". The behavior of these parameters is the
    same as for the SIP TOS settings described above.
    
    \subsubsection{Other RTP channels}
    
    chan\_mgcp, chan\_h323, chan\_skinny and chan\_unistim also support TOS and
    
    CoS via setting tos and cos parameters in their corresponding configuration
    files. Naming style and behavior are the same as for chan\_sip.
    
    \subsubsection{Reference}
    
    \url{http://standards.ieee.org/getieee802/download/802.1Q-1998.pdf}
    
    Related protocols: IEEE 802.3, 802.2, 802.1D, 802.1Q
    
    
    RFC 2474 - "Definition of the Differentiated Services Field
    (DS field) in the IPv4 and IPv6 Headers", Nichols, K., et al,
    December 1998.
    
    IANA Assignments, DSCP registry
    Differentiated Services Field Codepoints
    
    \url{http://www.iana.org/assignments/dscp-registry}
    
    To get the most out of setting the TOS on packets generated by
    Asterisk, you will need to ensure that your network handles packets
    with a TOS properly.  For Cisco devices, see the previously mentioned
    "Enterprise QoS Solution Reference Network Design Guide".  For Linux
    
    systems see the "Linux Advanced Routing \& Traffic Control HOWTO" at 
    
    For more information on Quality of
    Service for VoIP networks see the "Enterprise QoS Solution Reference
    Network Design Guide" version 3.3 from Cisco at:
    
    \url{http://www.cisco.com/application/pdf/en/us/guest/netsol/ns432/c649/ccmigration\_09186a008049b062.pdf}