[Freeswitch-users] Stuck on my first attempt at dialplanning
Alan Chandler
alan at chandlerfamily.org.uk
Tue Aug 18 12:53:03 PDT 2009
Ignore the very last but one paragraph of this e-mail - that's the text
from an old attempt before I fixed some things before sending this e-mail
Alan Chandler wrote:
> 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