Skip to main content

mod_stress

About​

mod_stress attempts to detect stress in a person's voice and generates FreeSWITCH events based on that data.

Click here to expand Table of Contents

How does this work?​

The module uses FFT to calculate the power spectrum of the call. It then attempts to recognise patterns that may imply stress. For example a strong tremor or volume.

Please note that this will be highly unreliable, generating many false positives/negatives.

Dialplan app​

stress​

The stress app attaches hooks to the channel to listen to the media in one direction.

  stress [ read | write | stop ]

The read parameter (default) listens for stress on the caller's direction, write for stress on the callee's direction and stop removes any previously attached hooks.

CLI / ESL​

The dialplan app can also be invoked on a channel from the console or via ESL (eg fs_cli):

 uuid_broadcast <uuid> stress::read
uuid_broadcast <uuid> stress::stop

Events

DETECTED_SPEECH​

When stress is detected this event is fired. Note both Event-Name and Speech-Type, other modules will raise DETECTED_SPEECH but with a different Speech-Type. Example:

Event-Name: DETECTED_SPEECH
Core-UUID: 82054370-3b7c-452d-aade-e77d2eead7fe
FreeSWITCH-Hostname: fs01.telefaks.biz
FreeSWITCH-Switchname: fs01.telefaks.biz
FreeSWITCH-IPv4: 192.168.178.221
FreeSWITCH-IPv6: %3A%3A1
Event-Date-Local: 2013-01-22%2023%3A29%3A11
Event-Date-GMT: Tue,%2022%20Jan%202013%2022%3A29%3A11%20GMT
Event-Date-Timestamp: 1358893751566924
Event-Calling-File: mod_stress.cpp
Event-Calling-Function: stress_callback
Event-Calling-Line-Number: 175
Event-Sequence: 117716
Speech-Type: stress-level
Stress-Level: 20000.00
Unique-ID: 178a661c-e135-4e50-8275-9285908287d7

Testing​

If you whistle into your phone you should see the following messages (example):

 2013-01-22 15:51:50.546923 [DEBUG] mod_stress.cpp:173 Stress 20000.00
2013-01-22 15:51:51.566922 [DEBUG] mod_stress.cpp:173 Stress 20000.00
2013-01-22 15:51:53.606924 [DEBUG] mod_stress.cpp:173 Stress 20000.00
2013-01-22 15:51:54.626923 [DEBUG] mod_stress.cpp:173 Stress 20000.00
2013-01-22 15:51:55.666926 [DEBUG] mod_stress.cpp:173 Stress 392.78
2013-01-22 15:51:56.686923 [DEBUG] mod_stress.cpp:173 Stress 0.17

This will confirm the module is listening to speech on the line.