I asked Gemini.
Yes, Asterisk fully supports this capability. This exact setup is standard in emergency dispatch, aviation, and industrial intercom environments. It is typically implemented using Asterisk’s built-in
ConfBridge application, combined with specific device configurations.
In this architecture, instead of a traditional point-to-point call, the endpoint and the dispatcher are placed into a permanent, secure audio conference room.
️ How It Works (The Architecture)
[ Remote Endpoint ] ───(Always-On SRTP/Opus)───► [ Asterisk ConfBridge ]
▲
│ (Always-On / Listen-Only)
▼
[ Dispatcher Phone ]
(Muted until PTT is pressed)
1. The Secure, Permanent Connection
- SRTP & Opus: Asterisk natively supports the Opus codec (via codec_opus) and secure media encryption via SRTP (transport=tls and srtpencryption=yes in pjsip.conf).
- Always-On Endpoint: The remote endpoint is configured to automatically dial into a dedicated ConfBridge room immediately upon boot or reconnection. Alternatively, Asterisk can initiate a call to the endpoint on startup and force it into the bridge.
2. The Dispatcher's "Monitor" Mode
- The dispatcher's desk phone also maintains a permanent connection to that same ConfBridge room.
- By using ConfBridge Profiles, you configure the dispatcher's room profile to join as a listen-only user by default (startmuted=yes). This allows them to continuously monitor the remote audio without sending room noise back.
3. The Push-to-Talk (PTT) Functionality
True PTT requires coordination between Asterisk and the dispatcher's hardware. You can achieve this in two ways:
- Option A: Hardware-Driven PTT (Recommended)
Many dispatcher-grade SIP desk phones or consoles (like those from Poly, Yealink, or specialized dispatch hardware) have dedicated PTT buttons or support external foot pedals. When pressed, the phone sends a standard SIP INFO message or toggles its local mute state.
- Option B: Asterisk-Driven PTT (DTMF/Features)
You can map a key on the dispatcher's phone to a ConfBridge action. For example, pressing *1 toggles the mute state via Asterisk's confbridge.conf menus:
ini
[dispatcher_menu]
type=menu
*1=toggle_mute
Use code with caution.
Sample Configuration Outline
Here is a simplified look at how you would define this in confbridge.conf:
ini
; 1. Define the user profile for the remote endpoint (Always listening/talking)
[remote_user]
type=user
startmuted=no
music_on_hold_when_empty=no
; 2. Define the user profile for the Dispatcher (Monitor by default)
[dispatcher_user]
type=user
startmuted=yes ; Keeps the dispatcher muted until they activate PTT
quiet=yes ; Suppresses "user joined" beeps
; 3. Define the bridge itself (Configured for high-fidelity Opus)
[dispatch_bridge]
type=bridge
max_members=2
internal_sample_rate=48000 ; Matches Opus full-band audio

Key Considerations for Implementation
- Keep-Alives & NAT: Because these connections are "always-on" but might experience long periods of silence, you must configure aggressive PJSIP keep-alives (qualify_frequency) to ensure firewalls don't drop the stateful SRTP UDP ports.
- Auto-Answer / Auto-Reconnect: The remote endpoint hardware must support auto-answer and robust auto-reconnect logic so that if power drops or network blips occur, the link re-establishes itself without human intervention.