SIP/IAX connectivity stops working

I have a FreePBX machine that occasionally will stop accepting both SIP and IAX connections. We have about 300 Polycom handsets registered to it, and all it’s calls go across an IAX trunk to one of our other servers. When the problem occurs, new SIP connections can no longer be made to the server, the existing ones fail to respond, and it stops processing all IAX connections. Looking over the logs, I can’t see any consistent thing that happens right before it occurs; but right after it happens, I do get a lot of “chan_iax2.c: Max retries exceeded to host x.x.x.x on IAX2/trunk-5551 (type = 6, subclass = 2, ts=3066692, seqno=76)” errors. These keep repeating, with type 6, and subclasses 2 and 11, for all servers with which it has an IAX trunk. The ts’s and seqno’s continue to increment as time goes on. When this happens, the server on the other side of the IAX trunk continues to function, without interruption of service to other servers (also connected via IAX trunks), and the IAX trunk to the machine in question shows as unknown status in an ‘iax2 show peers’. A simple restart (not reload) of Asterisk solves the problem. Does anyone know what may be causing this?

The machine is a dual xeon 3.6Ghz with 8GB of ram, running 64-bit Debian Etch, with FreePBX 2.4.0.0 and Asterisk 1.4.20.1 compiled from source.

Thanks!