3xx help needed, is this supported?

I have setup asterisk for a pretty basic job, basically I am using it as a proxy for outbound calls from a gateway which can’t handle 3xx.

I have all calls forwarding from my gateway to sip:number@asterisk:5060

Asterisk is responsible simply to forward them to another gateway, however if the other gateway responds with a 3xx, then asterisk handles them…

This is working if I have one contact in a 300 Multiple Choices reply (kind of working, I have another problem where it always seems to call my gateway twice for some reason, but I’ll deal with that later)…

If I have 2 contacts or more, it attempts the first contact, which if the contact is ok it calls, however if the contact is unreachable and doesn’t reply it never trys the second contact but retransmits instead to the contact which failed.

How can I configure Asterisk to try the contact and if it fails try the next contact?

The only changes to the out of the box config I’ve made are to sip.conf and extensions.conf

I set in sip.conf :

promiscredir = yes
context=from-sip

[gateway]
type=peer
host=mygatewaywhichreturns300

I set in my extensions.conf

[from-sip]
exten => _.,1,Dial(SIP/${EXTEN}@gateway)

Thanks in advance, i’m a bit of a noob to Asterisk so if I’ve gone horribly wrong feel free to let your full leash of fury on me, but at the same time try and get me back on the right path

Thanks
Steve