Hello All, Can anyone tell me if it's possible to eavesdrop from an existing channel instead of using "originate <dialstr> &eavesdrop(uuid)" method? Let's say I have 20 agents talking to our clients and as I supervisor I want to listen to these calls and perhaps coach agents by activating the "speak with uuid" feature available in eavesdrop. Today I need to make a new call (originate) if I want to start eavesdropping, so supervisor has to disconnect phone and make another call to jump to next agent (using the "*" DTMF is not possible and I also want to control this using ESL). What i'm doing today using the ESL:
originate <agent dial string> &park originate <client dial string> &park uuid_bridge <agent_chan_uuid> <client_chan_uuid>
..."Agent and client talks"... Now supervisor/coach wants to give agents some tips:
originate <supervisor dial string> &eavesdrop(<agent_chan_uuid>)
"Supervisor can now listen and talk to agent by pressing the "2" DTMF If supervisor needs to help another agent, he/she now needs to disconnect call and do another originate, which is quite tedious. If it was somehow possible, I rather do this:
originate <supervisor dial str> &park "send api cmd to api that eavesdrop <client_chan_uuid> from <supervisor_chan_uuid>"
...and when done, quickly move to another client by issusing another command without disconnecting the call, perhaps even use the same <supervisor_chan_uuid> to listen to a recorded call. Does it makes sense? :) What approach would you recommend ? Thank you... Best Regards, Allan
Allan- this example below allows you to call to an extension and when finished eavesdropping on one channel press * to move to another- the extension will ask again what extension to monitor (you can uncomment the lines if you want to read back to the caller what extension they entered): <extension name="custom-eavesdrop"> <condition field="destination_number" expression="^\*8(\d{4})$"> <action application="answer"/> <!-- <action application="playback" data="$${base_dir}/sounds/en/us/callie/ivr/8000/ivr-you_entered.wav"/> --> <!-- spell out called number, like "one-two-three-four-five" --> <!-- <action application="say" data="en name_spelled iterated $1"/> --> <action application="set" data="eavesdrop_enable_dtmf=true"/> <action application="eavesdrop" data="${hash(select/${domain_name}-spymap/$1$2)}"/> <!--<action application="sleep" data="500"/>--> <action application="play_and_get_digits" data="4 4 3 5000 # $${base_dir}/sounds/en/us/callie/ivr/8000/ivr-enter_ext.wav $${base_dir}/sounds/en/us/callie/ivr/8000/ivr-invalid_extension_try_again.wav my_digits \d+"/> <action application='transfer' data='*8${my_digits} XML default'/> <action application="say" data="en name_spelled iterated $1"/> <action application="playback" data="$${base_dir}/sounds/en/us/callie/voicemail/8000/vm-not_available.wav"/> </condition> </extension> On Wed, Jun 3, 2015 at 6:21 AM, Allan Kristensen <ak@hejdu.dk> wrote:
Hello All,
Can anyone tell me if it's possible to eavesdrop from an existing channel instead of using "originate <dialstr> &eavesdrop(uuid)" method?
Let's say I have 20 agents talking to our clients and as I supervisor I want to listen to these calls and perhaps coach agents by activating the "speak with uuid" feature available in eavesdrop.
Today I need to make a new call (originate) if I want to start eavesdropping, so supervisor has to disconnect phone and make another call to jump to next agent (using the "*" DTMF is not possible and I also want to control this using ESL).
What i'm doing today using the ESL:
originate <agent dial string> &park originate <client dial string> &park uuid_bridge <agent_chan_uuid> <client_chan_uuid>
..."Agent and client talks"...
Now supervisor/coach wants to give agents some tips:
originate <supervisor dial string> &eavesdrop(<agent_chan_uuid>)
"Supervisor can now listen and talk to agent by pressing the "2" DTMF
If supervisor needs to help another agent, he/she now needs to disconnect call and do another originate, which is quite tedious. If it was somehow possible, I rather do this:
originate <supervisor dial str> &park "send api cmd to api that eavesdrop <client_chan_uuid> from <supervisor_chan_uuid>"
...and when done, quickly move to another client by issusing another command without disconnecting the call, perhaps even use the same <supervisor_chan_uuid> to listen to a recorded call.
Does it makes sense? :)
What approach would you recommend ?
Thank you...
Best Regards, Allan
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-- Tony Bourdeaux *Intelecenter, LLC* ph: 805-428-3031 Skype: tony.bourdeaux "This message and any attachments are solely for the intended recipient and may contain confidential or privileged information. If you are not the intended recipient, any disclosure, copying, use, or distribution of the information included in this message and any attachments is prohibited. If you have received this communication in error, please notify me by reply e-mail and immediately and permanently delete this message and any attachments."
Hello, Thank you for your answer. Unfortunately, I can't really use the "*" method, because I need to jump to a specific agent uuid and agents doesn't really have a local extension. I'm doing everything from a web interface and using the splendid ESL to control freeswitch. (Actually I don't really have a dialplan, only for sending calls to an external sip connect) But the dialplan approach might be good to consider, combined with uuid_transfer. So basically originate supervisor to park application and then use the uuid_transfer to an inline dial plan, like this. With a parked channel to supervisor doing something like: uuid_transfer <supervisor_chan_uuid> 'eavesdrop' inline .. now I just need to figure out how to specifiy eavesdrop uuid when using the inline dialplan ;-) /Allan On Wed, Jun 3, 2015 at 3:54 PM, Tony Bourdeaux <tony@intelecenter.com> wrote:
Allan-
this example below allows you to call to an extension and when finished eavesdropping on one channel press * to move to another- the extension will ask again what extension to monitor (you can uncomment the lines if you want to read back to the caller what extension they entered):
<extension name="custom-eavesdrop"> <condition field="destination_number" expression="^\*8(\d{4})$"> <action application="answer"/> <!-- <action application="playback" data="$${base_dir}/sounds/en/us/callie/ivr/8000/ivr-you_entered.wav"/> --> <!-- spell out called number, like "one-two-three-four-five" --> <!-- <action application="say" data="en name_spelled iterated $1"/> --> <action application="set" data="eavesdrop_enable_dtmf=true"/> <action application="eavesdrop" data="${hash(select/${domain_name}-spymap/$1$2)}"/>
<!--<action application="sleep" data="500"/>--> <action application="play_and_get_digits" data="4 4 3 5000 # $${base_dir}/sounds/en/us/callie/ivr/8000/ivr-enter_ext.wav $${base_dir}/sounds/en/us/callie/ivr/8000/ivr-invalid_extension_try_again.wav my_digits \d+"/> <action application='transfer' data='*8${my_digits} XML default'/> <action application="say" data="en name_spelled iterated $1"/> <action application="playback" data="$${base_dir}/sounds/en/us/callie/voicemail/8000/vm-not_available.wav"/> </condition> </extension>
On Wed, Jun 3, 2015 at 6:21 AM, Allan Kristensen <ak@hejdu.dk> wrote:
Hello All,
Can anyone tell me if it's possible to eavesdrop from an existing channel instead of using "originate <dialstr> &eavesdrop(uuid)" method?
Let's say I have 20 agents talking to our clients and as I supervisor I want to listen to these calls and perhaps coach agents by activating the "speak with uuid" feature available in eavesdrop.
Today I need to make a new call (originate) if I want to start eavesdropping, so supervisor has to disconnect phone and make another call to jump to next agent (using the "*" DTMF is not possible and I also want to control this using ESL).
What i'm doing today using the ESL:
originate <agent dial string> &park originate <client dial string> &park uuid_bridge <agent_chan_uuid> <client_chan_uuid>
..."Agent and client talks"...
Now supervisor/coach wants to give agents some tips:
originate <supervisor dial string> &eavesdrop(<agent_chan_uuid>)
"Supervisor can now listen and talk to agent by pressing the "2" DTMF
If supervisor needs to help another agent, he/she now needs to disconnect call and do another originate, which is quite tedious. If it was somehow possible, I rather do this:
originate <supervisor dial str> &park "send api cmd to api that eavesdrop <client_chan_uuid> from <supervisor_chan_uuid>"
...and when done, quickly move to another client by issusing another command without disconnecting the call, perhaps even use the same <supervisor_chan_uuid> to listen to a recorded call.
Does it makes sense? :)
What approach would you recommend ?
Thank you...
Best Regards, Allan
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
--
Tony Bourdeaux
*Intelecenter, LLC*
ph: 805-428-3031
Skype: tony.bourdeaux
"This message and any attachments are solely for the intended recipient and may contain confidential or privileged information. If you are not the intended recipient, any disclosure, copying, use, or distribution of the information included in this message and any attachments is prohibited. If you have received this communication in error, please notify me by reply e-mail and immediately and permanently delete this message and any attachments."
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
Huzzarh! Found solution, maybe someone else with equally strange needs can use it.. here goes: originate <supervisor dial str> &park Then use: uuid_transfer <supervisor_chan_uuid> 'eavesdrop:<agent_chan_uuid>' inline to start listening and use: uuid_transfer <supervisor_chan_uuid> 'park' inline when done, if you use "park_after_bridge" it will keep supervisor channel open, even if agent disconnects.. Have a nice day... /Allan On Wed, Jun 3, 2015 at 4:41 PM, Allan Kristensen <ak@hejdu.dk> wrote:
Hello,
Thank you for your answer.
Unfortunately, I can't really use the "*" method, because I need to jump to a specific agent uuid and agents doesn't really have a local extension. I'm doing everything from a web interface and using the splendid ESL to control freeswitch. (Actually I don't really have a dialplan, only for sending calls to an external sip connect)
But the dialplan approach might be good to consider, combined with uuid_transfer.
So basically originate supervisor to park application and then use the uuid_transfer to an inline dial plan, like this.
With a parked channel to supervisor doing something like: uuid_transfer <supervisor_chan_uuid> 'eavesdrop' inline
.. now I just need to figure out how to specifiy eavesdrop uuid when using the inline dialplan ;-)
/Allan
On Wed, Jun 3, 2015 at 3:54 PM, Tony Bourdeaux <tony@intelecenter.com> wrote:
Allan-
this example below allows you to call to an extension and when finished eavesdropping on one channel press * to move to another- the extension will ask again what extension to monitor (you can uncomment the lines if you want to read back to the caller what extension they entered):
<extension name="custom-eavesdrop"> <condition field="destination_number" expression="^\*8(\d{4})$"> <action application="answer"/> <!-- <action application="playback" data="$${base_dir}/sounds/en/us/callie/ivr/8000/ivr-you_entered.wav"/> --> <!-- spell out called number, like "one-two-three-four-five" --> <!-- <action application="say" data="en name_spelled iterated $1"/> --> <action application="set" data="eavesdrop_enable_dtmf=true"/> <action application="eavesdrop" data="${hash(select/${domain_name}-spymap/$1$2)}"/>
<!--<action application="sleep" data="500"/>--> <action application="play_and_get_digits" data="4 4 3 5000 # $${base_dir}/sounds/en/us/callie/ivr/8000/ivr-enter_ext.wav $${base_dir}/sounds/en/us/callie/ivr/8000/ivr-invalid_extension_try_again.wav my_digits \d+"/> <action application='transfer' data='*8${my_digits} XML default'/> <action application="say" data="en name_spelled iterated $1"/> <action application="playback" data="$${base_dir}/sounds/en/us/callie/voicemail/8000/vm-not_available.wav"/> </condition> </extension>
On Wed, Jun 3, 2015 at 6:21 AM, Allan Kristensen <ak@hejdu.dk> wrote:
Hello All,
Can anyone tell me if it's possible to eavesdrop from an existing channel instead of using "originate <dialstr> &eavesdrop(uuid)" method?
Let's say I have 20 agents talking to our clients and as I supervisor I want to listen to these calls and perhaps coach agents by activating the "speak with uuid" feature available in eavesdrop.
Today I need to make a new call (originate) if I want to start eavesdropping, so supervisor has to disconnect phone and make another call to jump to next agent (using the "*" DTMF is not possible and I also want to control this using ESL).
What i'm doing today using the ESL:
originate <agent dial string> &park originate <client dial string> &park uuid_bridge <agent_chan_uuid> <client_chan_uuid>
..."Agent and client talks"...
Now supervisor/coach wants to give agents some tips:
originate <supervisor dial string> &eavesdrop(<agent_chan_uuid>)
"Supervisor can now listen and talk to agent by pressing the "2" DTMF
If supervisor needs to help another agent, he/she now needs to disconnect call and do another originate, which is quite tedious. If it was somehow possible, I rather do this:
originate <supervisor dial str> &park "send api cmd to api that eavesdrop <client_chan_uuid> from <supervisor_chan_uuid>"
...and when done, quickly move to another client by issusing another command without disconnecting the call, perhaps even use the same <supervisor_chan_uuid> to listen to a recorded call.
Does it makes sense? :)
What approach would you recommend ?
Thank you...
Best Regards, Allan
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
--
Tony Bourdeaux
*Intelecenter, LLC*
ph: 805-428-3031
Skype: tony.bourdeaux
"This message and any attachments are solely for the intended recipient and may contain confidential or privileged information. If you are not the intended recipient, any disclosure, copying, use, or distribution of the information included in this message and any attachments is prohibited. If you have received this communication in error, please notify me by reply e-mail and immediately and permanently delete this message and any attachments."
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
participants (2)
-
Allan Kristensen
-
Tony Bourdeaux