My question would be: Is there a stable way to reserve a given amount bandwidth for VoIP connections (Viber, Skype, WhatsApp, etc.) through winbox?
I got to the point where I can flag packets that are connected to VoIP sessions, but I cannot find the way to separate them from other packets. I cannot fixate IP or MAC addresses, as VoIP sessions would be used by more users, through wifi connection.
I am sorry for any misleading information. The problem is with voice or video calls through Skype or Viber. I need to have reserved bandwidth for these services even when the network is under heavy load.
Correct me if I am wrong, I meant VoIP sessions in the above mentioned apps. These packets have no other traits, than being flagged as VoIP packets through a mangle rule.
Subnetting is not possible, as the devices are mainly notebooks or mobile phones. And no wired VoIP phones are included in the network.
It is a possibility that I do not need to mark these packets, this only seemed a way to start reserving bandwidth.
What I wrote was meant as a general guideline, so it’s possible it may not apply to your setup. But the caracteristics part still applies.
Unless you know how an application behaves (protocol, port, DST IP address, anything that can help to identify it), it’s going to be hard to do bandwidth reservation as it’ll get mixed up with other traffic from the client device. Harder still, a lot of these apps will use ports like TCP/443 since the developper doesn’t want it’s app blocked by firewalls. Sneaky devils!!!
I would suggest that you create two firewall filters #1: Chain=forward, SRC-address=<YOUR_TEST_DEVICE> Action=log, Log-prefix=“TEST_APP_UPLOAD” #2: Chain=forward, DST-address=<YOUR_TEST_DEVICE> Action=log, Log-prefix=“TEST_APP_DOWNLOAD”
and place then at the top. It’ll generate a lot of traffic, so you could log into the router using an app like putty and copy the screen display to a text file on your computer for later analysis.
These filters will simply dump generic info about the traffic to and from that SINGLE client using a SINGLE app (the one to give reserved bandwidth to) and see if you can isolate one or more recuring traits.
That’ll be the hard part. Test often as the servers may be used in a roundrobin or load balancing fashion (like Netflix for example) and then, addresses will change. If you can list all the IP addresses used by your app, then you can build an address list and use it later on. Google it as server IPs might be made public.
The best would be a specific protocol (in your case, most likely UDP) and a specific port (not used by other common apps).
Okay, thank you very much, I think I start to see your point.
Let’s pretend I can say for sure what UDP ports and addresses are active during e.g. a viber call(based on this logging method, I got some data, but still need to test on more apps and clients). How can I make them prioritized over other traffic? Does marking the packets have to do anything with this, or is that a dead end?