Skip to main content

WSS Transport

NethVoice on NethServer 8 supports WebSocket Secure (WSS) transport for extensions. Each NethVoice instance exposes a specific WSS port dedicated to WebSocket connections.

Network Constraint

This configuration relies on direct connectivity and does not work behind NAT. Ensure that NethVoice has direct network visibility to the client endpoints.

Service Configuration

The WSS port assigned to the specific NethVoice instance is dynamically defined.

  • Variable: ASTERISK_WSS_PORT
  • Location: Within the module's environment variables.

Clients connecting to NethVoice via WebRTC or other WebSocket-based protocols must target this specific port.

Extension Setup

To use WSS, the extension must be configured within the Advanced Interface (FreePBX).

Prerequisites

  1. Create a new Custom Device or modify an existing one.
  2. Access the Advanced Interface.

Transport Settings

Modify the Advanced settings of the extension with the following parameters to enable secure WebSocket transport:

  1. Outbound Proxy: Remove proxy configurations for this specific extension.
  2. Transport: Set to 0.0.0.0-wss.
  3. Enable AVPF: Set to Yes.
  4. Enable ICE Support: Set to Yes.
  5. Enable rtcp Mux: Set to Yes.
  6. Media Encryption: Set to DTLS.
  7. Enable WebRTC Defaults: Enable this setting to apply standard WebRTC optimizations.

Client Configuration

Configure your client with the following settings. Ensure that the client device has network access to the NethVoice instance.

ParameterValue / Instruction
SIP Server / DomainThe FQDN of your NethVoice instance.
SIP Proxy(Leave empty).
Transport ProtocolWSS (Secure WebSocket).
PortThe value of ASTERISK_WSS_PORT (check the module's environment variables).
Path/ws (Default WebSocket path for Asterisk).
Username / ExtensionThe extension number (e.g., 1001).
Password / SecretThe extension's secret defined in FreePBX.
Media EncryptionDTLS (Mandatory for WebRTC/WSS).
AVPFEnabled / Yes.
ICE SupportEnabled / Yes.
SSL Certificate Trust

WSS requires a valid SSL certificate. If using a self-signed certificate, the client device (or browser) must explicitly trust the Certificate Authority (CA) before the connection can be established.

NethVoice 8.0