Re: [Freeswitch-users] Best practices for determining if originated call is answered by human or voicemail system?
Hi, "I looked at the AVMD module documentation at https://freeswitch.org/confluence/display/FREESWITCH/mod_avmd , and it seems to indicate that this simply detects a beep, i.e. it does not use talking / silence heuristics into account to determine if the call is answered by a human or machine. Am I correct about that? " Yes. The AVMD module works by calculating the estimate of the frequency and amplitude of signal using DESA-2 algorithm. It fires amd::beep event when the variance for the frequency estimate is below the threshold. The event is of form: Event-Subclass: avmd%3A%3Abeep Event-Name: CUSTOM Core-UUID: 36a5b214-8d83-487e-8f8b-50af9a090486 FreeSWITCH-Hostname: home FreeSWITCH-Switchname: home FreeSWITCH-IPv4: 128.11.35.8 FreeSWITCH-IPv6: %3A%3A1 Event-Date-Local: 2016-02-04%2016%3A56%3A55 Event-Date-GMT: Thu,%2004%20Feb%202016%2016%3A56%3A55%20GMT Event-Date-Timestamp: 1454605015915799 Event-Calling-File: mod_avmd.c Event-Calling-Function: avmd_process Event-Calling-Line-Number: 556 Event-Sequence: 950 Beep-Status: stop Unique-ID: 0a6f6df3-cc48-4b8a-93f3-b35ee1b8ef0a call-command: avmd The AVMD doesn't take into consideration segments of speech and segments of silence. It simply calculates it's estimate of frequency and amplitude. "How is this intended to be used, do I assume that the call is answered by a human until this module sends a avmd%3A%3Abeep event to me? How do others use this module or other techniques to determine human / machine answer to outbound calls with Freeswitch? " It's use is to detect beep only. You can test how it works by creating extension that will play a tone of given frequency, e.g: <extension name="10014"> <condition field="destination_number" expression="^10014$"> <action application="playback" data="tone_stream://L=3;%(500,6850,850)" /> <action application="hangup"/> </condition> </extension> This plays tone of 500Hz frequency and 6850 ms long, then silence by 850 ms. Start avmd on the call with fs_cli: avmd 8c6a6bb1-ec64-4b2c-9e48-93a6a2598b64 start and inspect events by regestering to avmd events with: events plain CUSTOM avmd::beep Analysing the audio for a presence of the tone is not enough for answering machine detection. You should also analyse at least the length of speech/silence segments. You can do this by subscription to TALK/NOTALK events. Hope this helps. cheers, Piotr On 4 February 2016 at 17:50, Piotr Gregor <peterg@sytelco.com> wrote:
Hi, "I looked at the AVMD module documentation at https://freeswitch.org/confluence/display/FREESWITCH/mod_avmd , and it seems to indicate that this simply detects a beep, i.e. it does not use talking / silence heuristics into account to determine if the call is answered by a human or machine. Am I correct about that? "
Yes. The AVMD module works by calculating the estimate of the frequency using DESA-2 algorithm. It fires amd::beep event when the variance for that estimate is below threshold. The event is of form:
Event-Subclass: avmd%3A%3Abeep Event-Name: CUSTOM Core-UUID: 36a5b214-8d83-487e-8f8b-50af9a090486 FreeSWITCH-Hostname: home FreeSWITCH-Switchname: home FreeSWITCH-IPv4: 128.11.35.8 FreeSWITCH-IPv6: %3A%3A1 Event-Date-Local: 2016-02-04%2016%3A56%3A55 Event-Date-GMT: Thu,%2004%20Feb%202016%2016%3A56%3A55%20GMT Event-Date-Timestamp: 1454605015915799 Event-Calling-File: mod_avmd.c Event-Calling-Function: avmd_process Event-Calling-Line-Number: 556 Event-Sequence: 950 Beep-Status: stop Unique-ID: 0a6f6df3-cc48-4b8a-93f3-b35ee1b8ef0a call-command: avmd
The AVMD doesn't take into consideration TALK/NOTALK events.
"How is this intended to be used, do I assume that the call is answered by a human until this module sends a avmd%3A%3Abeep event to me? How do others use this module or other techniques to determine human / machine answer to outbound calls with Freeswitch? "
You can test how it works by creating extension that will play a tone of given frequency, e.g: <extension name="10014"> <condition field="destination_number" expression="^10014$"> <action application="playback" data="tone_stream://L=3;%(500,6850,850)" /> <action application="hangup"/> </condition> </extension> This plays tone of 500Hz frequency and 6850 ms long, then silence by 850 ms.
Start avmd on the call with fs_cli: avmd 8c6a6bb1-ec64-4b2c-9e48-93a6a2598b64 start
and inspect events by regestering to avmd events with: events plain CUSTOM avmd::beep
Analysing the audio for a presence of the tone is not enough for answering machine detection. You should also analyse at least the length of speech/silence segments. Hope this helps.
cheers, Piotr
On 3 February 2016 at 19:50, Christopher Rienzo <cmrienzo@gmail.com> wrote:
I wouldn't use beep detection in a dialer application, but it could be useful in something like follow me to reduce the occurrence of voicemails being left on subscriber phones.
On Wed, Feb 3, 2016 at 2:28 PM, Bob Hartwig <bobjectsfreeswitch@gmail.com
wrote:
I have a client that needs to reliably detect if their outbound calls are answered by a human or voicemail system, so that they can take different actions based on that determination.
I looked at the AVMD module documentation at https://freeswitch.org/confluence/display/FREESWITCH/mod_avmd , and it seems to indicate that this simply detects a beep, i.e. it does not use talking / silence heuristics into account to determine if the call is answered by a human or machine.
Am I correct about that? How is this intended to be used, do I assume that the call is answered by a human until this module sends a avmd%3A%3Abeep event to me? How do others use this module or other techniques to determine human / machine answer to outbound calls with Freeswitch?
Thanks! Bob
_________________________________________________________________________ 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
_________________________________________________________________________ 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
See the previous response about our commercial module available if you are looking for something that detects segments of speech/silence. That is exactly what that module does.
On Feb 4, 2016, at 2:42 PM, Piotr Gregor <peterg@sytelco.com> wrote:
Hi, "I looked at the AVMD module documentation at https://freeswitch.org/confluence/display/FREESWITCH/mod_avmd <https://freeswitch.org/confluence/display/FREESWITCH/mod_avmd> , and it seems to indicate that this simply detects a beep, i.e. it does not use talking / silence heuristics into account to determine if the call is answered by a human or machine. Am I correct about that? "
Yes. The AVMD module works by calculating the estimate of the frequency and amplitude of signal using DESA-2 algorithm. It fires amd::beep event when the variance for the frequency estimate is below the threshold. The event is of form:
Event-Subclass: avmd%3A%3Abeep Event-Name: CUSTOM Core-UUID: 36a5b214-8d83-487e-8f8b-50af9a090486 FreeSWITCH-Hostname: home FreeSWITCH-Switchname: home FreeSWITCH-IPv4: 128.11.35.8 FreeSWITCH-IPv6: %3A%3A1 Event-Date-Local: 2016-02-04%2016%3A56%3A55 Event-Date-GMT: Thu,%2004%20Feb%202016%2016%3A56%3A55%20GMT Event-Date-Timestamp: 1454605015915799 Event-Calling-File: mod_avmd.c Event-Calling-Function: avmd_process Event-Calling-Line-Number: 556 Event-Sequence: 950 Beep-Status: stop Unique-ID: 0a6f6df3-cc48-4b8a-93f3-b35ee1b8ef0a call-command: avmd
The AVMD doesn't take into consideration segments of speech and segments of silence. It simply calculates it's estimate of frequency and amplitude.
"How is this intended to be used, do I assume that the call is answered by a human until this module sends a avmd%3A%3Abeep event to me? How do others use this module or other techniques to determine human / machine answer to outbound calls with Freeswitch? "
It's use is to detect beep only. You can test how it works by creating extension that will play a tone of given frequency, e.g: <extension name="10014"> <condition field="destination_number" expression="^10014$"> <action application="playback" data="tone_stream://L=3;%(500,6850,850)" /> <action application="hangup"/> </condition> </extension> This plays tone of 500Hz frequency and 6850 ms long, then silence by 850 ms.
Start avmd on the call with fs_cli: avmd 8c6a6bb1-ec64-4b2c-9e48-93a6a2598b64 start
and inspect events by regestering to avmd events with: events plain CUSTOM avmd::beep
Analysing the audio for a presence of the tone is not enough for answering machine detection. You should also analyse at least the length of speech/silence segments. You can do this by subscription to TALK/NOTALK events. Hope this helps.
cheers, Piotr
On 4 February 2016 at 17:50, Piotr Gregor <peterg@sytelco.com <mailto:peterg@sytelco.com>> wrote: Hi, "I looked at the AVMD module documentation at https://freeswitch.org/confluence/display/FREESWITCH/mod_avmd <https://freeswitch.org/confluence/display/FREESWITCH/mod_avmd> , and it seems to indicate that this simply detects a beep, i.e. it does not use talking / silence heuristics into account to determine if the call is answered by a human or machine. Am I correct about that? "
Yes. The AVMD module works by calculating the estimate of the frequency using DESA-2 algorithm. It fires amd::beep event when the variance for that estimate is below threshold. The event is of form:
Event-Subclass: avmd%3A%3Abeep Event-Name: CUSTOM Core-UUID: 36a5b214-8d83-487e-8f8b-50af9a090486 FreeSWITCH-Hostname: home FreeSWITCH-Switchname: home FreeSWITCH-IPv4: 128.11.35.8 FreeSWITCH-IPv6: %3A%3A1 Event-Date-Local: 2016-02-04%2016%3A56%3A55 Event-Date-GMT: Thu,%2004%20Feb%202016%2016%3A56%3A55%20GMT Event-Date-Timestamp: 1454605015915799 Event-Calling-File: mod_avmd.c Event-Calling-Function: avmd_process Event-Calling-Line-Number: 556 Event-Sequence: 950 Beep-Status: stop Unique-ID: 0a6f6df3-cc48-4b8a-93f3-b35ee1b8ef0a call-command: avmd
The AVMD doesn't take into consideration TALK/NOTALK events.
"How is this intended to be used, do I assume that the call is answered by a human until this module sends a avmd%3A%3Abeep event to me? How do others use this module or other techniques to determine human / machine answer to outbound calls with Freeswitch? "
You can test how it works by creating extension that will play a tone of given frequency, e.g: <extension name="10014"> <condition field="destination_number" expression="^10014$"> <action application="playback" data="tone_stream://L=3;%(500,6850,850)" /> <action application="hangup"/> </condition> </extension> This plays tone of 500Hz frequency and 6850 ms long, then silence by 850 ms.
Start avmd on the call with fs_cli: avmd 8c6a6bb1-ec64-4b2c-9e48-93a6a2598b64 start
and inspect events by regestering to avmd events with: events plain CUSTOM avmd::beep
Analysing the audio for a presence of the tone is not enough for answering machine detection. You should also analyse at least the length of speech/silence segments. Hope this helps.
cheers, Piotr
On 3 February 2016 at 19:50, Christopher Rienzo <cmrienzo@gmail.com <mailto:cmrienzo@gmail.com>> wrote: I wouldn't use beep detection in a dialer application, but it could be useful in something like follow me to reduce the occurrence of voicemails being left on subscriber phones.
On Wed, Feb 3, 2016 at 2:28 PM, Bob Hartwig <bobjectsfreeswitch@gmail.com <mailto:bobjectsfreeswitch@gmail.com>> wrote: I have a client that needs to reliably detect if their outbound calls are answered by a human or voicemail system, so that they can take different actions based on that determination.
I looked at the AVMD module documentation at https://freeswitch.org/confluence/display/FREESWITCH/mod_avmd <https://freeswitch.org/confluence/display/FREESWITCH/mod_avmd> , and it seems to indicate that this simply detects a beep, i.e. it does not use talking / silence heuristics into account to determine if the call is answered by a human or machine.
Am I correct about that? How is this intended to be used, do I assume that the call is answered by a human until this module sends a avmd%3A%3Abeep event to me? How do others use this module or other techniques to determine human / machine answer to outbound calls with Freeswitch?
Thanks! Bob
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org <mailto:consulting@freeswitch.org> http://www.freeswitchsolutions.com <http://www.freeswitchsolutions.com/>
Official FreeSWITCH Sites http://www.freeswitch.org <http://www.freeswitch.org/> http://confluence.freeswitch.org <http://confluence.freeswitch.org/> http://www.cluecon.com <http://www.cluecon.com/>
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org <mailto:FreeSWITCH-users@lists.freeswitch.org> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users <http://lists.freeswitch.org/mailman/listinfo/freeswitch-users> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users <http://lists.freeswitch.org/mailman/options/freeswitch-users> http://www.freeswitch.org <http://www.freeswitch.org/>
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org <mailto:consulting@freeswitch.org> http://www.freeswitchsolutions.com <http://www.freeswitchsolutions.com/>
Official FreeSWITCH Sites http://www.freeswitch.org <http://www.freeswitch.org/> http://confluence.freeswitch.org <http://confluence.freeswitch.org/> http://www.cluecon.com <http://www.cluecon.com/>
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org <mailto:FreeSWITCH-users@lists.freeswitch.org> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users <http://lists.freeswitch.org/mailman/listinfo/freeswitch-users> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users <http://lists.freeswitch.org/mailman/options/freeswitch-users> http://www.freeswitch.org <http://www.freeswitch.org/>
_________________________________________________________________________ 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)
-
Michael Jerris
-
Piotr Gregor