Treat the BridgeWait name as a workflow handle
BridgeWait([name,[role,[options]]]) places the executing channel into a holding bridge. Its name is a handle for BridgeWait and does not identify the actual bridge object Asterisk creates; an omitted name uses the reserved default handle.
Record the exact case-sensitive handle, channel and invocation time. Do not use the handle as an ARI bridge ID, infer that a bridge persists after all members leave, or treat a matching label in another control surface as the same resource.
Assign participant and announcer roles deliberately
A participant enters to wait on hold and is the default role. An announcer enters to make announcements to current participants, and participant entertainment is suspended while an announcer is present. Capture role case, entry, leave and overlapping membership for each channel.
An announcer entering does not prove that every participant heard intelligible audio. Prove membership, stream direction, packets and the endpoint result independently; also distinguish expected entertainment suspension from an unintended silence symptom.
Choose one entertainment mode and its dependencies
The e option selects by first letter: music on hold, ringing without pause, silent audio, channel hold or no entertainment. Music is the default. m(class) selects or suggests a music-on-hold class only for modes that use it.
Preserve the loaded option text, resolved mode, selected class, module and media-source state. Silence can be the configured mode, an absent source, a wrong role or a media-path failure; these require different evidence.
Bound answer and holding duration
BridgeWait answers an unanswered channel unless option n is present. Option S(duration) removes the channel from the holding bridge and returns it to PBX dialplan after the documented number of seconds. Capture answer state before entry, any answer event, entry time, removal trigger and first resumed priority.
The duration is not a detached scheduler and does not prove what runs after return. Hangup, an external removal and the duration boundary must remain different exit causes.
Use BridgeAdd to join the bridge containing a live channel
BridgeAdd(channel) places the executing channel into the bridge that contains the specified live channel. The target may be a full name, prefix or unique ID. This differs from Bridge(), which attempts to bridge the executing and target channels directly, and from BridgeWait, whose name is only a holding-workflow handle.
Resolve the target at invocation time and prove which actual bridge contains it. Capture BRIDGERESULT immediately on the executing channel: current references document SUCCESS, FAILURE, LOOP and NONEXISTENT.
Keep dialplan holding, conferences and ARI separate
BridgeWait participant and announcer roles are not ConfBridge conference profiles or ARI holding-bridge roles. BridgeAdd follows a channel into its existing bridge; it does not accept a BridgeWait handle or ARI bridge ID. Keep result variables and lifecycle events attached to the surface that produced them.
For an authorized test, prove loaded arguments, answer, role, entertainment, target identity, bridge membership, removal, application return and media independently. No host, module, dialplan, channel, holding bridge, bridge, packet, media stream or live call was inspected or tested for this guide.
Keep manager control separate from dialplan holding operations
The AMI bridge-control guide uses live channel and bridge identities rather than a BridgeWait workflow handle.
Sources & applicability
Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.
- Asterisk 23 BridgeWait application ↗
- Asterisk 22 BridgeWait application ↗
- Asterisk 23 BridgeAdd application ↗
- Asterisk 22 BridgeAdd application ↗
- Asterisk Bridge application overview ↗
- Asterisk ARI bridge overview ↗
- Asterisk 23 AMI Bridge action ↗
- Asterisk 22 AMI Bridge action ↗
- Asterisk 23 AMI BridgeList action ↗
- Asterisk 23 AMI BridgeInfo action ↗
- Asterisk 23 AMI BridgeKick action ↗
- Asterisk 22 AMI BridgeKick action ↗
- Asterisk 23 AMI BridgeCreate event ↗
- Asterisk 23 AMI BridgeEnter event ↗
- Asterisk 23 AMI BridgeLeave event ↗
- Asterisk 23 AMI BridgeInfoChannel event ↗
- Asterisk 23 AMI BridgeInfoComplete event ↗
Examples require adaptation to your topology. No live PBX or hardware testing is claimed.