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.