Files
asterisk/main
Alexis Hadjisotiriou 7b8339fb52 channel: Prevent crash during DTMF emulation when no timing module is loaded
Description:
When Asterisk is running without a timing module, attempting to process DTMF
triggers a segmentation fault. This occurs because the system
attempts to access a null timing file descriptor when setting up the
DTMF emulation timer.

This fix ensures that the system checks for a valid timing source before
attempting to start the DTMF emulation timer. If no timing module is
present, it logs a warning and skips the emulation instead of crashing
the process.

Changes:
- Modified main/channel.c to add a safety check within the __ast_read function.
- Implemented a graceful return path when no timing source is available
- Added a LOG_WARNING to inform the administrator that DTMF emulation
  was skipped due to missing timing modules.

Testing:
- Disabled all timing_ modules in modules.conf and confirmed with
  'timing test'.
- Reproduced the crash by modifying the dialplan with:
 exten => 707,1,NoOp(Starting DTMF - No Timing Mode)
 same => n,Answer()
 same => n,Background(demo-congrats)
 same => n,WaitExten(10)
 same => n,Hangup()
  And calling 707 followed by 1
- Verified that with the fix applied, the system logs "No timing module
  loaded; skipping DTMF timer" and continues dialplan
  execution without crashing.
- Confirmed stability during concurrent media sessions and DTMF input.

Fixes: #566
2026-03-09 13:08:35 +00:00
..
2025-02-20 21:46:35 +00:00
2025-02-20 21:46:35 +00:00
2025-02-20 21:46:35 +00:00
2025-02-20 21:46:35 +00:00
2023-12-08 13:11:54 +00:00
2025-02-20 21:46:35 +00:00
2023-12-08 13:11:54 +00:00
2025-02-20 21:46:35 +00:00
2021-12-02 15:02:09 -06:00
2021-12-02 15:02:09 -06:00
2021-12-02 15:02:09 -06:00
2021-12-02 15:02:09 -06:00
2021-12-02 15:02:09 -06:00
2025-01-16 15:32:54 +00:00
2025-02-20 21:46:35 +00:00
2025-08-06 15:37:52 +00:00
2026-03-02 16:43:30 +00:00
2021-12-02 15:02:09 -06:00
2022-07-07 08:19:14 -05:00
2025-02-20 21:46:35 +00:00
2020-06-10 09:33:28 -05:00
2021-12-02 15:02:09 -06:00
2025-02-20 21:46:35 +00:00
2024-08-12 15:21:35 +00:00
2021-12-02 15:02:09 -06:00
2021-11-15 17:33:27 -06:00
2026-03-05 12:52:43 +00:00
2021-12-02 15:02:09 -06:00
2025-04-02 12:16:41 +00:00
2025-01-29 14:18:25 +00:00
2025-01-29 14:18:25 +00:00
2025-01-29 14:18:25 +00:00
2025-01-29 14:18:25 +00:00
2025-04-21 13:29:33 +00:00
2021-12-02 15:02:09 -06:00
2025-02-20 21:46:35 +00:00
2021-12-02 15:02:09 -06:00
2025-01-29 14:18:25 +00:00
2021-12-02 15:02:09 -06:00
2021-12-02 15:02:09 -06:00
2025-02-20 21:46:35 +00:00
2025-01-29 14:18:25 +00:00
2025-01-29 14:18:25 +00:00
2021-12-02 15:02:09 -06:00
2021-11-15 17:33:27 -06:00
2021-12-02 15:02:09 -06:00
2021-11-18 14:46:42 -06:00
2025-01-29 14:18:25 +00:00
2025-01-29 14:18:25 +00:00
2025-06-02 16:35:34 +00:00
2025-02-20 21:46:35 +00:00
2021-12-02 15:02:09 -06:00
2022-03-24 12:00:58 -05:00
2025-02-20 21:46:35 +00:00
2021-12-02 15:02:09 -06:00