On Wed, Jan 21, 2015 at 4:26 PM, Steven Ayre <steveayre@gmail.com> wrote:
My understanding is that today there is no channel variable in FS that lets control reject causes to stop bridge iterations over | separated endpoints.
Am I right or am I wrong?

fail_on_single_reject should be working for exactly that purpose. For example I use the following:

<action application="set" data="continue_on_fail=GATEWAY_DOWN,INVALID_GATEWAY"/>
<action application="set" data="fail_on_single_reject=!^^:GATEWAY_DOWN:INVALID_GATEWAY"/>
<action application="set" data="hangup_after_bridge=true"/>
<action application="bridge" data="sofia/gateway/gw1/$1|sofia/gateway/gw2/$1|sofia/gateway/gw3/$1"/>

This passes routes via multiple carriers. If the gateway is down/non-existent it will try the next sequential destination(s), but any other failure cause causes the bridge to end without trying the next (fail_on_single_reject). If all the gateways are down it returns to dialplan (continue_on_fail) otherwise it hangs up with the reject cause from the bridge.



Hi Steven,

I believe your explanation is spot on and makes a lot of sense. From a documentation standpoint I can see why some are confused. Both the wiki and the source code explicitly mention the AND (i.e. comma) condition being affected by fail_on_single_reject but not the OR (i.e. pipe) condition.

If there are no objections I'd like to submit this tidbit to be included in the fail_on_single_reject wiki entry.

-MC