Capture one wait and classify its actual symptom
Record timestamp and timezone, installed Asterisk branch, executed application, channel name, unique identity, linked identity, answer and bridge state, all arguments with units, start and end time, immediate status value, next priority and the caller-visible result. Redact caller data and secrets.
Classify the symptom as no return, timeout, early advance, late advance, wrong channel, missing or unexpected status, hangup, or correct classification followed by wrong downstream routing. Do not group all of these under detector sensitivity.
Prove module availability and loaded dialplan
Confirm the installed system exposes the selected application and inspect its local help. Then prove the running dialplan entered the expected context, extension and priority with the intended arguments. A line in a saved file is not proof that the loaded dialplan executed it.
Keep WaitForSilence() and WaitForNoise() distinct even though the generated documentation places both under app_waitforsilence. If the application or target priority is absent, correct that boundary before changing media or timing.
Follow media to the exact waiting channel
Establish whether relevant voice frames arrived on the channel while the application was active. Map caller and callee legs, Local-channel halves, direct-media state, bridges and any external media owner. Use bounded channel and RTP evidence appropriate to the deployment.
If no expected frames arrived, stay with negotiation, routing, address, firewall, codec, bridge or application ownership. A longer timeout or shorter required interval cannot classify frames that are not present on that channel.
Recalculate duration, iterations and timeout
Write the first argument in milliseconds, the iteration count as a separate integer and the optional timeout in seconds. Compare the configured values with observed start and end timestamps. Verify that copied variables contain the intended units and were not empty, inherited from another channel or changed by a subroutine.
A timeout bounds the application; it does not guarantee that every requested iteration completed. An early result can reflect a genuinely continuous classified interval, the wrong media leg or different effective values. A late result can reflect repeated interruption of the required continuous interval rather than a stalled dialplan.
Separate classification from speech and voicemail meaning
Compare the channel media interval with the actual business event. Continuous background tone, comfort noise, clipping, transcoding artifacts, echo, a muted source or a voicemail greeting can diverge from human notions of quiet or speech. Do not label a signal interval as a person, beep or completed announcement without separate evidence.
If the workflow needs talk-duration bounds during playback, inspect BackgroundDetect(). If it needs event notifications, inspect TALK_DETECT(). If it needs answering-machine classification, keep that decision and its application-specific result separate from a basic silence or noise wait.
Correct the first proved owner and repeat a bounded matrix
Correct only the first demonstrated divergence: loaded application, dialplan target, channel leg, media path, argument units, iteration count, timeout or status branch. Preserve rollback and remove temporary high-volume logging.
Repeat quiet, speech, background-noise, muted, one-way-audio and hangup cases as authorized, logging the exact channel and immediate result. Accept classification timing separately from downstream routing and listener outcome. No host, module, dialplan, channel, packet, media frame, detector, endpoint or live call was inspected or tested for this diagnostic.
Sources & applicability
Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.
- Asterisk 23 WaitForSilence application ↗
- Asterisk 23 WaitForNoise application ↗
- Asterisk 22 WaitForSilence application ↗
- Asterisk 22 WaitForNoise application ↗
- Asterisk 23 BackgroundDetect application ↗
Examples require adaptation to your topology. No live PBX or hardware testing is claimed.