SIP hardphone disconnection (no network issues)

Hi, everyone!

Nice community you’ve got here.

I’ve looked around and found few similar posts, however, those did not have any proper response from the OP, so I’ve decided to start a new one.

Here is the sketch:
Asterisk Asterisk 11.14.2 (from Asterisk NOW) (1Gbit)
Server and phone locations are connected through OpenBSD-to-OpenBSD VPN (no NAT/Firewall, straight bypass)
278 Aastra 6730i phones (Yeap)
5 locations

Here is the issue:
Basically, the phones are disconnecting/unregistering.
It happens at random times and random phones throughout all locations.

Eg:
101, 102, 103 at location #1.
205, 206, 207, 208, 212, 260, 261 at location #2.
333, 355 at location #3.
450 at location #4.

It is never the same phones, it is never all the phones at one location, sometimes few locations do not experience any problems at all.
Cool thing is that VPN tunnel between server and a phone location is not going down.
The internet connection is stable at the time of outage as well.
There is enough bandwidth and NICs are able to handle huge load at both ends, server and client site.
The ping time from server to location is no more than 60ms.

The all-in-all quality of the call is always clear, I am trying to save up as much traffic as possible, using g729 and not qualifying the peers.

What am I missing here?
Maybe it is the amount of phones that are connected to the server?
Are the configs wrong?

That is the sip_custom.conf peer example:

[203]
disallow=all
allow=g729
type=friend
secret=iddqd
host=dynamic
canreinvite=no
qualify=no
context=idkfa

If you look back a few days, you will find details of a known and fixed bug that causes false unregisters.

canreinvite is deprecated or obsoiete; use directmedia;

type=peer is almost always better than type=friend.