You don't need to reserve 30% for VoIP, because QoS is about more than just bandwidth limiting. It's also about prioritization.
If you've got VoIP in the highest priority bucket, and you've saturated your global limit (which means that your line itself is never saturated), then the VoIP packets are going to always get sent out first. They get to jump the queue.
This is why QoS doesn't work well on downstream. In that case, it can't set priorities on the remote side, all it can do is try to bandwidth limit things by selectively dropping or delaying packets and hoping TCP throttles the connection. And it can't do anything to limit UDP traffic, since UDP has no congestion control mechanism.--
Developer: Tomato/MLPPP, Linux/MLPPP, etc »fixppp.org