[Freeswitch-users] Stuck on my first attempt at dialplanning
Alan Chandler
alan at chandlerfamily.org.uk
Tue Aug 18 11:59:29 PDT 2009
This is my first attempt at setting up the dial plan to do anything more
than the basic default stuff. What I am trying to do is set up some
conferencing as follows
1. A calls B
2. B puts both A and B into a conference
3. A or B calls out from the conference (via the * set in caller
controls) to C
4a If C hangs up or rejects the call, A/B should go back to the conference
4b If A/B types *1 before the call is answered he should go back to the
conference
4c If A/B types *1 after the call is answered both A/B and C should go
back into the conference.
It nearly all works except
i) A seemingly can't use the * caller control, where as B can. The
other caller control I set up (mute) seems to work
ii) If C rejects the call before answering, B gets hung_up (because of
i) I can only test with B)
iii) When B gets back to the conference, the * caller control doesn't
work (although the mute does)
Can someone tell me where I am going wrong.
----------------------
Here is the dialplan snippet that I use to handle the dialout from the
conference (pressing the * in step 3)
<!-- Conference Callout To Another Extension -->
<extension name="cco">
<condition field="destination_number" expression="^cco$">
<action application="read" data="3 3
'tone_stream://%(10000,0,350,440)' digits 5000 #"/>
<action application="bind_meta_app" data="2 a s
execute_extension::conf_transfer XML features" />
<action application="set" data="hangup_after_bridge=false" />
<action application="bridge"
data="user/${digits}@${domain_name}" />
<action application="info" />
<action application="conference"
data="${conference_name}@default" />
</condition>
</extension>
<extension name="conf_transfer">
<condition field="destination_number" expression="^conf_transfer$" >
<action application="answer" />
<action application="transfer" data="-both ${conference_name}
XML default" />
</condition>
</extension>
And here is the bit in my default XML where I define the conference
<extension name="nb_conferences">
<condition field="destination_number"
expression="^(2(0[1-9]|[1-9][0-9]))$">
<action application="answer"/>
<action application="conference" data="$1 at default"/>
</condition>
</extension>
The call out to the conference from the original call is done via
changing the bind meta app in the default dialplan for local extension
<action application="bind_meta_app" data="2 ab s execute_extension::cf
XML features"/>
and this extension in features
<!-- Used to transfer both legs into a conference -->
<extension name="cf">
<condition field="destination_number" expression="^cf$">
<action application="answer"/>
<action application="transfer" data="-both 2${dialed_extension:1} XML
default"/>
</condition>
</extension>
I can get as far as talking to C after dialing him, but if he doesn't
answer, or rejects the call I get lost in space somewhere. If I type *1
during the call with C I get back to the conference, and C appears to be
in the conference (hear him speak) but he gets music on hold.
What am I doing wrong?
--
Alan Chandler
http://www.chandlerfamily.org.uk
More information about the FreeSWITCH-users
mailing list