The ^^: make it do 

QUOTED_ESC_COMMA

vs 

UNQUOTED_ESC_COMMA

Which will make it do this later in the code:


                    for (p = chan_type + 1; p && p < bend && *p; p++) {                                                                                         

                        if (*p == QUOTED_ESC_COMMA) {                                                                                                           

                            *p = ',';                                                                                                                           

                        }                                                                                                                                       

                    }

I've had both cases work for me in testing.


On Thu, Feb 19, 2015 at 3:58 PM, Bote Man <bote_radio@botecomm.com> wrote:

It’s not only a colon that is used, it is two carats followed by a colon to tell FS what delimiter to use:

 

^^:

 

The example from the wiki page shows this:

 

<action application="set" data="fail_on_single_reject=^^:CALL_REJECTED:NORMAL_CLEARING:USER_BUSY"/>

 

But I defer to Brian since he knows the code much better than I.

 

Bote

 

 

From: Mi Ke
Sent: Thursday, 19 February, 2015 15:35


Subject: Re: [Freeswitch-users] piped failover doesn't work in dialplan, but works from console

 

Hello Brian,

 

Thank you for your response.

 

 

Commas in the list are not working either, even in console (where colons do):

 

freeswitch@internal> originate {fail_on_single_reject=CALL_REJECTED,NO_ANSWER}error/NO_ANSWER|error/USER_BUSY|error/CALL_REJECTED 999 <---- should be no_answer
-ERR CALL_REJECTED

2015-02-19 20:29:34.377089 [DEBUG] switch_ivr_originate.c:2100 Parsing global variables
2015-02-19 20:29:34.377089 [DEBUG] switch_event.c:1688 Parsing variable [fail_on_single_reject]=[CALL_REJECTED]
2015-02-19 20:29:34.377089 [NOTICE] switch_ivr_originate.c:2732 Cannot create outgoing channel of type [error] cause: [NO_ANSWER]
2015-02-19 20:29:34.377089 [DEBUG] switch_ivr_originate.c:3720 Originate Resulted in Error Cause: 19 [NO_ANSWER]
2015-02-19 20:29:34.377089 [NOTICE] switch_ivr_originate.c:2732 Cannot create outgoing channel of type [error] cause: [USER_BUSY]
2015-02-19 20:29:34.377089 [DEBUG] switch_ivr_originate.c:3720 Originate Resulted in Error Cause: 17 [USER_BUSY]
2015-02-19 20:29:34.377089 [NOTICE] switch_ivr_originate.c:2732 Cannot create outgoing channel of type [error] cause: [CALL_REJECTED]

 

Sent: Thursday, February 19, 2015 at 10:00 PM
From: "Brian West" <brian@freeswitch.org>
To: "FreeSWITCH Users Help" <freeswitch-users@lists.freeswitch.org>
Subject: Re: [Freeswitch-users] piped failover doesn't work in dialplan, but works from console

originate {fail_on_single_reject='CALL_REJECTED\,NO_ANSWER'}error/NO_ANSWER|error/USER_BUSY|error/CALL_REJECTED 999

 

Where are you getting the idea you can use a colon to separate the causes?

 

    /* When using the AND operator, the fail_on_single_reject flag may be set in order to indicate that a single                                                

       rejections should terminate the attempt rather than a timeout, answer, or rejection by all.                                                              

       If the value is set to 'true' any fail cause will end the attempt otherwise it can contain a comma (,) separated                                         

       list of cause names which should be considered fatal                                                                                                     

 

     */ 

 

 

 

On Thu, Feb 19, 2015 at 10:38 AM, Mi Ke <mi.ke@null.net> wrote:

Dear All,

 

I'm experimenting with the piped failover on the latest master. I want a failover to stop gw hunting and return from bridge when B-leg receives a specific disconnect code e.g. USER_BUSY or NO_ANSWER, but while it works as expected with error channels in console i.e.:

 

freeswitch@internal> originate {fail_on_single_reject=CALL_REJECTED:USER_BUSY}error/NO_ANSWER|error/USER_BUSY|error/CALL_REJECTED 999
-ERR USER_BUSY

 

freeswitch@internal> originate {fail_on_single_reject=CALL_REJECTED:NO_ANSWER}error/NO_ANSWER|error/USER_BUSY|error/CALL_REJECTED 999
-ERR NO_ANSWER

 

it does not work in dialplan:

 

        <extension name="outbound">
            <condition field="destination_number" expression="^\d{7}$">
                <action application="set" data="bridge_answer_timeout=120"/>
                <action application="set" data="continue_on_fail=NORMAL_TEMPORARY_FAILURE:NO_ROUTE_DESTINATION:CALL_REJECTED"/>
                <action application="set" data="fail_on_single_reject=USER_BUSY:NO_ANSWER:NO_USER_RESPONSE:RECOVERY_ON_TIMER_EXPIRE:ORIGINATOR_CANCEL"/>
                <action application="set" data="bridge_early_media=true"/>
                <action application="set" data="hangup_after_bridge=true"/>
                <action application="odbc_query" inline="true" data="route_out"/>
                <action application="bridge" data="${bridge_to}"/>
                <action application="hangup" data="${last_bridge_hangup_cause}"/>
                <anti-action application="hangup" data="INVALID_NUMBER_FORMAT"/>
            </condition>
        </extension>

 

or when included in bridge dialstring:

 

<action application="bridge" data="{fail_on_single_reject=USER_BUSY:NO_ANSWER}${bridge_to}"/>

 

i.e. it tries *all* gateways in the dialstring and ignores returning codes completely.

 

I tried the same test when remote gateways were just hanging up with USER_BUSY code on receiving calls, but it did not affect the same negative result - all remote peers were tried in order and return code were ignored.

 

I had the same experience with ver 1.2, but that time set continue_on_single_reject=err1,err2,err3 in dialplan worked for me flawlessly. However the same approach does not work for 1.5 and 1.4. Has anyone succeded in getting it to work as expected?

 

Thanks / Mike


_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting@freeswitch.org
http://www.freeswitchsolutions.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://confluence.freeswitch.org
http://www.cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org

 

 

--

Brian West
brian@freeswitch.org

Twitter: @FreeSWITCH , @briankwest
http://www.freeswitchbook.com
http://www.freeswitchcookbook.com

T:+19184209001 | F:+19184209002 | M:+1918424WEST (9378)
iNUM:+883 5100 1420 9001 | ISN:410*543 | Skype:briankwest

_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org

 


_________________________________________________________________________
Professional FreeSWITCH Consulting Services:
consulting@freeswitch.org
http://www.freeswitchsolutions.com

Official FreeSWITCH Sites
http://www.freeswitch.org
http://confluence.freeswitch.org
http://www.cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org



--

Brian West
brian@freeswitch.org


Twitter: @FreeSWITCH , @briankwest
http://www.freeswitchbook.com
http://www.freeswitchcookbook.com

T:+19184209001 | F:+19184209002 | M:+1918424WEST (9378)
iNUM:+883 5100 1420 9001 | ISN:410*543 | Skype:briankwest