Trunk Unreachable

Hi everybody,

I’ve been having this issue since implementing my PBX, but it seems to have gotten even worse lately.

About two or three times per hour (sometimes far more, sometimes less) I receive a “chan_sip:c Peer is now UNREACHABLE!” error.

For the most part, this only lasts ten seconds and I’m able to make the trunk reachable by running a ‘sip reload’ from the Asterisk command line. However, occasionally, this lasts for longer periods of time and reloading has no effect.

During the ten second blips, incoming and outgoing calls don’t seem to suffer, but during the longer outages, incoming calls result in nothing but silence and outgoing calls cannot be placed.

Aside from these occasional blips, the PBX works flawlessly, call quality is excellent.

Some additional information about the set-up:
[list]
[] The PBX is running on a virtual machine.
[
] The VM is running CentOS 6.2.
[] VoIP service is provided by VoIP.ms.
[
] The PBX uses FreePBX 2.10.1.9.
[] The PBX uses Asterisk 1.8.13.0.
[
] There are three trunks, two that are used regularly (called ‘TrunkOne’ and ‘TrunkTwo’) and one which is used for outgoing calls to toll-free numbers (we were having issues calling Canadian toll-free numbers from VoIP.ms’s American servers).
[] TrunkOne uses the Seattle VoIP.ms server (seattle.voip.ms).
[
] TrunkTwo uses the Chicago VoIP.ms server (chicago.voip.ms).
[] There are twelve IP phones which run from the PBX, ten Cisco SPA504Gs and two SPA525Gs.
[
] Our network uses a Cisco ASA5505 as its firewall. The PBX and all of the IP phones are behind the firewall.
[] QOS steps have been taken to give SIP packets priority, but I didn’t actually configure this myself, so I can’t speak to the specifics.
[
] ICMP/Ping are disabled by our firewall.
[/list]

Here’s the Asterisk log from Sunday, so you can see the error and its frequency without all of the call activity:

[2013-06-02 04:51:50] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 86 [2013-06-02 04:52:00] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (86ms / 500ms) [2013-06-02 04:53:01] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Lagged. (724ms / 500ms) [2013-06-02 04:53:11] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (88ms / 500ms) [2013-06-02 05:33:16] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 87 [2013-06-02 05:33:26] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (88ms / 500ms) [2013-06-02 05:34:27] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 88 [2013-06-02 05:34:40] NOTICE[1929] chan_sip.c: -- Registration for '######@seattle.voip.ms' timed out, trying again (Attempt #2) [2013-06-02 05:35:00] NOTICE[1929] chan_sip.c: -- Registration for '######@seattle.voip.ms' timed out, trying again (Attempt #3) [2013-06-02 05:35:21] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (87ms / 500ms) [2013-06-02 06:02:24] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 86 [2013-06-02 06:02:34] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (88ms / 500ms) [2013-06-02 06:10:36] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 86 [2013-06-02 06:10:46] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (87ms / 500ms) [2013-06-02 06:36:49] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Lagged. (636ms / 500ms) [2013-06-02 06:36:59] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (87ms / 500ms) [2013-06-02 06:38:00] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 87 [2013-06-02 06:38:10] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (87ms / 500ms) [2013-06-02 06:39:11] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 87 [2013-06-02 06:39:21] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (87ms / 500ms) [2013-06-02 07:12:26] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 86 [2013-06-02 07:12:36] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (87ms / 500ms) [2013-06-02 07:30:44] NOTICE[1929] chan_sip.c: Peer 'TrunkTwo' is now UNREACHABLE! Last qualify: 36 [2013-06-02 07:31:46] NOTICE[1929] chan_sip.c: -- Registration for '######@chicago.voip.ms' timed out, trying again (Attempt #2) [2013-06-02 07:32:06] NOTICE[1929] chan_sip.c: -- Registration for '######@chicago.voip.ms' timed out, trying again (Attempt #3) [2013-06-02 07:32:26] NOTICE[1929] chan_sip.c: -- Registration for '######@chicago.voip.ms' timed out, trying again (Attempt #4) [2013-06-02 07:32:46] NOTICE[1929] chan_sip.c: -- Registration for '######@chicago.voip.ms' timed out, trying again (Attempt #6) [2013-06-02 07:32:58] NOTICE[1929] chan_sip.c: Peer 'TrunkTwo' is now Reachable. (329ms / 2000ms) [2013-06-02 07:45:40] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 88 [2013-06-02 07:45:50] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (88ms / 500ms) [2013-06-02 08:26:55] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 86 [2013-06-02 08:27:05] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (88ms / 500ms) [2013-06-02 08:28:06] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 88 [2013-06-02 08:28:16] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (87ms / 500ms) [2013-06-02 09:14:21] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 87 [2013-06-02 09:14:31] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (87ms / 500ms) [2013-06-02 09:51:36] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 88 [2013-06-02 09:51:46] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (89ms / 500ms) [2013-06-02 10:19:49] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 88 [2013-06-02 10:20:00] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (89ms / 500ms) [2013-06-02 10:21:00] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Lagged. (865ms / 500ms) [2013-06-02 10:21:10] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (88ms / 500ms) [2013-06-02 11:01:15] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 87 [2013-06-02 11:01:25] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (89ms / 500ms) [2013-06-02 11:36:29] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Lagged. (538ms / 500ms) [2013-06-02 11:36:39] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (88ms / 500ms) [2013-06-02 11:37:40] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 88 [2013-06-02 11:37:50] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (90ms / 500ms) [2013-06-02 11:38:51] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 90 [2013-06-02 11:39:01] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (88ms / 500ms) [2013-06-02 12:58:09] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 88 [2013-06-02 12:58:19] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (90ms / 500ms) [2013-06-02 12:59:20] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 90 [2013-06-02 12:59:30] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (89ms / 500ms) [2013-06-02 13:28:34] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 88 [2013-06-02 13:28:44] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (88ms / 500ms) [2013-06-02 13:29:45] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Lagged. (999ms / 500ms) [2013-06-02 13:29:55] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (86ms / 500ms) [2013-06-02 14:03:59] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 86 [2013-06-02 14:04:09] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (87ms / 500ms) [2013-06-02 14:07:10] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 88 [2013-06-02 14:07:20] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (86ms / 500ms) [2013-06-02 14:43:24] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 94 [2013-06-02 14:43:35] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (87ms / 500ms) [2013-06-02 14:44:36] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 87 [2013-06-02 14:44:46] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (86ms / 500ms) [2013-06-02 15:16:50] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 91 [2013-06-02 15:17:00] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (90ms / 500ms) [2013-06-02 15:18:01] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 90 [2013-06-02 15:18:11] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (87ms / 500ms) [2013-06-02 15:43:14] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 86 [2013-06-02 15:43:24] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (89ms / 500ms) [2013-06-02 15:44:25] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 89 [2013-06-02 15:44:35] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (86ms / 500ms) [2013-06-02 16:12:39] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Lagged. (795ms / 500ms) [2013-06-02 16:12:49] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (87ms / 500ms) [2013-06-02 16:20:50] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 88 [2013-06-02 16:21:00] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (88ms / 500ms) [2013-06-02 16:52:04] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 87 [2013-06-02 16:52:14] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (88ms / 500ms) [2013-06-02 17:00:16] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 87 [2013-06-02 17:00:26] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (87ms / 500ms) [2013-06-02 17:25:29] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now UNREACHABLE! Last qualify: 87 [2013-06-02 17:25:39] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (88ms / 500ms) [2013-06-02 17:26:40] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Lagged. (526ms / 500ms) [2013-06-02 17:26:50] NOTICE[1929] chan_sip.c: Peer 'TrunkOne' is now Reachable. (87ms / 500ms)

Any troubleshooting steps, recommended reading, or general help would be appreciated greatly. If you need any more information or clarification about the set-up, just ask. Thanks in advance for your help.

But what sort of ASA5505 rules should I be adding?

The rules that control SIP and RTP packets from the outside to the inside interface, that control NAT functioning and that turn off the SIP ALG (fixup in older versions).

You should find out the IP’s of all your carriers servers and only open SIP to those networks. RTP is not a security concern but best practices suggests lowering the default RTP range to something that matches your deployment size and growth expectations.

You should not have to but it would not hurt to have a full time NAT policy for SIP to the Asterisk box.

Lastly if you have an extra external IP you could also do a symmetric NAT to that address (still with full policies).

This is a network problem, check your ASA5505 rules.

Alright, that makes sense. But what sort of ASA5505 rules should I be adding?