QoS in an Office Network: Prioritizing Calls, Video and Critical Apps
Advanced4 minInnovialabs editorial team
In short
QoS does not add bandwidth — it decides which packets go first when a link is congested, so it works where you control the bottleneck: your upload to the ISP, the LAN and Wi-Fi.
What QoS can and cannot do
Quality of Service manages the queue at a congested point. When the link is not full, QoS has nothing to do. When it is full, QoS decides which packets are sent first and which are delayed or dropped.
So QoS helps calls and video meetings stay clean while someone uploads a large file. It does not fix a link that is simply too slow for the office — that needs more bandwidth.
Where QoS actually works
| Point in the network | Control | What to do |
|---|---|---|
| Upload to the ISP | Full | Shape traffic slightly below the real upload speed and prioritize inside that limit |
| Download from the ISP | Indirect | Shape incoming traffic slightly below the real speed so the queue forms on your router, not at the provider |
| LAN switches | Full, rarely needed | Matters on busy uplinks between switches and to access points |
| Wi-Fi | Partial | WMM maps traffic into voice, video, best effort and background categories |
| The internet beyond your router | None | Providers usually ignore or rewrite your markings |
The key idea: the queue must form on a device you control. If your router thinks the link is faster than it is, packets pile up in the ISP's modem, where your rules do not apply.
DSCP marking
DSCP is a 6-bit field in the IP header that says how a packet should be treated. Common values:
| Traffic | DSCP name | Value |
|---|---|---|
| Voice (RTP media) | EF | 46 |
| Video conferencing | AF41 | 34 |
| Call signaling (SIP) | CS3 | 24 |
| Business apps | AF21 | 18 |
| Default | CS0 | 0 |
| Background (backups, updates) | CS1 | 8 |
IP phones and some conferencing apps mark their packets themselves. Decide on a trust boundary: trust markings from phones, but do not blindly trust laptops, or every app will mark itself as urgent. Where devices do not mark traffic, classify it on the router by IP address, port or subnet (for example, the voice VLAN).
Queues and limits
A typical small-office scheme:
- Priority queue for voice, with a cap so it can never starve other traffic.
- Guaranteed share for video meetings and critical apps (ERP, accounting, POS).
- Default class for everything else.
- Low priority for backups, updates and large downloads.
Per-user or per-app limits are a separate tool: a cap on one IP address or one application stops a single person from filling the link. Many routers can split the bandwidth fairly between active users automatically.
Modern smart queue management (fq_codel, CAKE) reduces bufferbloat — delays caused by overfilled buffers. On many office links it gives a bigger improvement than a complex class scheme, so start with it.
Configuration examples
OpenWrt with SQM and CAKE (speeds in kbit/s, set slightly below measured values):
config queue 'wan'
option enabled '1'
option interface 'eth1'
option download '90000'
option upload '45000'
option qdisc 'cake'
option script 'piece_of_cake.qos'
The layer_cake.qos script additionally uses DSCP to split traffic into priority tiers.
MikroTik RouterOS: mark voice packets and give them priority in an upload queue tree.
/ip firewall mangle
add chain=postrouting out-interface=ether1 dscp=46 action=mark-packet new-packet-mark=voice passthrough=no
add chain=postrouting out-interface=ether1 action=mark-packet new-packet-mark=other passthrough=no
/queue tree
add name=up parent=ether1 max-limit=45M
add name=up-voice parent=up packet-mark=voice priority=1 limit-at=5M max-limit=45M
add name=up-other parent=up packet-mark=other priority=8 max-limit=45M
Consumer and SMB routers usually offer "QoS" or "bandwidth control" pages: enter real WAN speeds, set device or application priorities and per-device limits.
Step by step
- Measure real upload and download speeds at different times of day.
- List what is critical: calls, video meetings, cloud accounting, card terminals.
- Enable shaping or SQM slightly below the measured speeds.
- Create a few classes: voice, video, business, default, background.
- Move backups and large syncs to low priority or night hours.
- Test: make a call while uploading a large file and listen for choppy audio.
Common mistakes
- Entering the advertised speed instead of the measured one.
- Too many classes that nobody can maintain.
- Marking everything as high priority, which equals no priority.
- Expecting QoS to fix an overloaded link or poor Wi-Fi coverage.