After several hours of testing I was able to answer myself the previous mentioned questions. It appears that # and the 0 option work _only_ if user C has answered the call OR voicemail system answers it. user A ---call---> user B----attended xfer---> user C At this point I have new question. In example user C does not have a voicemail and the call timeout is not an option to wait for. How can user B go back to the user A, who is listening to MOH? Could someone help me with an advice/tip? At the moment I have just one idea for accomplishing it: 1) try to use bind_meta_app in the extension with the att_xfer (not sure if it can be done). To have a key feature that takes the user A call leg id and bridging it with user B Thank you in advnace, Anatoliy Kounitskiy On Wed, Aug 26, 2009 at 5:51 PM, Anatoliy Kounitskiy<anatoliy@kounitskiy.com> wrote:
Hello everybody! I have few questions about the att_xfer application. First, what i want to accomplish is: user A calls user B, after that user B makes attended transfer to user C. In the dialplan i have:
<context name="vpbx"> <extension name="local_number"> ... <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::$${base_dir}/recordings/${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="bind_meta_app" data="4 b s execute_extension::attented_xfer XML features"/> .... </condition> </extension>
So when user B answers the call, he sends *4 and the extensions for the attended transfer is started - the usual - plays message and read the input dtmf:
features.xml ... <extension name="attented_xfer"> <condition field="${toll_allow}" expression="local"/> <condition field="destination_number" expression="^attented_xfer$"> <action application="info"/> <action application="read" data="3 4 ivr/ivr-enter_ext.wav attxfer_callthis 30000 #"/> <action application="set" data="call_timeout=15"/> <action application="att_xfer" data="user/${attxfer_callthis}@${domain_name}"/> </condition> </extension> ...
To this problems everything is perfect. But here comes the questions, so if you can give some tips would be great.
1) when user B enters the extension number of C - the C's phone starts ringing in the tcpdump i can see that the phone is sending 180 ringing, BUT user B does not hear the ringing. 2) as mentioned in the http://wiki.freeswitch.org/wiki/Misc._Dialplan_Tools_att_xfer quote: "If the other leg is a voicemail or doesn't answered you can hangup that leg by pressing dtmf # (fixed in r14438) " It doesn't work. The option 0 is working even before C answering the phone - after he answers it's a threeway conference :) - i like this feature.
I'm using FreeSWITCH Version 1.0.trunk (14633M)
Also I tried to set call timeout to see if I can go back the user A, who is listening to MOH - no luck here.
Probably I'm missing something. Tried to look in the source of att_xfer to understand why the feature i want is not working - but it seems my C/C++ skills are not so good, as i want :( .
Thank you in advance, Anatoliy Kounitskiy
-- Anatoliy Kounitskiy ------------------------- E-mail: anatoliy@kounitskiy.com Mobile: +359898913540