[Freeswitch-users] How do I use eavesdrop?

Mark Sobkow m.sobkow at marketelsystems.com
Thu Mar 18 13:31:00 PDT 2010


I know eavesdrop is an application, not an API, so you have to use it 
differently.

I have an operator dialing in on extension 5000 being bridged to a 
client, and I'm getting those lovely little echoes that confirm the call 
is bridged (both operator and client softphones are sharing my one 
headset and mic.)

In the dialplan, I parse out the extension when someone dials in to 
665000 (last 4 digits are the extension to monitor), look up the 
appropriate operator UUID in my mnesia/Erlang tables, receive the "call" 
callback from Freeswitch, and build a proplists replacement with the 
execute-app-name set to "eavesdrop" and execute-app-arg set to the 
operator UUID.  I issue a sendmsg() command to Freeswitch, and it 
returns ok.

However, what happens to the extension that tried to eavesdrop is it 
gets two events: CHANNEL_PARK and SEND_MESSAGE.  The person making the 
eavesdrop call can't actually hear anything.

I've attached the Erlang callback module that the dialplan executes.  
The dialplan fragment is as follows:

<extension name=\"eavesdrop\">
    <condition field=\"destination_number\" 
expression=\"^66(\\d\\d\\d\\d)$\">
        <action application=\"answer\"/>
        <action application=\"set\" data=\"eavesdrop_extension=$1\" />
        <action application=\"erlang\" data=\"pbx_eavesdrop 
pursuit at testsrv\" />
    </condition>
</extension>

Unfortunately I can't think of any way to look up the UUID other than 
using the mnesia tables from the application.  When I tried the sample 
dialplans from Freeswitch, the eavesdrop module itself _did_ work.  I'm 
just having trouble cobbling together the "glue" for Erlang.

P.S. This is the last Freeswitch feature I have to code for this 
release, other than niggling cleanups like adding a few more voice 
prompts, which is easy enough as I've already sample code on how to do 
it.  With a little luck we'll make our April 1st ready-for-testing 
deadline!  We wouldn't have made it without Andrew's hints, tips, and 
tricks for using Erlang with Freeswitch. Thanks a lot! :D

-- 
Mark Sobkow
Senior Developer
MarkeTel Multi-Line Dialing Systems LTD.
428 Victoria Ave
Regina, SK S4N-0P6
Toll-Free: 800-289-8616-X533
Local: 306-359-6893-X533
Fax: 306-359-6879
Email: m.sobkow at marketelsystems.com
Web: http://www.marketelsystems.com 

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: pbx_eavesdrop.erl
Url: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20100318/d115112a/attachment-0002.pl 


More information about the FreeSWITCH-users mailing list