Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ host$ make

Sample Configuration
--------------------

Just put a file like this in your freeswitch installation, in **conf/autoload_configs/amd.conf.xml**
```xml
<configuration name="amd.conf" description="mod_amd Configuration">
Expand All @@ -41,3 +42,46 @@ Just put a file like this in your freeswitch installation, in **conf/autoload_co
</settings>
</configuration>
```

Variables
---------

After the AMD execution, the variable `amd_result` and `amd_cause` will be set.

The variable `amd_result` will return one of the following results:

- NOTSURE: take this value if total_analysis_time is over and decision could not be made
- HUMAN: if a human is detected
- MACHINE: if a human is detected


The variable `amd_cause` will return one of the following results:

- INITIALSILENCE (MACHINE)
- SILENCEAFTERGREETING (HUMAN)
- MAXWORDLENGTH (MACHINE)
- MAXWORDS (MACHINE)
- LONGGREETING (MACHINE)
- TOOLONG (NOTSURE)


Usage
-----

Set a Dialplan as follow:

```xml
<extension name="amd_ext" continue="false">
<condition field="destination_number" expression="^5555$">
<action application="answer"/>
<action application="amd"/>
<action application="playback" data="/usr/local/freeswitch/sounds/en/us/callie/voicemail/8000/vm-hello.wav"/>
<action application="info"/>
<action application="hangup"/>
</condition>
</extension>
```

The originate a call that will bridge to the `amd_ext` dialplan:

originate {origination_caller_id_number='808111222',ignore_early_media=true,originate_timeout=45}sofia/gateway/mygateway/0044888888888 5555
14 changes: 14 additions & 0 deletions amd.conf.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@

<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>
10 changes: 10 additions & 0 deletions dialplan.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@

<extension name="test_amd" continue="false">
<condition field="destination_number" expression="^5555$">
<action application="answer"/>
<action application="amd"/>
<action application="playback" data="/usr/local/freeswitch/sounds/en/us/callie/voicemail/8000/vm-hello.wav"/>
<action application="info"/>
<action application="hangup"/>
</condition>
</extension>
2 changes: 1 addition & 1 deletion mod_amd.c
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ static switch_bool_t amd_handle_silence_frame(amd_vad_t *vad, const switch_frame
globals.after_greeting_silence);

switch_channel_set_variable(vad->channel, "amd_result", "HUMAN");
switch_channel_set_variable(vad->channel, "amd_cause", "HUMAN");
switch_channel_set_variable(vad->channel, "amd_cause", "SILENCEAFTERGREETING");
return SWITCH_TRUE;
}

Expand Down