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>