OK - this is the important part - with SIP, the inbound “trunk” and the outbound “trunk” should be thought of a distinct, largely unrelated entities. Your “inbound” trunks allow a remote host to connect to your server. Your “outbound” trunks allow you to connect to a remote host. As tempting as it is to think of them like you would a Frame Relay or T1, it doesn’t pay.
With Chan-SIP, Yes, you can set up two trunks with identical INBOUND settings for the system to listen on. Any traffic that show us will be dropped into the local context you specify to be processed. This means that your phone system wouldn’t care in the slightest which server the traffic came from.
With PJ-SIP, you can set up “primary” trunk, preferably the one related to your outbound connections, and specify a “match” pattern in the “match” field that lays out all of the remote end servers that will be sending you traffic. Since this trunk allows all sorts of hosts to connect, it acts kind of like the two Chan-SIP trunks (above) in that it routes all of your incoming traffic to the one context you are using for inbound.
Now, for outbound traffic, you may need to set up an alternate server to send your traffic out to. Remember, inbound and outbound are only related by the coincidence that they are using SIP, but each trunk can only send traffic to one host. To use the alternate host, you specify the trunk out in your outbound routes and, in the primary fails, you fail over to the alternate.
Note that I discuss these separately. Once again, in my experience, it behooves you to think of these a separate channels and not a “bidirectional” single channel. That kind of thinking just leads you into a jungle of tangled routes where you spend all of your time trying to sort out which is which and what is what.
I hope that helps.