<div dir="ltr">Hi,<div><span class="im" style="font-size:12.8px"><div>&quot;<span style="font-size:12.8px">I looked at the AVMD module documentation at </span><a href="https://freeswitch.org/confluence/display/FREESWITCH/mod_avmd" target="_blank" style="font-size:12.8px">https://freeswitch.org/confluence/display/FREESWITCH/mod_avmd</a><span style="font-size:12.8px"> , 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. </span></div><div><span style="font-size:12.8px">Am I correct about that? </span><span style="font-size:12.8px">&quot;</span></div><div><span style="font-size:12.8px"><br></span></div></span><div style="font-size:12.8px"><span style="font-size:12.8px">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.</span></div><div style="font-size:12.8px"><span style="font-size:12.8px">The event is of form:</span></div><div style="font-size:12.8px"><span style="font-size:12.8px"><br></span></div><div style="font-size:12.8px"><div><span style="font-size:12.8px">Event-Subclass: avmd%3A%3Abeep</span></div><div><span style="font-size:12.8px">Event-Name: CUSTOM</span></div><div><span style="font-size:12.8px">Core-UUID: 36a5b214-8d83-487e-8f8b-50af9a090486</span></div><div><span style="font-size:12.8px">FreeSWITCH-Hostname: home</span></div><div><span style="font-size:12.8px">FreeSWITCH-Switchname: home</span></div><div><span style="font-size:12.8px">FreeSWITCH-IPv4: 128.11.35.8</span></div><div><span style="font-size:12.8px">FreeSWITCH-IPv6: %3A%3A1</span></div><div><span style="font-size:12.8px">Event-Date-Local: 2016-02-04%2016%3A56%3A55</span></div><div><span style="font-size:12.8px">Event-Date-GMT: Thu,%2004%20Feb%202016%2016%3A56%3A55%20GMT</span></div><div><span style="font-size:12.8px">Event-Date-Timestamp: 1454605015915799</span></div><div><span style="font-size:12.8px">Event-Calling-File: mod_avmd.c</span></div><div><span style="font-size:12.8px">Event-Calling-Function: avmd_process</span></div><div><span style="font-size:12.8px">Event-Calling-Line-Number: 556</span></div><div><span style="font-size:12.8px">Event-Sequence: 950</span></div><div><span style="font-size:12.8px">Beep-Status: stop</span></div><div><span style="font-size:12.8px">Unique-ID: 0a6f6df3-cc48-4b8a-93f3-b35ee1b8ef0a</span></div><div><span style="font-size:12.8px">call-command: avmd</span></div></div><div style="font-size:12.8px"><span style="font-size:12.8px"><br></span></div><div style="font-size:12.8px"><span style="font-size:12.8px">The AVMD doesn&#39;t take into consideration segments of speech and segments of silence. It simply calculates it&#39;s estimate of frequency and amplitude.</span></div><span class="im" style="font-size:12.8px"><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">&quot;</span><span style="font-size:12.8px">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? &quot;</span></div><div><span style="font-size:12.8px"><br></span></div></span><div style="font-size:12.8px"><span style="font-size:12.8px">It&#39;s use is to detect beep only.</span></div><div style="font-size:12.8px"><span style="font-size:12.8px">You can test how it works by creating extension that will play a tone of given frequency, e.g:</span></div><div style="font-size:12.8px"><div style="font-size:12.8px">    &lt;extension name=&quot;10014&quot;&gt;</div><div style="font-size:12.8px">      &lt;condition field=&quot;destination_number&quot; expression=&quot;^10014$&quot;&gt;</div><div style="font-size:12.8px">        &lt;action application=&quot;playback&quot; data=&quot;tone_stream://L=3;%(500,6850,850)&quot; /&gt;</div><div style="font-size:12.8px">        &lt;action application=&quot;hangup&quot;/&gt;</div><div style="font-size:12.8px">      &lt;/condition&gt;</div><div style="font-size:12.8px">    &lt;/extension&gt;</div><div style="font-size:12.8px">This plays tone of 500Hz frequency and 6850 ms long, then silence by 850 ms.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Start avmd on the call with fs_cli:</div><div style="font-size:12.8px"><span style="font-size:12.8px">avmd 8c6a6bb1-ec64-4b2c-9e48-93a6a2598b64 start</span><br></div><div style="font-size:12.8px"><span style="font-size:12.8px"><br></span></div><div style="font-size:12.8px"><span style="font-size:12.8px">and inspect events by regestering to avmd events with:</span></div><div style="font-size:12.8px"><span style="font-size:12.8px">events plain CUSTOM avmd::beep</span><br></div><div style="font-size:12.8px"><span style="font-size:12.8px"><br></span></div><div style="font-size:12.8px"><span style="font-size:12.8px">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.</span></div><div style="font-size:12.8px"><span style="font-size:12.8px">Hope this helps.</span></div><div style="font-size:12.8px"><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">cheers,</span></div><div><span style="font-size:12.8px">Piotr</span></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 4 February 2016 at 17:50, Piotr Gregor <span dir="ltr">&lt;<a href="mailto:peterg@sytelco.com" target="_blank">peterg@sytelco.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<span class=""><div>&quot;<span style="font-size:12.8px">I looked at the AVMD module documentation at </span><a href="https://freeswitch.org/confluence/display/FREESWITCH/mod_avmd" style="font-size:12.8px" target="_blank">https://freeswitch.org/confluence/display/FREESWITCH/mod_avmd</a><span style="font-size:12.8px"> , 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. </span></div><div><span style="font-size:12.8px">Am I correct about that? </span><span style="font-size:12.8px">&quot;</span></div><div><span style="font-size:12.8px"><br></span></div></span><div><span style="font-size:12.8px">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.</span></div><div><span style="font-size:12.8px">The event is of form:</span></div><div><span style="font-size:12.8px"><br></span></div><div><div><span style="font-size:12.8px">Event-Subclass: avmd%3A%3Abeep</span></div><div><span style="font-size:12.8px">Event-Name: CUSTOM</span></div><div><span style="font-size:12.8px">Core-UUID: 36a5b214-8d83-487e-8f8b-50af9a090486</span></div><div><span style="font-size:12.8px">FreeSWITCH-Hostname: home</span></div><div><span style="font-size:12.8px">FreeSWITCH-Switchname: home</span></div><div><span style="font-size:12.8px">FreeSWITCH-IPv4: 128.11.35.8</span></div><div><span style="font-size:12.8px">FreeSWITCH-IPv6: %3A%3A1</span></div><div><span style="font-size:12.8px">Event-Date-Local: 2016-02-04%2016%3A56%3A55</span></div><div><span style="font-size:12.8px">Event-Date-GMT: Thu,%2004%20Feb%202016%2016%3A56%3A55%20GMT</span></div><div><span style="font-size:12.8px">Event-Date-Timestamp: 1454605015915799</span></div><div><span style="font-size:12.8px">Event-Calling-File: mod_avmd.c</span></div><div><span style="font-size:12.8px">Event-Calling-Function: avmd_process</span></div><div><span style="font-size:12.8px">Event-Calling-Line-Number: 556</span></div><div><span style="font-size:12.8px">Event-Sequence: 950</span></div><div><span style="font-size:12.8px">Beep-Status: stop</span></div><div><span style="font-size:12.8px">Unique-ID: 0a6f6df3-cc48-4b8a-93f3-b35ee1b8ef0a</span></div><div><span style="font-size:12.8px">call-command: avmd</span></div></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">The AVMD doesn&#39;t take into consideration TALK/NOTALK events.</span></div><span class=""><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">&quot;</span><span style="font-size:12.8px">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? &quot;</span></div><div><span style="font-size:12.8px"><br></span></div></span><div><span style="font-size:12.8px">You can test how it works by creating extension that will play a tone of given frequency, e.g:</span></div><div><div style="font-size:12.8px">    &lt;extension name=&quot;10014&quot;&gt;</div><div style="font-size:12.8px">      &lt;condition field=&quot;destination_number&quot; expression=&quot;^10014$&quot;&gt;</div><div style="font-size:12.8px">        &lt;action application=&quot;playback&quot; data=&quot;tone_stream://L=3;%(500,6850,850)&quot; /&gt;</div><div style="font-size:12.8px">        &lt;action application=&quot;hangup&quot;/&gt;</div><div style="font-size:12.8px">      &lt;/condition&gt;</div><div style="font-size:12.8px">    &lt;/extension&gt;</div><div style="font-size:12.8px">This plays tone of 500Hz frequency and 6850 ms long, then silence by 850 ms.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Start avmd on the call with fs_cli:</div><div><span style="font-size:12.8px">avmd 8c6a6bb1-ec64-4b2c-9e48-93a6a2598b64 start</span><br></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">and inspect events by regestering to avmd events with:</span></div><div><span style="font-size:12.8px">events plain CUSTOM avmd::beep</span><br></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">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.</span></div><div><span style="font-size:12.8px">Hope this helps.</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">cheers,</span></div><div><span style="font-size:12.8px">Piotr</span></div><div><span style="font-size:12.8px"><br></span></div><div style="font-size:12.8px"><br></div></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px"><br></span></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On 3 February 2016 at 19:50, Christopher Rienzo <span dir="ltr">&lt;<a href="mailto:cmrienzo@gmail.com" target="_blank">cmrienzo@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I wouldn&#39;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.<br></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div>On Wed, Feb 3, 2016 at 2:28 PM, Bob Hartwig <span dir="ltr">&lt;<a href="mailto:bobjectsfreeswitch@gmail.com" target="_blank">bobjectsfreeswitch@gmail.com</a>&gt;</span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr">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.<div><br></div><div>I looked at the AVMD module documentation at <a href="https://freeswitch.org/confluence/display/FREESWITCH/mod_avmd" target="_blank">https://freeswitch.org/confluence/display/FREESWITCH/mod_avmd</a> , 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.  </div><div><br></div><div>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? </div><div><br></div><div>Thanks!</div><span><font color="#888888"><div>Bob</div><div><br></div><div><br></div></font></span></div>
<br></div></div><span>_________________________________________________________________________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org" target="_blank">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" rel="noreferrer" target="_blank">http://www.freeswitchsolutions.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://confluence.freeswitch.org" rel="noreferrer" target="_blank">http://confluence.freeswitch.org</a><br>
<a href="http://www.cluecon.com" rel="noreferrer" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org" target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" rel="noreferrer" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br></span></blockquote></div><br></div>
<br>_________________________________________________________________________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org" target="_blank">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" rel="noreferrer" target="_blank">http://www.freeswitchsolutions.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://confluence.freeswitch.org" rel="noreferrer" target="_blank">http://confluence.freeswitch.org</a><br>
<a href="http://www.cluecon.com" rel="noreferrer" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org" target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" rel="noreferrer" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" rel="noreferrer" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org" rel="noreferrer" target="_blank">http://www.freeswitch.org</a><br></blockquote></div><br></div>
</div></div></blockquote></div><br></div>