The simplest approach is often the best. Weighted Fair Queuing is easy to configure because it classifies traffic for different queues on the fly. This often provides the necessary protection for relatively small, interactive sessions (like voice) from the queuing delays created by occasional file transfers.