Skip to content

Configuring WatchGuard Firebox for Cloud VoIP Service

Incoming calls experience intermittent no-audio or one-way audio while outbound calls work normally. This occurs when the WatchGuard firewall isn’t properly handling NAT translation for RTP media streams.

  • ❌ No audio on incoming calls (intermittent)
  • ❌ Caller cannot hear the called party
  • ✅ Outgoing calls work fine
  • ✅ Internal calls work fine

Note: TELAIR centrally manages all phone configurations. This guide focuses exclusively on WatchGuard firewall settings.


Before starting, ensure you have:

RequirementDetails
WatchGuard FireboxAny model with supported Fireware OS
Admin AccessLogin credentials for WatchGuard Web UI
SIP ALG StatusMUST BE DISABLED
TELAIR Server IPs[TELAIR_PRIMARY_IP]
[TELAIR_SECONDARY_IP]
TELAIR RTP RangeUDP 10000-65535
Phone RTP RangeUDP 2222-2269 (Polycom default)

⚠️ Critical: SIP ALG must be disabled as it interferes with proper NAT handling.


Step 1: Disable SIP ALG (If Not Already Done)

Section titled “Step 1: Disable SIP ALG (If Not Already Done)”

⚠️ MANDATORY FIRST STEP

  1. Navigate to System > Global Settings
  2. UNCHECK “Enable SIP ALG”
  3. Click Save
  4. Reboot the Firebox for changes to take effect

Without this step, all other configurations may fail!


Step 2: Configure 1-to-1 NAT for VoIP Subnet

Section titled “Step 2: Configure 1-to-1 NAT for VoIP Subnet”

🔑 This is the KEY solution - It ensures the firewall properly rewrites the phone’s private IP in SDP to your public IP

  1. Navigate to Network > NAT > 1-to-1 NAT
  2. Click Add
  3. Configure:
SettingValue
NameTELAIR-VoIP-NAT
Enable✅ Checked
TypeIP Range or Network
Internal IP RangeYour phone subnet (e.g., 192.168.1.0/24)
External IPYour public IP
DirectionBidirectional
  1. Advanced Options:

    • Enable NAT Reflection (if available)
    • Enable Sticky Connections
    • Set Connection Timeout: 300 seconds
  2. Click Save

💡 Why this works: 1-to-1 NAT automatically handles SDP rewriting without requiring SIP ALG, ensuring the phone’s private IP is replaced with your public IP in all SIP messages.


Step 3: Configure Outbound NAT with Port Preservation

Section titled “Step 3: Configure Outbound NAT with Port Preservation”

If 1-to-1 NAT isn’t available, use Dynamic NAT with special settings:

  1. Navigate to Network > NAT > Dynamic NAT
  2. Click Add
  3. Configure:
Name: TELAIR-VoIP-Outbound
From: Internal phone network
To: Any-External
NAT Type: Dynamic NAT
NAT to: Use Interface IP
  1. Critical Settings:

    • Preserve Source Port (CRITICAL!)
    • Enable Sticky Connections
    • Set UDP Timeout: 300 seconds
  2. Click Save

⚠️ “Preserve Source Port” is essential - it maintains the same port number through NAT, preventing RTP stream mismatches.


SettingValue
NameTELAIR-SIP-Outbound
FromInternal Network
To[TELAIR_PRIMARY_IP], [TELAIR_SECONDARY_IP]
ServiceSIP (or Custom UDP 5060)
ActionAllow
NATUse policy-based NAT → Select the NAT rule from Step 2/3

📥 B. Inbound RTP Policy (CRITICAL FOR INCOMING AUDIO)

Section titled “📥 B. Inbound RTP Policy (CRITICAL FOR INCOMING AUDIO)”

⚠️ THIS IS THE MOST IMPORTANT POLICY FOR FIXING INCOMING AUDIO

SettingValue
NameTELAIR-RTP-Inbound
FromAny-External
ToFirebox
ServiceCustom
ProtocolUDP
Port Range2222-2269 (Polycom) AND 10000-65535 (TELAIR)
ActionAllow
NAT1-to-1 NAT (use the rule from Step 2)

Advanced Settings:

  • Handle as VoIP Traffic
  • Disable Deep Packet Inspection
  • Enable Fast Path
SettingValue
NameTELAIR-RTP-Outbound
FromInternal Network
ToAny-External
ProtocolUDP
Port Range10000-65535
ActionAllow
NATUse policy-based NAT

🔐 Prevents calls from dropping due to timeout

  1. Navigate to Firewall > Firewall Settings > Global Settings
  2. Set timeouts:
Timeout TypeValue
UDP Timeout300 seconds
UDP Stream Timeout300 seconds
VoIP Session Timeout3600 seconds (if available)
  1. Click Save

Step 6: Enable NAT Traversal Helper (If Available)

Section titled “Step 6: Enable NAT Traversal Helper (If Available)”

Some WatchGuard models have a NAT traversal helper that’s better than SIP ALG:

  1. Navigate to System > Packet Handling
  2. Look for NAT Traversal or STUN Helper
  3. If present, ENABLE it
  4. Configure:
    • Protocol: UDP
    • Ports: 3478, 5060, 10000-65535

  1. Make an inbound test call
  2. During the call, check System Manager > Active Connections
  3. Look for:
    • ✅ UDP 5060 connections to TELAIR IPs
    • ✅ UDP connections in the 2222-2269 range (phone RTP)
    • ✅ UDP connections in the 10000-65535 range (TELAIR RTP)
Internal_IP:2242 ↔ Firewall ↔ TELAIR_IP:##### (NAT translated)

If you see connections but no audio, the NAT translation isn’t working properly.


1. Verify SIP ALG is truly disabled:

Terminal window
# In Traffic Monitor, SIP packets should NOT show "ALG" tag

2. Check if private IPs leak in SDP:

  • In Traffic Monitor, filter for port 5060
  • Look at SIP 200 OK packets
  • If you see c=IN IP4 192.168.x.x or c=IN IP4 10.x.x.x, NAT isn’t working

3. Try Static Port NAT:

  • Instead of dynamic NAT, create specific port mappings:
    • External: YourPublicIP:2222-2269 → Internal: PhoneSubnet:2222-2269

4. Enable logging on all VoIP policies:

  • Check for denied packets during calls
  • Look for packets arriving on unexpected ports

If standard NAT doesn’t work, try Source NAT (SNAT) rules:

  1. Navigate to Network > SNAT
  2. Create rule:
Name: Force-VoIP-SNAT
From: Internal phone network
To: TELAIR IPs
Action: SNAT
SNAT to: Your Public IP
Preserve Ports: YES

This forces proper source IP rewriting for VoIP traffic.


  1. SIP ALG MUST be disabled - It breaks NAT traversal
  2. 1-to-1 NAT or SNAT - Ensures proper IP translation in SDP
  3. Inbound RTP ports open - Both Polycom (2222-2269) and TELAIR (10000-65535) ranges

Why Other Customers Don’t Have This Issue:

Section titled “Why Other Customers Don’t Have This Issue:”
  • Many firewalls handle NAT traversal automatically
  • Some routers have working SIP helpers (not ALG)
  • WatchGuard requires explicit configuration for proper SDP NAT translation