Common VoIP problems,
How to detect, correct and
avoid them.
Penny Tone LLC 1
Who am I ?
David Attias
Installing VoIP systems for over 7
years
Mikrotik user for 5 years
Mikrotik certifications
MTCNA, MTCRE & MTCWE
Penny Tone LLC 2
Purpose of this lecture
To inform Mikrotik users on how to
identify and resolve voip problems
Penny Tone LLC 3
Agenda
1) Identify factors which will affect VoIP call quality
2) Correct call quality issues with RouterOS QoS
Marking packets with Mangle
Shaping VoIP traffic with Queues
3) Detecting VoIP call quality problems
Check for dropped packets
Using RouterOS packet sniffer & wireshark
4) Avoid call quality issues
Penny Tone LLC 4
What is VoIP?
Several protocols used together to send and
receive REAL TIME voice calls through an
IP network(s).
Penny Tone LLC 5
Identify factors that affect
call quality
Penny Tone LLC 6
Considerations about VoIP call quality
VoIP calls are REAL TIME!!
Connection between phones and voip servers
must have low delay and very low Jitter.
Must have enough available symmetrical
bandwidth.
g711 uLaw codec = 87.2k per channel
[20ms voice payload per packet]
Sip = 65k (max sip message size)
Penny Tone LLC 7
The Problems
Penny Tone LLC 8
What can affect call quality?
*Not considering hardware problems
High jitter levels
– What is Jitter? Packet Delay Variation / The time lapse
between each packet for a given data stream
Packet Loss
Delay
Penny Tone LLC 9
In the real world.
Jitter, packet loss and delay can happen
anywhere between the phone and (hosted)
server.
However, 90% of call quality issues happen at
the customer location.
Why? Because customer networks are rarely
configured properly – if configured at all for VoIP
QoS.
USE MIKROTIK!!!
Penny Tone LLC 10
Correcting issues with
RouterOS QoS
Penny Tone LLC 11
Quality Of Service (QoS)
Techniques that categorize and prioritize
packets
Ensures sufficient bandwidth, controls latency,
jitter, and reduces data loss.
Regulate data flows by classifying, scheduling,
and marking packets based on priority and by
shaping traffic
Penny Tone LLC 12
MikroTik Mangle
Penny Tone LLC 13
Mikrotik Mangle
Mangle is a Mikrotik routerOS facility that
marks packets for future processing.
The mangle marks exist only within the router.
Also used to modify some fields in the IP
header, like DSCP and TTL fields
Only 1 packet mark per packet
Only 1 connection mark per packet
Penny Tone LLC 14
To conserve processor resources:
First mark the connection
Once the session is in “connection tracker” all
packets for that session are marked.
This is more efficient because Mangle doesn't
need to scrutinize every packet. It just needs to
know if the packet is in “that” connection.
Penny Tone LLC 15
Qualify Traffic
SiP server = [Link]
SiP port = 5060 tcp
RTP port range = 10000 ~ 20000 udp
Penny Tone LLC 16
Mark the SiP connection
Penny Tone LLC 17
Mark the SiP connection
/ip firewall mangle
add chain=forward dst-address=[Link]
protocol=tcp dst-port=5060 action=mark-
connection new-connection-mark=sip-
connection
Penny Tone LLC 18
Mark the SiP connection
Penny Tone LLC 19
Mark the SiP packets
Penny Tone LLC 20
Mark the SiP packets
/ip firewall mangle
add chain=forward
connection-mark=sip-connection
add action=mark-packet
new-packet-mark=SIP
Penny Tone LLC 21
Mark the SiP packets
Penny Tone LLC 22
Mark the RTP connection
Penny Tone LLC 23
Mark the RTP connection
/ip firewall mangle
add action=mark-connection chain=forward dst-
address=[Link] new-connection-mark=rtp-
connection port=10000-20000 protocol=udp
Penny Tone LLC 24
Mark the RTP connection
Penny Tone LLC 25
Mark the RTP packets
Penny Tone LLC 26
Mark the RTP connection
/ip firewall mangle
add action=mark-packet chain=forward
connection-mark=rtp-connection new-packet-
mark=RTP
Penny Tone LLC 27
Mark the RTP Packet
Penny Tone LLC 28
How do we know its working?
Penny Tone LLC 29
How do we know it's working?
Penny Tone LLC 30
Change DSCP
Differentiated Services Code Point (DSCP) is a
field in an IP packet that enables different levels
of service to be assigned to network traffic.
Penny Tone LLC 31
Change DSCP
Penny Tone LLC 32
Mikrotik Queues
Penny Tone LLC 33
Mikrotik Queues
limit data rate for certain IP addresses,
subnets, protocols, ports, and other parameters
limit peer-to-peer traffic
prioritize some packet flows over others
configure traffic bursts for faster web
browsing
apply different limits based on time
share available traffic among users equally,
or depending on the load of the channel
Penny Tone LLC 34
Mikrotik Queues
Parent Queues (inner queues) – distribute bandwidth
Child Queues (leaf queues) – consume bandwidth
Penny Tone LLC 35
Mikrotik Queues
Parent Queue
u es
Q ue
hild
C
Penny Tone LLC 36
Mikrotik Parent Queues
Parent Queues only responsibility is to
distribute traffic to child queues.
Parent queue will first satisfy the child queue's
“limit-at” traffic then try and reach child “max-
limit”.
Priorities are ignored on Parent Queues.
Penny Tone LLC 37
Mikrotik Queue priorities
8 is the lowest priority, 1 is the highest.
Queue with higher priority will have a chance to
satisfy its max-limit value before lower priority
queues.
Actual traffic prioritization will work only if limits
are specified.
Penny Tone LLC 38
Create A Queue Tree
Scenario:
My home office
5 phones
internet bandwidth = 35Mb download
4Mb upload
Penny Tone LLC 39
Create A Queue Tree
First create a queue
/queue tree
add limit-at=4M max-limit=4M
name=upload
parent=ether1-gateway
priority=8 queue=default
Penny Tone LLC 40
Create A Child Queue
Create an RTP queue and select it's “parent”
as “upload”
add limit-at=440k
max-limit=440k
name=upload_pri_1
packet-mark=RTP
parent=upload
priority=1
queue=default
Penny Tone LLC 41
Create A Child Queue
Create a SIP queue and select it's “parent” as
“upload”
add limit-at=325k
max-limit=325k
name=upload_pri_2
packet-mark=SIP
parent=upload
priority=2
queue=default
Penny Tone LLC 42
Create A Child Queue
What about packets without any marks?
Penny Tone LLC 43
Create A Child Queue
Create a “no mark” queue and select it's
“parent” as “upload”
add limit-at=3M
max-limit=3M
name=upload_pri_2
packet-mark=SIP
parent=upload
priority=2
queue=default
Penny Tone LLC 44
Queue Tree GUI view
Penny Tone LLC 45
Queue Tree GUI view
Penny Tone LLC 46
Detecting Problems
Penny Tone LLC 47
Detecting problems
Check for “dropped packets” in queue tree
Enable the “dropped packets” view
Penny Tone LLC 48
Detecting problems
Check for “dropped packets” in queue tree
Enable the “dropped packets” view
Penny Tone LLC 49
Detecting problems
Check for “dropped packets” in queue tree
Enable the “dropped packets” view
Penny Tone LLC 50
Detecting problems
Mikrotik packet capture
Penny Tone LLC 51
Detecting problems
Mikrotik packet capture
From GUI:
Tools – Packet sniffer
Penny Tone LLC 52
Detecting problems
Mikrotik packet capture
From GUI:
Tools – Packet sniffer
Filter
IP
Penny Tone LLC 53
Detecting problems
Cap file [Link] will be created in “Files”
Download it
Then open [Link] in wireshark
Penny Tone LLC 54
Detecting problems
Filer = rtp
Then select one RTP packet
Penny Tone LLC 55
Detecting problems
Select “Telephony” - “RTP” - “Stream Analysis”
Penny Tone LLC 56
Detecting problems
The output will show RTP Stream statistics.
Penny Tone LLC 57
Detecting problems
Click “Player” - “Decode” - “Play”
Penny Tone LLC 58
Avoid Problems
Before on-boarding a customer:
Make sure their internet connection is adequate!
Monitor their WAN
Review the monitoring data!
Penny Tone LLC 59
Avoid Problems
Penny Tone LLC 60
Avoid Problems
- Packet capture every call! [Link]
- Also be aware of internet carrier problems
[Link]
Penny Tone LLC 61
Avoid Problems
Penny Tone LLC 62
Summary
1- Learned about some factors that affect VoIP
call quality
2- Learned how to reduce or eliminate call quality
issues
3- Leaned how to find issues and diagnose issues
4- Learned how to avoid issues
Penny Tone LLC 63