Device SIP Profiles Module Documentation
Table of Contents
- Module Overview (Technical)
- Module Overview (Commercial/Business)
- Module Overview (End User/Administrator)
- Configuration Categories
- Settings Reference
- Common Scenarios & Examples
- Limitations & Important Notes
- Troubleshooting Tips
- Glossary
---
1. Module Overview (Technical)
What Are Device SIP Profiles?
Device SIP Profiles are provisioning templates that define SIP parameters for devices (IP phones, softphones, WebRTC clients). Unlike SIP Profiles (which configure FreeSWITCH), Device SIP Profiles configure how individual device registrations are handled with specific NAT, codec, and security settings.
Architecture
┌─────────────────────────────────────────────────────────────────┐
│ Device SIP Profiles Architecture │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Admin Panel │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Device SIP Profiles │ │
│ │ │ │
│ │ Templates: │ │
│ │ ├─ LAN Phones (NAT disabled, UDP) │ │
│ │ ├─ Remote Phones (NAT enabled, TLS) │ │
│ │ └─ WebRTC Clients (WSS, DTLS, ICE) │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ Assigned to devices │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Extensions / Devices │ │
│ │ │ │
│ │ Extension 1001 → LAN Phones profile │ │
│ │ Extension 1002 → Remote Phones profile │ │
│ │ Extension 1003 → WebRTC Clients profile │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ Applied during registration │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ FreeSWITCH │ │
│ │ │ │
│ │ Device registers → Profile settings applied: │ │
│ │ ├─ NAT handling │ │
│ │ ├─ Codec preferences │ │
│ │ ├─ Security (TLS, SRTP) │ │
│ │ └─ SIP headers │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
Key Tables
| Table | Purpose |
|---|
public.device_sip_profiles | Profile definitions | |
public.device_sip_profile_settings | Profile settings |
Key Files
| File | Description |
|---|
modules/deviceSipProfiles/ | Frontend module | |
modules/deviceSipProfiles/api/deviceSipProfileApi.ts | API calls |
---
2. Module Overview (Commercial/Business)
Business Value
Device SIP Profiles provides device-specific configuration:
| Without Device Profiles | With Device Profiles |
|---|
| One-size-fits-all | Tailored per device type | |
| NAT issues | Proper NAT handling | |
| Security gaps | TLS/SRTP per profile | |
| Codec problems | Optimized codecs |
Use Cases
- LAN Phone Deployment
- Disable NAT traversal
- Use all codecs
- Remote Workers
- Enable aggressive NAT
- Require TLS/SRTP
- WebRTC Clients
- Enable WSS, ICE, DTLS
- Configure RTCP-mux
- Legacy Devices
- Adjust for compatibility
- Specific codec order
Feature Highlights
| Feature | Benefit |
|---|
| Templates | Reusable configurations | |
| NAT Settings | Handle any network | |
| Codec Control | Optimize quality | |
| Security Options | TLS, SRTP, DTLS | |
| WebRTC Support | Browser clients | |
| Per-Device | Granular control |
---
3. Module Overview (End User/Administrator)
What Can You Do?
- Create device SIP profile templates
- Configure NAT traversal settings
- Set codec preferences
- Enable security (TLS, SRTP)
- Configure WebRTC support
- Assign profiles to devices/extensions
Device SIP Profiles Interface
┌─────────────────────────────────────────────────────────────────┐
│ Device SIP Profiles │
├─────────────────────────────────────────────────────────────────┤
│ │
│ [+ Create Device Profile] │
│ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ Profile Name │ Description │ Usage │ Status │ │
│ ├──────────────────┼──────────────────────┼───────┼────────┤ │
│ │ LAN Phones │ Local office phones │ 45 │ ✓ On │ │
│ │ Remote Phones │ Work from home │ 20 │ ✓ On │ │
│ │ WebRTC Clients │ Browser softphone │ 15 │ ✓ On │ │
│ │ Legacy ATA │ Older analog adapters│ 5 │ ✓ On │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
Profile Edit View
┌─────────────────────────────────────────────────────────────────┐
│ Edit Device Profile: WebRTC Clients │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Profile Name: [WebRTC Clients ] │
│ Description: [Browser-based softphones ] │
│ Sofia Profile: [internal-tls ▼] │
│ Enabled: ✓ │
│ │
│ ▼ Network │
│ ├─ Authentication ACL: [ANY ▼] │
│ └─ Force Register Domain: ✓ │
│ │
│ ▼ NAT Traversal │
│ ├─ Aggressive NAT Detection: ✓ │
│ ├─ Rewrite Contact Header: ✓ │
│ └─ Force rport: ✓ │
│ │
│ ▼ Media Control │
│ ├─ RTP Timeout (Seconds): [300 ] │
│ ├─ Bypass Media: ☐ │
│ └─ Disable Transcoding: ☐ │
│ │
│ ▼ Codec Preferences │
│ ├─ Inbound Codecs: [OPUS, PCMU, PCMA ▼] │
│ ├─ Outbound Codecs: [OPUS, PCMU, PCMA ▼] │
│ └─ DTMF Method: [RFC 2833 ▼] │
│ │
│ ▼ Transport & Security │
│ ├─ Enable WebSocket (WS): ☐ │
│ ├─ Enable Secure WebSocket (WSS): ✓ │
│ ├─ Enable TLS: ✓ │
│ └─ TLS Only Mode: ✓ │
│ │
│ ▼ Security & RTP │
│ ├─ Enable DTLS-SRTP: ✓ │
│ ├─ Enable ICE NAT Traversal: ✓ │
│ ├─ Enable RTCP Multiplexing: ✓ │
│ └─ Secure RTP (SRTP) Mode: [Always Use SRTP ▼] │
│ │
│ [Save] [Cancel] │
│ │
└─────────────────────────────────────────────────────────────────┘
Quick Tips
TIP
WebRTC: Enable WSS, DTLS, ICE, and RTCP-mux for browser clients.
TIP
Remote Workers: Enable aggressive NAT detection and TLS.
NOTE
Usage Count: Shows how many devices use this profile.
---
4. Configuration Categories
Network
| Setting | Description |
|---|
| Authentication ACL | LAN, WAN, or ANY | |
| Force Register Domain | Lock registration domain |
NAT Traversal
| Setting | Description |
|---|
| Aggressive NAT Detection | Deep NAT inspection | |
| Rewrite Contact Header | Fix Contact for NAT | |
| Force rport | Use source port |
| Setting | Description |
|---|
| RTP Timeout | Inactivity timeout | |
| RTP Hold Timeout | Hold inactivity timeout | |
| Bypass Media | Direct RTP between devices | |
| Disable Transcoding | Allow asymmetric codecs | |
| Session Timeout | Maximum call duration |
Codec Preferences
| Setting | Description |
|---|
| Inbound Codec Prefs | Incoming codec priority | |
| Outbound Codec Prefs | Outgoing codec priority | |
| DTMF Method | RFC2833, SIP INFO, In-band | |
| RFC2833 Payload Type | DTMF RTP payload |
| Setting | Description |
|---|
| Send Remote-Party-ID | Include RPID header | |
| Send P-Asserted-Identity | Include PAI header | |
| Send SIP Diversion | Include Diversion header | |
| SIP Caller ID Type | None, PAI, or RPID |
Transport & Security
| Setting | Description |
|---|
| Enable WebSocket | WS for debugging | |
| Enable Secure WebSocket | WSS for browsers | |
| Enable TLS | Encrypted signaling | |
| TLS Only Mode | Require TLS | |
| Registration Expires | Re-registration interval | |
| TLS Verify Policy | Certificate validation |
Security & RTP
| Setting | Description |
|---|
| Enable DTLS-SRTP | Encrypted media (WebRTC) | |
| Enable ICE | NAT traversal for WebRTC | |
| Enable RTCP-mux | Share RTP/RTCP port | |
| Secure RTP Mode | Always, Optional, Never | |
| Require Secure Media | Enforce SRTP |
---
5. Settings Reference
Profile Types
| Profile Type | Key Settings |
|---|
| LAN Phones | NAT off, UDP, all codecs | |
| Remote Phones | NAT on, TLS, SRTP | |
| WebRTC Clients | WSS, ICE, DTLS, RTCP-mux | |
| Legacy ATA | Basic codecs, relaxed NAT |
WebRTC Requirements
| Setting | Value |
|---|
| WSS | ✓ Required (via Nginx proxy on port 443) | |
| DTLS-SRTP | ✓ Required | |
| ICE | ✓ Required | |
| RTCP-mux | ✓ Required | |
| Codecs | OPUS preferred |
NOTE
WebRTC clients connect via wss://domain/ws on port 443. Nginx terminates TLS and forwards plain WebSocket to FreeSWITCH on 127.0.0.1:5066. No separate WSS port is needed on FreeSWITCH.
Security Levels
| Level | TLS | SRTP | Use Case |
|---|
| None | ☐ | ☐ | LAN only | |
| Signaling | ✓ | ☐ | Basic security | |
| Full | ✓ | ✓ | Remote/WFH | |
| Maximum | ✓ | Required | High security |
---
6. Common Scenarios & Examples
Scenario 1: LAN Office Phones
- Create new profile
- Set Authentication ACL = LAN
- Disable NAT settings
- Set codecPrefs = PCMU,PCMA,G722
- Save and assign to extensions
Scenario 2: Remote Worker
- Create new profile
- Enable Aggressive NAT Detection
- Enable Rewrite Contact, Force rport
- Enable TLS and SRTP
- Save and assign
Scenario 3: WebRTC Softphone
- Create new profile
- Set Authentication ACL = ANY
- Enable all NAT options
- Enable WSS, DTLS, ICE, RTCP-mux
- Set codecs to OPUS
- DTMF = RFC2833
NOTE
WebRTC connection flow: Browser → wss://domain/ws (Nginx, port 443) → ws://127.0.0.1:5066 (FreeSWITCH). TLS is handled by Nginx.
Scenario 4: Legacy ATA
- Create new profile
- Basic NAT settings
- Set codecs = PCMU,PCMA only
- Set DTMF = Inband or INFO
- Longer timeouts
---
7. Limitations & Important Notes
Technical Notes
NOTE
Profile Assignment: Profiles are assigned to extensions/devices.
NOTE
Sofia Profile: Must select base SIP profile (internal/external).
WARNING
Cannot Delete In-Use: Profiles with assigned devices cannot be deleted.
Best Practices
- Create Per Type: Different profiles for different device types
- Test Thoroughly: Test NAT settings before deployment
- Security First: Use TLS/SRTP for remote devices
- Codec Matching: Match codecs to device capabilities
- Document Profiles: Note what each profile is for
---
8. Troubleshooting Tips
Common Issues
| Symptom | Possible Cause | Solution |
|---|
| Registration fails | Wrong ACL | Check Authentication ACL | |
| One-way audio | NAT issues | Enable NAT options | |
| No audio | Codec mismatch | Check codec preferences | |
| WebRTC not working | Missing WSS/ICE | Enable WebRTC settings | |
| DTMF not working | Wrong DTMF type | Change DTMF method |
WebRTC Checklist
| Setting | Required |
|---|
| Enable WSS | ✓ | |
| Enable DTLS-SRTP | ✓ | |
| Enable ICE | ✓ | |
| Enable RTCP-mux | ✓ | |
| Secure RTP | Optional or Always | |
| Codecs | Include OPUS |
NAT Checklist
| Setting | Remote Devices |
|---|
| Aggressive NAT Detection | ✓ | |
| Rewrite Contact | ✓ | |
| Force rport | ✓ |
---
9. Glossary
| Term | Definition |
|---|
| Device Profile | SIP settings template for devices | |
| NAT | Network Address Translation | |
| SRTP | Secure Real-time Transport Protocol | |
| DTLS | Datagram TLS for media | |
| ICE | Interactive Connectivity Establishment | |
| WSS | WebSocket Secure | |
| RTCP-mux | RTP/RTCP on same port | |
| OPUS | High-quality audio codec |
---
Lua Script Status ℹ️
No Lua Handler Required
| Component | Status |
|---|
| Device SIP Profiles | ℹ️ Configuration module - settings applied during registration |
Device SIP Profiles is a configuration module. Settings are stored and applied when devices register with FreeSWITCH. No Lua handlers are used.
---
Documentation last updated: January 2026