I have voip quality issues I would like to minimize. I have a ~= 3M/384k (Comcast) cable modem and a CentOS based Linux router (SME 7, 2.6.9 kernel) with 5 NAT''d devices (3 PCs "DHCP", 2 Vonage adapters "static 10.10.2.10-11"). The quality problems are audio cutting out and popping. I tried the following (see below) based on a Cookbook example, but I still have audio popping. I have noticed popping corresponding with web browsing, etc. Any suggestions that may improve voip quality? Also, are there any network metric capture/graphing tools that are helpful to analyze these type of issues. I''m thinking of a graph that shows various network metrics. I could watch the graph while using the phone and correlate graph spikes with audio pops. Thanks in advance for your help. Dale tc qdisc del root dev eth1 tc qdisc add dev eth1 root handle 1: htb default 12 tc class add dev eth1 parent 1: classid 1:1 htb rate 300kbit ceil 300kbit tc class add dev eth1 parent 1:1 classid 1:10 htb rate 200kbit ceil 300kbit prio 0 tc class add dev eth1 parent 1:1 classid 1:11 htb rate 50kbit ceil 300kbit prio 1 tc class add dev eth1 parent 1:1 classid 1:12 htb rate 30kbit ceil 300kbit prio 2 tc filter add dev eth1 parent 1:0 protocol ip prio 1 handle 1 fw classid 1:10 tc filter add dev eth1 parent 1:0 protocol ip prio 2 handle 2 fw classid 1:11 tc filter add dev eth1 parent 1:0 protocol ip prio 3 handle 3 fw classid 1:12 iptables -t mangle -A PREROUTING --src 10.10.2.10 -j MARK --set-mark 0x1 iptables -t mangle -A PREROUTING --src 10.10.2.10 -j RETURN iptables -t mangle -A PREROUTING --src 10.10.2.11 -j MARK --set-mark 0x1 iptables -t mangle -A PREROUTING --src 10.10.2.11 -j RETURN iptables -t mangle -A PREROUTING -j MARK --set-mark 0x3
dale wrote:> I have voip quality issues I would like to minimize. I have a ~= > 3M/384k (Comcast) cable modem and a CentOS based Linux router (SME 7, > 2.6.9 kernel) with 5 NAT''d devices (3 PCs "DHCP", 2 Vonage adapters > "static 10.10.2.10-11"). The quality problems are audio cutting out > and popping. I tried the following (see below) based on a Cookbook > example, but I still have audio popping. I have noticed popping > corresponding with web browsing, etc. Any suggestions that may > improve voip quality? Also, are there any network metric > capture/graphing tools that are helpful to analyze these type of > issues. I''m thinking of a graph that shows various network metrics. > I could watch the graph while using the phone and correlate graph > spikes with audio pops. Thanks in advance for your help. > > DaleHi Dale, you have to guarantee both delay (latency) and bandwidth for clean VoIP calls. With HTB you can''t do that (although it''s still better than nothing). You should use HFSC scheduler. If you have working HTB script than changing it to HFSC is quite simple. Good start is here http://linux-ip.net/articles/hfsc.en/ also there are plenty of exapmles using HFSC for VoIP on the web. Note that you have to guarantee latency and bandwidth on both incoming and outgoing direction (i can see only outgoing in your example). There are other things to tweak such as MTU, VoIP chunk size and others, but start with HFSC shaping. /ak
dale wrote:> I have voip quality issues I would like to minimize. I have a ~= > 3M/384k (Comcast) cable modem and a CentOS based Linux router (SME 7, > 2.6.9 kernel) with 5 NAT''d devices (3 PCs "DHCP", 2 Vonage adapters > "static 10.10.2.10-11"). The quality problems are audio cutting out and > popping. I tried the following (see below) based on a Cookbook example, > but I still have audio popping. I have noticed popping corresponding > with web browsing, etc.Maybe you need to consider shaping/policing ingress traffic aswell. Any suggestions that may improve voip quality?> Also, are there any network metric capture/graphing tools that are > helpful to analyze these type of issues. I''m thinking of a graph that > shows various network metrics. I could watch the graph while using the > phone and correlate graph spikes with audio pops. Thanks in advance for > your help.I don''t use any graphing tools, but I would mark icmp as 1 aswell and have ping running while testing.> > Dale > > > > tc qdisc del root dev eth1 > tc qdisc add dev eth1 root handle 1: htb default 12Since you mark all unmarked ip as 3 you don''t need default 12 - it will send arp to the worst class.> tc class add dev eth1 parent 1: classid 1:1 htb rate 300kbit ceil 300kbit > tc class add dev eth1 parent 1:1 classid 1:10 htb rate 200kbit ceil > 300kbit prio 0 > tc class add dev eth1 parent 1:1 classid 1:11 htb rate 50kbit ceil > 300kbit prio 1 > tc class add dev eth1 parent 1:1 classid 1:12 htb rate 30kbit ceil > 300kbit prio 2 > tc filter add dev eth1 parent 1:0 protocol ip prio 1 handle 1 fw classid > 1:10 > tc filter add dev eth1 parent 1:0 protocol ip prio 2 handle 2 fw classid > 1:11unused?> tc filter add dev eth1 parent 1:0 protocol ip prio 3 handle 3 fw classid > 1:12 > iptables -t mangle -A PREROUTING --src 10.10.2.10 -j MARK --set-mark 0x1 > iptables -t mangle -A PREROUTING --src 10.10.2.10 -j RETURN > iptables -t mangle -A PREROUTING --src 10.10.2.11 -j MARK --set-mark 0x1 > iptables -t mangle -A PREROUTING --src 10.10.2.11 -j RETURN > iptables -t mangle -A PREROUTING -j MARK --set-mark 0x3Andy.