This is an implementation of Asterisk's answering machine detection (voice activity detection) for FreeSWITCH.
Currently, in limited testing, we are able to get satisfactory results in determining what is a human and what is a machine, but there is much more to do:
- Emit events when a decision is made (Not sure, Machine, or Human).
 - Make sure that we are unlocking and cleaning up where necessary.
 
To build this module, all you need to do is type make, but because it relies
on pkg-config and FreeSWITCH, you need to point pkg-config to where
FreeSWITCH is installed before building:
host$ export PKG_CONFIG_PATH=/usr/local/freeswitch/lib/pkgconfig/
host$ make
Just put a file like this in your freeswitch installation, in conf/autoload_configs/amd.conf.xml
<configuration name="amd.conf" description="mod_amd Configuration">
  <settings>
    <param name="silence_threshold" value="256"/>
    <param name="maximum_word_length" value="5000"/>
    <param name="maximum_number_of_words" value="3"/>
    <param name="between_words_silence" value="50"/>
    <param name="min_word_length" value="100"/>
    <param name="total_analysis_time" value="5000"/>
    <param name="after_greeting_silence" value="800"/>
    <param name="greeting" value="1500"/>
    <param name="initial_silence" value="2500"/>
  </settings>
</configuration>