How to failover with fail_on_single_reject construct
I’m attempting to setup FS to failover from gw1, gw2, and gw3 subsequently. AND if any gateway response with NO_ANSWER or ALLOTED_TIMEOUT, then the next attempt should be stop. Using “fail_on_single_reject” var, I tried following script : <extension name="public_extensions"> <condition field="destination_number" expression="^1234$"> <action application="sleep" data="2000"/> <action application="answer"/> <action application="bridge" data="{ignore_early_media=true,fail_on_single_reject=NO_ANSWER, ALLOTTED_TIMEOUT}[leg_timeout=20}]sofia/gateway/gw1/7321231234|[leg_timeout=20]sofia/gateway/gw2/7321231234|[leg_timeout=20]sofia/gateway/gw3/7321231234}"/> <action application="hangup"/> </condition> </extension> Bridge app still continue attempting call to each gw1, gw2, and gw3 when ALLOTED_TIMEOUT response. From searching lists, above dialplan should work out fine. Did I misses any steps? Btw, tried above on FreeSWITCH Version 1.5.6b+git~20131010T172322Z~1cd6d44b06 (git 1cd6d44 2013-10-10 17:23:22Z) windows built. Thanks, Jkwan
Like to report back, in case anybody bumping to the same problem. After digging more and looking at debug log. Apparently the culprit is on the way I set channel variable. On my case, dialstring should be : <action application="bridge" data="{ignore_early_media= true,fail_on_single_reject=^^:NO_ANSWER:ALLOTTED_TIMEOUT}[leg_timeout= 20}]sofia/gateway/gw1/7321231234|[leg_timeout=20] sofia/gateway/gw2/7321231234|[leg_timeout=20]sofia/gateway/ gw3/7321231234}"/> Once that in-place, it work as expected. Thats all, my bad, Freeswitch Rock!! On Fri, Oct 18, 2013 at 3:58 PM, Johny Kadarisman Kwan <jkr888@gmail.com>wrote:
I’m attempting to setup FS to failover from gw1, gw2, and gw3 subsequently. AND if any gateway response with NO_ANSWER or ALLOTED_TIMEOUT, then the next attempt should be stop. Using “fail_on_single_reject” var, I tried following script :
<extension name="public_extensions">
<condition field="destination_number" expression="^1234$">
<action application="sleep" data="2000"/>
<action application="answer"/>
<action application="bridge" data="{ignore_early_media=true,fail_on_single_reject=NO_ANSWER, ALLOTTED_TIMEOUT}[leg_timeout=20}]sofia/gateway/gw1/7321231234|[leg_timeout=20]sofia/gateway/gw2/7321231234|[leg_timeout=20]sofia/gateway/gw3/7321231234}"/>
<action application="hangup"/>
</condition>
</extension>
Bridge app still continue attempting call to each gw1, gw2, and gw3 when ALLOTED_TIMEOUT response. From searching lists, above dialplan should work out fine. Did I misses any steps?
Btw, tried above on FreeSWITCH Version 1.5.6b+git~20131010T172322Z~1cd6d44b06 (git 1cd6d44 2013-10-10 17:23:22Z) windows built.
Thanks,
Jkwan
On 25.10.2013 22:41, Johny Kadarisman Kwan wrote:
Like to report back, in case anybody bumping to the same problem.
After digging more and looking at debug log. Apparently the culprit is on the way I set channel variable. On my case, dialstring should be :
<action application="bridge" data="{ignore_early_media=true,fail_on_single_reject=^^:NO_ANSWER:ALLOTTED_TIMEOUT}[leg_timeout=20}]sofia/gateway/gw1/7321231234|[leg_timeout=20]sofia/gateway/gw2/7321231234|[leg_timeout=20]sofia/gateway/gw3/7321231234}"/>
Once that in-place, it work as expected.
Thats all, my bad, Freeswitch Rock!!
Thank you. I am too in implementing this and was wandering how to do it. As I understand, fail_on_single_reject=^^:NO_ANSWER:ALLOTTED_TIMEOUT will make the bridge to try next gateway if there is a network failure with the gateway or its server does not respond, but will not try next gateway if caller does not answer or it is invalid number? Also could you update wiki to reflect this example of yours? -- Mimiko desu.
participants (2)
-
Johny Kadarisman Kwan
-
Mimiko