hello, its just a stupid question ... but how do we handle network call forward in FS ? usually you we can activate call forward on the terminal itself and when a call hits the terminal it responds with a 302 message. This works but not with an unplugged terminal. So, is there any way to do a call network forward? Meaning if extension 1000 activates a CFU (by dialing some FAC - e.g. *21*<number>) to 1002 and we have an incoming call to 1000, FS should place the call to 1002 without even going to look at extension 1000. any chance without a mambo-jumbo hacking? T.
I would think in this situation you would need to either use a dynamic dialplan to return the 302 to whatever destination you wish (http://wiki.freeswitch.org/wiki/Mod_xml_curl), or if staying static a continue_on_fail branch along with lua to fetch your destination value. After a quick look at google looks like my line of thinking is somewhat on track... Old Nabble - Freeswitch-users - 302 redirects and continue_on_fail ... 302 redirects and continue_on_fail=true - Jul 18, 2009 [Freeswitch-users] "continue on fail" howto Good luck! Anthony C On Nov 15, 2010, at 4:14 AM, Tihomir Culjaga wrote:
hello,
its just a stupid question ... but how do we handle network call forward in FS ?
usually you we can activate call forward on the terminal itself and when a call hits the terminal it responds with a 302 message. This works but not with an unplugged terminal.
So, is there any way to do a call network forward? Meaning if extension 1000 activates a CFU (by dialing some FAC - e.g. *21*<number>) to 1002 and we have an incoming call to 1000, FS should place the call to 1002 without even going to look at extension 1000.
any chance without a mambo-jumbo hacking?
T. _______________________________________________ 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
On Mon, Nov 15, 2010 at 3:19 PM, Anthony Cosgrove <acosgrov@gmail.com>wrote:
I would think in this situation you would need to either use a dynamic dialplan to return the 302 to whatever destination you wish ( http://wiki.freeswitch.org/wiki/Mod_xml_curl), or if staying static a continue_on_fail branch along with lua to fetch your destination value.
After a quick look at google looks like my line of thinking is somewhat on track...
Old Nabble - <http://old.nabble.com/302-redirects-and-continue_on_fail%3Dtrue-td24544501.html> *Freeswitch<http://old.nabble.com/302-redirects-and-continue_on_fail%3Dtrue-td24544501.html> *-users - 302 redirects and <http://old.nabble.com/302-redirects-and-continue_on_fail%3Dtrue-td24544501.html> *continue_on_fail<http://old.nabble.com/302-redirects-and-continue_on_fail%3Dtrue-td24544501.html> * <http://old.nabble.com/302-redirects-and-continue_on_fail%3Dtrue-td24544501.html> *...<http://old.nabble.com/302-redirects-and-continue_on_fail%3Dtrue-td24544501.html> * 302 redirects and *continue_on_fail*=true<http://www.google.com/url?q=http://lists.freeswitch.org/pipermail/freeswitch-users/2009-July/016903.html&sa=X&ei=zD7hTMTkM4WglAe-5_TMAw&ved=0CDIQrAIoAzAD&usg=AFQjCNGc7F3s8UprN9V3M6iaV7L-NBsnog> - Jul 18, 2009 [*Freeswitch*-users] "*continue on fail*" howto
thanks for your answer .... actually im looking at something like this... still need to test it and see what the scalability might be. put this in context features: <extension name="A-CFU"> <condition field="destination_number" expression="^\*21\*(\d.*)$"> <action application="db" data="insert/FWD-${caller_id_number}/U/$1"/> <!-- play appropriate confirmation tone --> <action application="hangup"/> </condition> </extension> <extension name="D-CFU"> <condition field="destination_number" expression="^\#21\#$"> <action application="db" data="delete/FWD-${caller_id_number}/U"/> <!-- play appropriate confirmation tone --> <action application="hangup"/> </condition> </extension> <extension name="check_if_forwarded"> <condition field="destination_number" expression="^check_if_forwarded$"/> <condition field="${forwarded-to}" expression="^$"/> <action application="export" data="to_dial=user/${dialed_extension}"/> </condition> <condition field="destination_number" expression="^check_if_forwarded$"/> <condition field="${forwarded-to}" expression="^(10[01][0-9])$"/> <action application="set" data="sip_h_Diversion=<sip:${dialed_extension}@${sip_from_host};user=phone>;reason=unconditional"/> <action application="export" data="to_dial=user/${forwarded-to}"/> </condition> <condition field="destination_number" expression="^check_if_forwarded$"/> <condition field="${forwarded-to}" expression="^(0.*)$"/> <action application="set" data="sip_h_Diversion=<sip:${dialed_extension}@ ${sip_from_host};user=phone>;reason=unconditional"/> <action application="export" data="to_dial=loopback/${forwarded-to}"/> </condition> </extension> In context default just execute this to populate forwarded-to variable: <extension name="isForwarded"> <condition> <action application="set" data="forwarded-to=${db(select/FWD-${destination_number}/U)}"/> </condition> </extension> modify just a bit the LocalExtension :) <extension name="Local_Extension"> <condition field="destination_number" expression="^(10[01][0-9])$"> <action application="set" data="dialed_extension=$1"/> <action application="export" data="dialed_extension=$1"/> <!-- bind_meta_app can have these args <key> [a|b|ab] [a|b|o|s] <app> --> <action application="bind_meta_app" data="1 b s execute_extension::dx XML features"/> <action application="bind_meta_app" data="2 b s record_session::$${recordings_dir}/${caller_id_number}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/> <action application="bind_meta_app" data="3 b s execute_extension::cf XML features"/> <action application="set" data="ringback=${us-ring}"/> <action application="set" data="transfer_ringback=$${hold_music}"/> <action application="set" data="call_timeout=30"/> <!-- <action application="set" data="sip_exclude_contact=${network_addr}"/> --> <action application="set" data="hangup_after_bridge=true"/> <!--<action application="set" data="continue_on_fail=NORMAL_TEMPORARY_FAILURE,USER_BUSY,NO_ANSWER,TIMEOUT,NO_ROUTE_DESTINATION"/> --> <action application="set" data="continue_on_fail=true"/> <action application="hash" data="insert/${domain_name}-call_return/${dialed_extension}/${caller_id_number}"/> <action application="hash" data="insert/${domain_name}-last_dial_ext/${dialed_extension}/${uuid}"/> <action application="set" data="called_party_callgroup=${user_data(${dialed_extension}@${domain_name} var callgroup)}"/> <!--<action application="export" data="nolocal:sip_secure_media=${user_data(${dialed_extension}@${domain_name} var sip_secure_media)}"/>--> <action application="hash" data="insert/${domain_name}-last_dial/${called_party_callgroup}/${uuid}"/> <!-- check if the destination is actually forwarded --> <action application="execute_extension" data="check_if_forwarded" XML features/> <action application="bridge" data="${to_dial}@${domain_name}"/> <action application="answer"/> <action application="sleep" data="1000"/> <action application="bridge" data="loopback/app=voicemail:default ${domain_name} ${dialed_extension}"/> </condition> </extension>
participants (2)
-
Anthony Cosgrove
-
Tihomir Culjaga