How does an Asterisk trunk stop completing calls without warning?
Almost always, Asterisk keeps running and the trunk stays configured, but something between it and the carrier changed. The registration expired and did not renew, NAT started hiding the media address, the router turned on SIP ALG, or an automatic ban blocked the carrier’s IP. Nothing turns red, and callers hear silence.
The most frequent causes:
- Expired registration. On trunks with SIP registration, a changed password, a DNS change or a repeated 401 leaves the trunk unregistered. Inbound calls stop arriving, while outbound may keep working, which hides the problem.
- NAT and SIP ALG. A router with SIP ALG turned on, or a wrong
external_media_address, makes the call connect with audio in one direction only. - No matching codec. An
allowlist changed during an upgrade makes the carrier respond with a 488. - Channels exhausted. The contract’s simultaneous call limit shows up as a 503 with Q.850 cause 34.
- Automatic ban. A fail2ban or firewall rule that bans the carrier’s IP takes down inbound calls without any error on the PBX.
Where do you look for each symptom?
Each symptom leaves a different trail in Asterisk. The table below links what the team notices to the SIP code or Q.850 cause that tends to appear and to the command that confirms the diagnosis. The commands are for chan_pjsip; on chan_sip, the equivalents are sip show registry, sip show peers and sip set debug on.
| Symptom | SIP code or cause | Where to look |
|---|---|---|
| Inbound stopped, outbound works | Expired registration, or repeated 401 | pjsip show registrations |
| Outbound rejected | 403 Forbidden: IP, credentials or caller number not accepted | pjsip set logger on |
| Call connects, no audio on one side | NAT or SIP ALG rewriting the SDP | rtp set debug on, external_media_address |
| Rejected right after the INVITE | 488 Not Acceptable Here: no matching codec | pjsip show endpoint <trunk>, allow line |
| Rejected at peak times | 503 with cause 34 | core show channels |
| No response from the carrier | 408 Request Timeout | pjsip show contacts, firewall rules |
What does a real test call catch that Asterisk does not show?
Asterisk only sees what reaches it. If the carrier stopped delivering calls to your number, the CDR stays empty and no log reports an error. qualify may keep responding, because an answered OPTIONS does not prove that an INVITE completes. A call placed from the outside, like a customer’s, shows exactly that.
It also judges the full result: whether the call connected, whether audio flowed both ways, whether the IVR played the right greeting and whether the measured voice quality stayed above the agreed threshold.
What changes on Issabel?
Issabel is an Asterisk-based distribution with its own web interface. Underneath, the failures are the same, and the commands in the table work in the console, opened with asterisk -rvvv. Many older installations still use chan_sip, so check registrations with sip show registry and peers with sip show peers.
Also look at the distribution’s own firewall and at the site’s router: an Issabel behind an internet link with a dynamic IP loses inbound calls when the IP changes and the carrier authenticates the trunk by address.
Where do you look on FreePBX?
On FreePBX, trunks live under Connectivity > Trunks, and the Asterisk Info report shows registrations and peers without opening the console. The same failures apply, plus one common one: the FreePBX firewall or intrusion detection blocking the carrier’s IP after repeated attempts.
After a module update, check the trunk’s codec list and NAT options, which are the settings that most often change behavior without changing the status on screen.
How does Monitor monitor an Asterisk?
Monitor does not integrate with Asterisk, Issabel or FreePBX; it calls the numbers, so it works with any of them. 2N5 places real test calls at the agreed pace, retries a failure before alerting and delivers the incident with the SIP code and the Q.850 cause.
See how this works in SIP trunk monitoring and, for service numbers, in 0800 and IVR monitoring.
Frequently asked questions
Does Monitor install a module on Asterisk or FreePBX?
No. Monitor does not integrate with Asterisk, Issabel or FreePBX. 2N5 calls the numbers you choose, from its own platform, the way a customer does. That is why it works with any version, with chan_sip or chan_pjsip, and with any carrier.
Isn't Asterisk's qualify enough to know the trunk is up?
Qualify sends SIP OPTIONS and measures whether the other side responds. It proves that signaling gets through, but not that an INVITE completes, that the inbound number points to your server, or that audio flows both ways. A trunk can answer OPTIONS and reject every call.
How do I tell whether the problem is Asterisk or the carrier?
Compare what Asterisk logged with what the test call received. If the outside call never reaches Asterisk, the failure is upstream, at the carrier or in the network. If it arrives and is rejected, the SIP response and the PJSIP log show who rejected it and why.
Do the test calls show up in the Asterisk CDR?
Yes, when the tested number reaches your Asterisk. The test call is an ordinary inbound call, so it creates a CDR record like any other. It is short and goes to the number you chose, such as an IVR, a test tone or an echo service.