Asterisk, Issabel and FreePBX

SIP trunk monitoring on Asterisk, Issabel and FreePBX

Asterisk can show the trunk as registered and reachable while callers hear silence. This page brings together the most common silent failures on Asterisk and on the Issabel and FreePBX distributions, where to look in each case, and what only an outside call can prove.

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 allow list 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.

See it on your own circuits

2N5 prepares the demo with the numbers you choose. Three questions, about a minute.