problems with :_: bridging and call_timeout
The following is based on examples in the wiki. If I only have one FreeTDM end point it works. If I only use "," bridging it works, but not all phones ring and a lot of other weirdness. If I use the multithread dialing (:_:), all sorts of problems arise. 1) It no longer detects when someone hangs up. It rings and rings. 2) It no longer goes to voice mail no matter what I do. This seems to be whether I use loopback or not. I only use loop back for the retrieve-vm capability and the example showed it. <condition field="chan_name" expression="^FreeTDM/3:1/"> <!-- do voice mail after 4 rings... that is what the 20 below is --> <action application="set" data="call_timeout=10"/> <action application="set" data="hangup_after_bridge=true"/> <action application="set" data="continue_on_fail=true"/> <action application="set" data="ignore_early_media=true" /> <action application="bridge" data="FreeTDM/1/1:_:FreeTDM/1/2:_:FreeTDM/1/3:_:FreeTDM/1/4:_:FreeTDM/1/5:_:FreeTDM/1/6"/> <action application="answer"/> <action application="sleep" data="300"/> <action application="hash" data="insert/$${domain}-retrieve_vm/global/${uuid}"/> <action application="set" data="vm-alternate-greet-id=$${FAMILY_PHONE_NUMBER}" /> <!-- <action application="bridge" data="loopback/app=voicemail:default $${domain} $${FAMILY_PHONE_NUMBER}"/> --> <action application="voicemail" data="default $${domain} $${FAMILY_PHONE_NUMBER}"/> <!-- <action application="hangup"/> --> </condition> <extension name="retrieve-vm"> <condition field="destination_number" expression="^(\#)$"> <action application="intercept" data="${hash(select/$${domain}-retrieve_vm/global/${uuid}"/> <action application="answer"/> <action application="sleep" data="1000"/> </condition> </extension> This is strange because this is my normal dialplan (disabled when I am trying to get voicemail up) <extension name="direct_inbound"> <condition field="chan_name" expression="^FreeTDM/3:1/"> <action application="bridge" data="FreeTDM/1/1:_:FreeTDM/1/2:_:FreeTDM/1/3:_:FreeTDM/1/4:_:FreeTDM/1/5:_:FreeTDM/1/6"/> <action application="hangup"/> </condition> </extension> It works absolutely fine! Is this a bug in call_timeout, or am I missing something. As shown above, I have even tried to ignore early media. Thank you, Trever P.S. I would greatly appreciate help getting this working. It is the last piece I need to use FreeSWITCH exclusively for my folks who are trying to get rid of fax machines, answering machines, etc. as well as get some call screen and Do-Not-Call-List integration. -- "It is error alone which needs the support of government. Truth can stand by itself." -- Thomas Jefferson
This may be a case of set vs. export. As a personal preference I like to put "export" variables into the dialstring itself so that I don't forget them. Also, it makes it a bit easier to know what is happening on the dialing leg. Try this: Remove the set apps for call_timeout and ignore_early_media. (IIUC, enterprise originate automatically ignores early media, but feel free to set it anyway.) Modify your data on the bridge app to be: data="<call_timeout=10,ignore_early_media=true>FreeTDM/1/1:_:FreeTDM/1/2:_:FreeTDM/1/3:_:FreeTDM/1/4:_:FreeTDM/1/5:_:FreeTDM/1/6" I'm just pulling this off the top of my head so don't forget about the standard disclaimer<http://wiki.freeswitch.org/wiki/Reporting_Bugs#Standard_Disclaimer>... Let us know how it goes. -MC On Sat, Mar 23, 2013 at 2:17 AM, Trever L. Adams <trever.adams@gmail.com>wrote:
The following is based on examples in the wiki. If I only have one FreeTDM end point it works. If I only use "," bridging it works, but not all phones ring and a lot of other weirdness. If I use the multithread dialing (:_:), all sorts of problems arise.
1) It no longer detects when someone hangs up. It rings and rings. 2) It no longer goes to voice mail no matter what I do.
This seems to be whether I use loopback or not. I only use loop back for the retrieve-vm capability and the example showed it.
<condition field="chan_name" expression="^FreeTDM/3:1/"> <!-- do voice mail after 4 rings... that is what the 20 below is --> <action application="set" data="call_timeout=10"/> <action application="set" data="hangup_after_bridge=true"/> <action application="set" data="continue_on_fail=true"/> <action application="set" data="ignore_early_media=true" /> <action application="bridge"
data="FreeTDM/1/1:_:FreeTDM/1/2:_:FreeTDM/1/3:_:FreeTDM/1/4:_:FreeTDM/1/5:_:FreeTDM/1/6"/>
<action application="answer"/> <action application="sleep" data="300"/> <action application="hash" data="insert/$${domain}-retrieve_vm/global/${uuid}"/> <action application="set" data="vm-alternate-greet-id=$${FAMILY_PHONE_NUMBER}" /> <!-- <action application="bridge" data="loopback/app=voicemail:default $${domain} $${FAMILY_PHONE_NUMBER}"/> --> <action application="voicemail" data="default $${domain} $${FAMILY_PHONE_NUMBER}"/> <!-- <action application="hangup"/> --> </condition>
<extension name="retrieve-vm"> <condition field="destination_number" expression="^(\#)$"> <action application="intercept" data="${hash(select/$${domain}-retrieve_vm/global/${uuid}"/> <action application="answer"/> <action application="sleep" data="1000"/> </condition> </extension>
This is strange because this is my normal dialplan (disabled when I am trying to get voicemail up) <extension name="direct_inbound"> <condition field="chan_name" expression="^FreeTDM/3:1/"> <action application="bridge"
data="FreeTDM/1/1:_:FreeTDM/1/2:_:FreeTDM/1/3:_:FreeTDM/1/4:_:FreeTDM/1/5:_:FreeTDM/1/6"/> <action application="hangup"/> </condition> </extension>
It works absolutely fine! Is this a bug in call_timeout, or am I missing something. As shown above, I have even tried to ignore early media.
Thank you, Trever
P.S. I would greatly appreciate help getting this working. It is the last piece I need to use FreeSWITCH exclusively for my folks who are trying to get rid of fax machines, answering machines, etc. as well as get some call screen and Do-Not-Call-List integration. -- "It is error alone which needs the support of government. Truth can stand by itself." -- Thomas Jefferson
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
FreeSWITCH-powered IP PBX: The CudaTel Communication Server http://www.cudatel.com
Official FreeSWITCH Sites http://www.freeswitch.org http://wiki.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
-- Michael S Collins Twitter: @mercutioviz http://www.FreeSWITCH.org http://www.ClueCon.com http://www.OSTAG.org
On 03/25/2013 06:20 PM, Michael Collins wrote:
This may be a case of set vs. export. As a personal preference I like to put "export" variables into the dialstring itself so that I don't forget them. Also, it makes it a bit easier to know what is happening on the dialing leg. Try this:
Remove the set apps for call_timeout and ignore_early_media. (IIUC, enterprise originate automatically ignores early media, but feel free to set it anyway.)
Modify your data on the bridge app to be: data="<call_timeout=10,ignore_early_media=true>FreeTDM/1/1:_:FreeTDM/1/2:_:FreeTDM/1/3:_:FreeTDM/1/4:_:FreeTDM/1/5:_:FreeTDM/1/6"
I'm just pulling this off the top of my head so don't forget about the standard disclaimer <http://wiki.freeswitch.org/wiki/Reporting_Bugs#Standard_Disclaimer>... Let us know how it goes.
-MC Thank you Michael, unfortunately, this has all of the same symptoms. I appreciate your help.
Anyone have any other ideas? I have filed this as a bug. I am updating it to include this suggestion. Trever -- "It is error alone which needs the support of government. Truth can stand by itself." -- Thomas Jefferson
On 03/25/2013 06:20 PM, Michael Collins wrote:
This may be a case of set vs. export. As a personal preference I like to put "export" variables into the dialstring itself so that I don't forget them. Also, it makes it a bit easier to know what is happening on the dialing leg. Try this:
Remove the set apps for call_timeout and ignore_early_media. (IIUC, enterprise originate automatically ignores early media, but feel free to set it anyway.)
Modify your data on the bridge app to be: data="<call_timeout=10,ignore_early_media=true>FreeTDM/1/1:_:FreeTDM/1/2:_:FreeTDM/1/3:_:FreeTDM/1/4:_:FreeTDM/1/5:_:FreeTDM/1/6"
I'm just pulling this off the top of my head so don't forget about the standard disclaimer <http://wiki.freeswitch.org/wiki/Reporting_Bugs#Standard_Disclaimer>... Let us know how it goes.
-MC
Alright, I think I have this figured out. 1) It seems that the documentation saying that channel variables are to be set in {} are wrong and that it must be <> (if I am missing something please let me know, I was basing my not working information on http://wiki.freeswitch.org/wiki/Channel_Variables#Custom_Channel_Variables) 2) It appears that with enterprise originate you must use originate_timeout, not call_timeout. (http://freeswitch-users.2379917.n2.nabble.com/CALL-TIMEOUT-and-interprise-br...) With this, most of my problems are gone. The rest seem to be related to bugs I have already filed and will be updating. Thank you for your help, Trever -- "All rights reserved, all wrongs reversed." -- Unknown
On 03/26/2013 04:22 AM, Trever L. Adams wrote:
On 03/25/2013 06:20 PM, Michael Collins wrote:
This may be a case of set vs. export. As a personal preference I like to put "export" variables into the dialstring itself so that I don't forget them. Also, it makes it a bit easier to know what is happening on the dialing leg. Try this:
Remove the set apps for call_timeout and ignore_early_media. (IIUC, enterprise originate automatically ignores early media, but feel free to set it anyway.)
Modify your data on the bridge app to be: data="<call_timeout=10,ignore_early_media=true>FreeTDM/1/1:_:FreeTDM/1/2:_:FreeTDM/1/3:_:FreeTDM/1/4:_:FreeTDM/1/5:_:FreeTDM/1/6"
I'm just pulling this off the top of my head so don't forget about the standard disclaimer <http://wiki.freeswitch.org/wiki/Reporting_Bugs#Standard_Disclaimer>... Let us know how it goes.
-MC
Alright, I think I have this figured out.
1) It seems that the documentation saying that channel variables are to be set in {} are wrong and that it must be <> (if I am missing something please let me know, I was basing my not working information on http://wiki.freeswitch.org/wiki/Channel_Variables#Custom_Channel_Variables)
2) It appears that with enterprise originate you must use originate_timeout, not call_timeout. (http://freeswitch-users.2379917.n2.nabble.com/CALL-TIMEOUT-and-interprise-br...)
With this, most of my problems are gone. The rest seem to be related to bugs I have already filed and will be updating.
Thank you for your help, Trever -- "All rights reserved, all wrongs reversed." -- Unknown
This works, but now the maximum voicemail time seems to be the originate timeout (in <> on the bridge to the phones). How can I fix this? Thank you, Trever
participants (2)
-
Michael Collins
-
Trever L. Adams