1. Исходящий шейпинг плюс LLQ — легко. В принципе, классификацию трафика можно делать через NBAR, ресурсов должно хватить (если там ничего кроме канала на 4,5мб/с канала нет).
С приоритезацией входящего трафика сложнее. Если в какие-то моменты времени возникнет перегрузка канала (а она будет, ибо TCP всегда работает всплесками, даже если в среднем за 5 секунд канал нагружен лишь наполовину), то дропать пакеты будет железка провайдера, а она не делает различий между голосом и HTTP. У меня (дома) более-менее хорошо работает схема «полисить все кроме голоса до 3/4 от скорости канала». Увы, любая реализация красивых очередей в направлении «in» будет вызывать дропы голосового трафика, и даже предложенная схема не идеальна, кратковременные всплески будут. Ну и канал задействуется неоптимально.
3. Вряд ли.
4. С точки зрения указанной задачи — никакого.