I was saying there should not be any type=friend entries for the extensions, or is it a limitation of FreePBX that you are forced to use them?
About the only time you actually need type=friend is when two devices share the same IP address. Even then, I’m fairly sure that you don’t need it if they can be given fixed port numbers.
There is a common misunderstanding that you need a type=user element in order to initiate calls.
With type=peer, Asterisk will still accept registrations on the basis of the extension name, but will then authenticate and identify outgoing calls base on IP address and port number. That has the advantage that any attacker either has to break the registration, which is likely to get noticed, or has to do IP address spoofing even to get to the first stage of faking a call from an extension.