Make dialing multiple channels not give up if one has congestion

I’m dialling local phones and remote offices via IAX2. The remote offices may themselves have multiple SIP peers IAX2 causes to ring. When a call arrives it makes the extensions in multiple offices ring in the hopes that someone will answer it. An example of an dial string is:


If all SIP extensions at the end of an IAX2 channel aren’t available the IAX2 channel returns CONGESTION to Dial(), which seems fair enough. But then rather than letting the other extensions continue to ring unless all channels fail the Dial() fails immediately, returning CONGESTION to the caller.

This means if some remote (possibly unmanned on the day) office has an technical hitch it will take down the entire group, which is not ideal.

Is there is way to make Dial() not fail unless all channels it dials stop ringing? Failing that is there some way to set things up so IAX/2 doesn’t return congestion if there are no working extensions?