[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