[Freeswitch-dev] hangup_after_bridge and intercept application

Francisco de Ezcurra francisco at deezcurra.com.ar
Fri Aug 22 11:46:35 EDT 2008


I don't understand how/when this line <action application="transfer" 
data="-both 2103" />  is executed if the channel is in a bridge.
	

For example, in this case:
  .....
 <action application="export" data="hangup_after_bridge=false"/>
 <action application="intercept" data="XXXX" />
 <action application="transfer" data="2103" />
 
As I understood, the transfer is executed when the bleg hangs up. But if I 
need to transfer the bleg when the aleg hangs up, the only way i found is by 
using the api_hangup_hook variable. Like this:

	<action application="set" data="api_hangup_hook=uuid_transfer <BLEG_UUID> 
2102" />

So, if what I'm saying is correct, how is possible for the leg A to execute 
the transfer with -bleg like below when it hangs up ?

	......
	<action application="intercept" data="XXXX" />
	<action application="transfer" data="-bleg 2102" />


BTW,  the api_hangup_hook works sometimes and sometimes not. I could not 
determine exactly when it works and when it doesn't. I'm attaching two logs 
where I did exactly the same things and in one case it worked and in the 
other case not.

Here are the dialplan extensions I used to test:

     <extension name="waiting">
        <condition field="destination_number" expression="2100">
          <action application="answer" />
          <action application="fifo" data="myqueue in undef 
test/clientdata/system/audios/male/en_US/misc/HoldMusic.wav"/>
        </condition>
      </extension>

      <extension name="intercept">
        <condition field="destination_number" expression="2101">
          <action application="set" 
data="pbx_bleg=d3690c32-7053-11dd-ba2d-cf2d1d866b01"/>
          <action application="answer" />
          <action application="export" data="hangup_after_bridge=false"/>
          <action application="set" data="api_hangup_hook=uuid_transfer 
${pbx_bleg} 2102" />
          <action application="intercept" data="${pbx_bleg}"/>
          <action application="transfer" data="2103" />
        </condition>
      </extension>

      <extension name="goodbye">
        <condition field="destination_number" expression="2102">
          <action application="fifo" data="myqueue in undef 
test/clientdata/system/audios/male/en_US/misc/Goodbye.wav"/>
        </condition>
      </extension>

      <extension name="welcome">
        <condition field="destination_number" expression="2103">
          <action application="fifo" data="myqueue in undef 
test/clientdata/system/audios/male/en_US/misc/Welcome.wav"/>
        </condition>
      </extension>

And here are the steps I followed in both cases:

1) With the phone registered as user1.fezcurra dial 2100 (the fifo).
2) Get the channel UUID and set it into the dialplan.
3) With the phone resgistered as user3.fezcurra dial 2101. (This will bridge 
both channels).
4)  Hangup the phone registered as user3.fezcurra.

Result:
	In some cases the phone registered as user1.fezcurra goes to the extension 
2102 and in some cases it doesn't and it is hung up by FS.

Is correct how I am using the api_hangup_hook variable? If not, how can I do 
what I need: "Transfer the leg that did not hangup to another extension" ?

Thanks
Panchi




On Friday 15 August 2008, Anthony Minessale wrote:
 <action application="transfer" data="-bleg 2103" />

 if the call is currently in a bridge it will transfer the other side of the
 call instead of itself.
 also

 <action application="transfer" data="-both 2103" />

 would transfer both legs of the call to the same ext. i.e a conference
 extension etc.





 On Fri, Aug 15, 2008 at 10:28 AM, Francisco de Ezcurra <

 francisco at deezcurra.com.ar> wrote:
 > Anthony
 >
 > I was not answering the call originated via mod_event_socket so that was
 > why
 > it didn't work as I expected. My fault. :(
 >
 > I tried to use the -bleg with transfer but i could not figure out how to
 > use
 > it so used uuid_transfer like this and it is working as I need.
 >
 >     <extension name="intercept">
 >        <condition field="destination_number" expression="2101">
 >           <action application="set"
 > data="bleg=c0153280-6ad8-11dd-85e3-9108b1fae78b"/>
 >          <action application="answer" />
 >          <action application="export" data="hangup_after_bridge=false"/>
 >          <action application="set" data="api_hangup_hook=uuid_transfer
 > ${bleg} 2102" />
 >          <action application="intercept" data="${bleg}"/>
 >          <action application="transfer" data="2103" />
 >        </condition>
 >      </extension>
 >
 > Is there any way to use the transfer application with -bleg in the
 > dialplan ?
 > If yes, how is the syntax ?
 >
 > Thanks in advance
 > Panchi
 >
 >
 >
 > On Thursday 14 August 2008, Anthony Minessale wrote:
 >  The extension that executed the intercept app is the one that will be
 > able to move on in the dialplan after the call because it's the effective
 > A leg and that is the extension that had a dialplan instruction set.
 >
 >  BTW,
 >  you can execute transfer with the -bleg option to perform the transfer on
 >  the opposite leg of the call.
 >
 >
 >
 >  On Thu, Aug 14, 2008 at 3:07 PM, Francisco de Ezcurra <
 >
 >  francisco at deezcurra.com.ar> wrote:
 >  > The fix works if i hangup the channel that makes the intercept. The
 >
 > other
 >
 >  > leg
 >  > goes back to the fifo. But when i hangup the other leg the channel that
 >  > made
 >  > the intercept is hung up.
 >  >
 >  > What I expect with this (ext. 2101)  dialplan is that the channel that
 >  > makes
 >  > the intercept executes the transfer to 2102 when the other leg hangs
 >  > up.
 >  >
 >  > Is this possible? I can not use the variable api_hangup_hook on the
 >  > channel created in the originate via MES because I don't know at that
 >  > moment the other leg.
 >  >
 >  >
 >  > Thanks
 >  > Panchi
 >
 > _______________________________________________
 > Freeswitch-dev mailing list
 > Freeswitch-dev at lists.freeswitch.org
 > http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
 > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
 > http://www.freeswitch.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: api_hangup_hook_success.log.zip
Type: application/x-zip
Size: 2750 bytes
Desc: not available
Url : http://lists.freeswitch.org/pipermail/freeswitch-dev/attachments/20080822/bc7f58f9/attachment.bin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: api_hangup_hook_fail.log.zip
Type: application/x-zip
Size: 2225 bytes
Desc: not available
Url : http://lists.freeswitch.org/pipermail/freeswitch-dev/attachments/20080822/bc7f58f9/attachment-0001.bin 


More information about the Freeswitch-dev mailing list