Ok after my testing hfsc does indeed work this way. Although not perfect, it was more than acceptable during the rare periods of extreme congestion. I noticed that the effective rate did not change when calls were introduced (I tried 3). This makes me happy :)
So this is how I think it works out: If you have a shared broadband service with plenty of upload headroom, you should use htb and your shaping parameter should be (Upload speed + 25%) - (100K (G711) * max number of channels) e.g. Upload speed 1000K with 4 channels required = 1000 + 250 - 400 = 850K. If you dont have much upload headroom and it will be a problem to shape it right down, then just configure for hfsc at Upload Speed - 10%-20% to be conservative. What do you think? Regards Michael Knill On 05/09/2013, at 7:46 AM, Lonnie Abelbeck <[email protected]> wrote: > Michael, > > AstLinux's traffic shaper honors QoS values using DSCP matching. Of course > you have to enable this in Asterisk sip.conf: > -- > ; See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for a > description of these parameters. > tos_sip=cs3 ; Sets TOS for SIP packets. > tos_audio=ef ; Sets TOS for RTP audio packets. > tos_video=af41 ; Sets TOS for RTP video packets. > tos_text=af41 ; Sets TOS for RTP text packets. > -- > > The traffic shaper honors "htb" and "hfsc" methods, the very old "htb" works > as I described and is what I use on my 28/4 Mbps connection. The "hfsc" > method is newer and works more like what you want by dynamically > prioritizing, but in my tests (years ago) the dynamic slew was too slow for > perfect voice in worst case conditions. Feel free to try "hfsc". > > Again, I suggest you disable downlink shaping. > > Keep in mind the traffic shaper is implemented in the Linux kernel and the > 'tc' command. We can't make it any better than how it is implemented in > Linux. > > As for "the VoIP UDP Ports range in the traffic shaper config" it does not > matter much anymore if you enable QoS marking in Asterisk, mostly a legacy > setting. A DSCP match is the best way to go when possible, and automatic. > > Lonnie > > > > On Sep 4, 2013, at 4:10 PM, Michael Knill wrote: > >> Ok well the traffic shaping does not work the way I thought then which is a >> big problem as far as I am concerned. So Lonnie what you are saying is that >> you essentially have to configure the traffic shaper to allow the headroom >> for the maximum number of supported channels? This basically takes the >> system back to the multiplexor days. The way that QoS and traffic shaping >> should work is that the full shaped envelope has prioritised traffic with it >> so that the full bandwidth can be used at all times by all traffic types and >> bandwidth restrictions only apply during congestion. This is how a Cisco >> router works and I thought this worked the same way. This is really >> disappointing to find this out now as it was a significant decider in me >> using Astlinux. I am going to need to use a separate broadband connection >> for voice for most businesses as they will not tolerate the significant >> reduction of upload speed or I will need to use a true QoS capable router >> which would be really disappointing . >> >>> From my perspective, the firewall, routing and QoS areas of Astlinux are >>> the areas that I would like to have the most development as this is what >>> differentiates Astlinux from nearly all other distributions, not the fact >>> that it runs Asterisk. >> >> Getting back to the RTP ports, I still dont know what the VoIP UDP Ports >> range does in the traffic shaper config. Can someone please tell me? >> I have set 16384:16639 as recommended. Now after doing an RTP Debug from >> making an outgoing external phone call, this is what I get: >> >> Sent RTP P2P packet to 203.2.134.1:21294 (type 08, len 000160) >> Sent RTP P2P packet to 172.30.30.116:16458 (type 08, len 000160) >> Sent RTP P2P packet to 203.2.134.1:21294 (type 08, len 000160) >> Sent RTP P2P packet to 172.30.30.116:16458 (type 08, len 000160) >> Sent RTP P2P packet to 203.2.134.1:21294 (type 08, len 000160) >> Sent RTP P2P packet to 172.30.30.116:16458 (type 08, len 000160) >> >> Yes the port is correct for the internal IP Phone (172.30.30.116) but the >> external provider port is negotiated by them (203.2.134.1). So what is the >> point of putting 16384:16639 in the shaper and the firewall rules. Its >> doesn't even see these ports as they are sent back to the internal interface? >> >> I would really like to get this sorted as it significantly affects my whole >> system architecture and at this stage, for sites that share a single >> broadband connection, I will have to use a separate QoS capable router. >> >> Regards >> Michael Knill >> >> >> >> >> On 05/09/2013, at 1:05 AM, Lonnie Abelbeck <[email protected]> wrote: >> >>> Hi Michael, >>> >>> First, I would disable Downlink shaping, the latest version of AstLInux >>> have a "Disabled" option, with your 1.0.4 version setting "Downlink Speed" >>> to "0" should work IIRC, though official in AstLinux 1.1.0 . >>> >>> The "Uplink Speed" reserves about 25% for VoIP traffic, so a value of 1000 >>> Kbps will limit low priority traffic to about 750 Kbps, leaving 250 Kbps >>> for VoIP if the real limit is 1000 Kbps. This would support 2 SIP calls >>> using a ulaw codec. >>> >>> Keep lowering "Uplink Speed" to provide more headroom for VoIP calls. >>> >>> As far as the VoIP UDP port range, the range should match your Asterisk >>> rtp.conf settings (reduce the default) and match a manual allowed UDP port >>> range in your firewall (Pass EXT->Local). Do not enable the sip-voip >>> plugin. >>> >>> In practice any *phone* that registers with your Asterisk should have the >>> same VoIP UDP port range defined in their configs. A range (rtpend - >>> rtpstart) of 256 ports should be fine, don't make it too large. >>> >>> Lonnie >>> >>> >>> On Sep 4, 2013, at 7:22 AM, Michael Knill wrote: >>> >>>> I have been doing some more testing with iftop. My ADSL service is >>>> clocking at 947K Up so I have set 900K as the upload speed. >>>> iftop is showing a constant 800K or so peak ppp0 interface transfer rate. >>>> I assume this is not 900 due to overheads etc. This rate does not change >>>> much when a call is included into the traffic. Although the data traffic >>>> reduces, there is considerable voice packet loss. >>>> If I change the shape rate to 800, my ppp0 interface transfer rate reduces >>>> to around 700K as expected. Now when I add a voice call, there is no >>>> packet loss, however the interface traffic rate goes to about 780K which >>>> indicates that it is not being included in the shaped envelope. When I add >>>> a second call, I get packet loss again as it is taken past the maximum >>>> upload rate. >>>> >>>> To me this indicates that the voice traffic is not being included in >>>> traffic shaping or traffic shaping is not even working. I turned it off >>>> and it really didn't make any difference. >>>> The box is using version 1.0.4. Any ideas? >>>> >>>> Regards >>>> Michael Knill >>>> >>>> >>>> >>>> >>>> On 04/09/2013, at 5:34 PM, Michael Knill >>>> <[email protected]> wrote: >>>> >>>>> To the group >>>>> >>>>> I am still very confused about what I should be setting the VoIP UDP port >>>>> range to. I use different providers with different ranges. Do I just set >>>>> it to 10000 - 65535? >>>>> What does it actually do? >>>>> >>>>> In the Astlinux Firewall Addins doco it says for sip-voip: >>>>> >>>>> This plugin attempts to track the RTP ports used in a SIP dialog and >>>>> automatically open the necessary RTP ports when needed. >>>>> In practice this plugin does not always yield the expected results. Feel >>>>> free to experiment. >>>>> When this plugin is disabled (the default) the SIP RTP ports must be >>>>> manually opened to match the Asterisk rtp.conf rtpstart/rtpend values. >>>>> >>>>> The rtpstart and rtpend values I have in rtp.conf are not what my >>>>> provider(s) use. Should I change it to match? How come I have no sip >>>>> firewall rules as mentioned above but it still works fine? >>>>> How does the firewall know to open up the media ports? In all the tests I >>>>> did, the port was the same so does it just set up a stateful translation? >>>>> >>>>> This really started with one of my customers today whereby they were >>>>> significantly congesting their broadband link (yes working on that) but >>>>> their existing telco service was working fine (getting dropouts but the >>>>> voice was fine, albeit delayed). I added another service from another >>>>> Telco (before I realised it was congested) and they were having lots of >>>>> upstream voice quality problems. >>>>> >>>>> Is there anything that could cause one service to be matched in the >>>>> traffic shaper and another not? >>>>> >>>>> Regards >>>>> Michael Knill >>> >>> >>> ------------------------------------------------------------------------------ >>> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! >>> Discover the easy way to master current and previous Microsoft technologies >>> and advance your career. Get an incredible 1,500+ hours of step-by-step >>> tutorial videos with LearnDevNow. Subscribe today and save! >>> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> Astlinux-users mailing list >>> [email protected] >>> https://lists.sourceforge.net/lists/listinfo/astlinux-users >>> >>> Donations to support AstLinux are graciously accepted via PayPal to >>> [email protected]. >> >> >> ------------------------------------------------------------------------------ >> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! >> Discover the easy way to master current and previous Microsoft technologies >> and advance your career. Get an incredible 1,500+ hours of step-by-step >> tutorial videos with LearnDevNow. Subscribe today and save! >> http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk >> _______________________________________________ >> Astlinux-users mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/astlinux-users >> >> Donations to support AstLinux are graciously accepted via PayPal to >> [email protected]. >> >> > > > ------------------------------------------------------------------------------ > Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! > Discover the easy way to master current and previous Microsoft technologies > and advance your career. Get an incredible 1,500+ hours of step-by-step > tutorial videos with LearnDevNow. Subscribe today and save! > http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk > _______________________________________________ > Astlinux-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/astlinux-users > > Donations to support AstLinux are graciously accepted via PayPal to > [email protected]. ------------------------------------------------------------------------------ Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk _______________________________________________ Astlinux-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/astlinux-users Donations to support AstLinux are graciously accepted via PayPal to [email protected].
