IP address will bypass any passwords and codec selections at the near end. You would normally use the sip.conf section name for the other server.
You also need to provide the logs from the other end. My guess is that you have a message about extension 1500 not being in whatever the context associated with the calling server is.
Each extension number should exist on the all the servers that use it.
There should be a sip.conf peer for each other server that can be the destination or source of calls for the current server.
(As described, A should have entries for B, C, and D, and each of those should have entries for A.)
The context associated with those sip.conf entries should contain all the extension which are local to the server.
The context for locally originated calls should contain all the extensions.
Again, IAX trunks may be a better solution. and there are other mechanisms for supporting unified numbering schemes.
Local extensions should Dial the final device. Remote extensions should dial the distant server, with dialed digits included.