
In VoIP projects, from an Issabel phone system with 25 extensions and 2 SIP lines for Karzan Novavaran Honar va Memari to larger industrial networks, one of the most common complaints is: “the phones keep dropping”. Several quite different problems hide behind that one sentence. This article describes the routine I follow to find the cause, from pinning down the symptom to the physical layer, the phone system and NAT.
Step 1: pin down the symptom
Before changing anything, ask users exactly what happens. Each symptom usually points to one area:
- The call always drops after about 30 seconds: a SIP acknowledgement is not reaching its destination, usually because of NAT or the router’s SIP ALG.
- One-way audio or no audio: voice packets (RTP) cannot get through in one direction; almost always NAT or the firewall.
- A phone loses registration every few minutes: the registration interval is longer than the router’s NAT timeout, or the phone’s IP address keeps changing.
- All phones on one floor or one switch drop together: the problem is the switch, PoE power, a network loop or rack power, not the phone system.
- Choppy audio but the call stays up: delay and packet loss, usually bandwidth or missing QoS.
Note which extensions, at what time, and whether internal or external calls are affected. If only external calls drop, look at the trunk; if calls between two extensions drop too, the problem is inside your own network.
Step 2: cables, ports and PoE
Most problems that hit groups of phones are physical:
- Check switch port errors; on a Cisco switch with
show interfaces counters errors. Many CRC errors mean a bad cable, connector or patch cord. - Check the switch’s PoE power budget; on Cisco with
show power inline. If the phones already draw close to the limit, adding a camera or access point can make phones power-cycle. - If phones restart at the same time, check the switch power and the rack UPS too.
Step 3: VLAN, DHCP and IP addresses
- Phones are better off in a separate voice VLAN, so computer traffic does not affect them.
- Check the DHCP pool: if addresses run out or the lease is very short, a phone gets a new address and loses its registration.
- Rule out IP conflicts; two devices with the same address cause exactly this kind of random dropping.
Step 4: registration status on the phone system
On the Issabel (Asterisk) server, check the status of the extensions. Depending on the SIP driver:
asterisk -rx "sip show peers"
asterisk -rx "pjsip show endpoints"An extension that keeps switching between OK and UNREACHABLE, or responds slowly, shows that the network path to that phone is not stable. If all extensions are fine and only the trunk drops, the problem is the connection to the provider.
Step 5: trace the call with sngrep
The sngrep tool on the phone system server shows the SIP messages of each call as a diagram. Capture a problem call and check:
- Does the
ACKarrive after200 OK? A missing ACK is exactly the drop after 30 seconds. - Who sends the
BYE: the phone, the phone system or the provider? - Are the addresses inside the SIP messages real, reachable addresses, or internal network addresses?
Step 6: NAT, SIP ALG and voice ports
If a phone, trunk or branch connects from behind a router, check:
- Turn off SIP ALG. It rewrites SIP packets and usually breaks more than it fixes. On MikroTik:
/ip firewall service-port set sip disabled=yes- In Issabel’s SIP settings, enter the public address and internal networks correctly so the phone system knows it is behind NAT.
- Open the voice port range (RTP, 10000 to 20000 by default in Asterisk) in the firewall, only for the addresses that need it.
- For phones outside the office, use a VPN instead of opening the SIP port to the internet.
Step 7: voice quality and QoS
Each call with the G.711 codec needs about 87 kbps of bandwidth in each direction. On busy links between branches or to the internet:
- Give voice packets priority (QoS with the DSCP EF marking).
- If bandwidth is low, consider a lighter codec for the trunk between branches.
Short checklist
- Exact symptom: which extensions, what time, internal or external calls
- Port errors, cabling and PoE budget
- Voice VLAN, DHCP and IP conflicts
- Registration status of extensions and trunk in Issabel
- Trace one call with sngrep
- SIP ALG, NAT settings and RTP ports
- QoS and bandwidth
Work through these in order; changing several settings at once hides the real cause. To connect branch phone systems, see a trunk between two Issabel servers, and for NAT on MikroTik, NAT types on MikroTik. If your phone system has a problem this routine did not find, request a review from the VoIP and business communications service.
Photo: -stk, licensed under CC BY-SA 4.0, via Wikimedia Commons; cropped.



