SIP Profiles Module Documentation
Table of Contents
- Module Overview (Technical)
- Module Overview (Commercial/Business)
- Module Overview (End User/Administrator)
- Configuration Categories
- Common Settings Reference
- Common Scenarios & Examples
- Limitations & Important Notes
- Troubleshooting Tips
- Glossary
---
1. Module Overview (Technical)
What Are SIP Profiles?
SIP Profiles is a FreeSWITCH configuration module that manages SIP profile settings. SIP profiles define how FreeSWITCH handles SIP signaling, including transport protocols, codecs, NAT handling, security, and registration behavior.
Architecture
┌─────────────────────────────────────────────────────────────────┐
│ SIP Profiles Architecture │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Admin Panel │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ SIP Profiles Page │ │
│ │ │ │
│ │ Profiles: [internal] [external] [custom] │ │
│ │ │ │
│ │ Categories: │ │
│ │ ├─ General Settings │ │
│ │ ├─ Transport (SIP/TLS) │ │
│ │ ├─ Media & Codecs │ │
│ │ ├─ NAT / ACL │ │
│ │ ├─ Security & Auth │ │
│ │ ├─ Registration │ │
│ │ ├─ Call Handling │ │
│ │ └─ Advanced │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ Configuration saved │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ public.sip_profiles │ │
│ │ public.sip_profile_settings │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ FreeSWITCH XML generated │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ FreeSWITCH mod_sofia │ │
│ │ │ │
│ │ <profile name="internal"> │ │
│ │ <param name="sip-port" value="5060"/> │ │
│ │ <param name="rtp-timeout-sec" value="300"/> │ │
│ │ ... │ │
│ │ </profile> │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
Key Tables
| Table | Purpose |
|---|
public.sip_profiles | Profile definitions | |
public.sip_profile_settings | Parameter values |
Key Files
| File | Description |
|---|
modules/sipProfiles/ | Frontend module | |
modules/sipProfiles/api/sipProfileApi.ts | API calls | |
| FreeSWITCH sip_profiles/ | Generated XML configuration |
---
2. Module Overview (Commercial/Business)
Business Value
SIP Profiles provides centralized SIP configuration:
| Without SIP Profiles | With SIP Profiles |
|---|
| Manual XML editing | Web interface | |
| CLI configuration | Category-based UI | |
| Error-prone edits | Validated settings | |
| Server access needed | Browser-based |
Use Cases
- Transport Configuration
- Configure SIP ports
- Enable TLS encryption
- NAT Handling
- Configure STUN/TURN
- Set external IP
- Codec Management
- Configure codec preferences
- Enable/disable codecs
- Security Setup
- Configure authentication
- Set registration policies
Feature Highlights
| Feature | Benefit |
|---|
| Web Interface | No CLI needed | |
| Categories | Organized settings | |
| Default Values | Easy reset | |
| Multiple Profiles | Internal/External | |
| Search | Find settings fast | |
| Validation | Prevent errors |
---
3. Module Overview (End User/Administrator)
What Can You Do?
- Create and manage SIP profiles
- Configure SIP transport settings
- Set media and codec preferences
- Configure NAT traversal
- Set security parameters
- Manage registration behavior
- Configure call handling options
SIP Profiles Interface
┌─────────────────────────────────────────────────────────────────┐
│ SIP Profiles │
├─────────────────────────────────────────────────────────────────┤
│ │
│ [+ Create SIP Profile] │
│ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ Profile │ Description │ Settings │ Status │ │
│ ├─────────────┼───────────────────┼──────────┼─────────────┤ │
│ │ internal │ Internal SIP │ 45 │ 🟢 Enabled │ │
│ │ external │ External/Trunks │ 52 │ 🟢 Enabled │ │
│ │ secure │ TLS-only profile │ 48 │ 🟢 Enabled │ │
│ └───────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
Profile Edit View
┌─────────────────────────────────────────────────────────────────┐
│ Edit SIP Profile: internal │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Profile Name: [internal ] │
│ Description: [Internal SIP for extensions ] │
│ Enabled: ✓ │
│ │
│ 🔍 [Search settings... ] │
│ │
│ ▼ General Settings (12 parameters) │
│ ├─ context: [default ] [↺ Reset] │
│ ├─ dialplan: [XML ] [↺ Reset] │
│ └─ user-agent: [Ring2All ] [↺ Reset] │
│ │
│ ▼ Transport (SIP/TLS) (15 parameters) │
│ ├─ sip-port: [5060 ] [↺ Reset] │
│ ├─ sip-ip: [auto ] [↺ Reset] │
│ ├─ tls: [false ] [↺ Reset] │
│ └─ tls-cert-dir: [/etc/certs ] [↺ Reset] │
│ │
│ ▶ Media & Codecs (8 parameters) │
│ ▶ NAT / ACL (10 parameters) │
│ ▶ Security & Auth (7 parameters) │
│ ▶ Registration (6 parameters) │
│ ▶ Call Handling (5 parameters) │
│ ▶ Advanced (12 parameters) │
│ │
│ [Save] [Cancel] │
│ │
└─────────────────────────────────────────────────────────────────┘
Quick Tips
TIP
Reset to Default: Click ↺ to reset a parameter to its default value.
TIP
Search: Use search to find specific settings across categories.
CAUTION
Restart Required: Profile changes require FreeSWITCH reload.
---
4. Configuration Categories
General Settings
| Purpose | Common Parameters |
|---|
| Basic profile behavior | context, dialplan, user-agent |
Transport (SIP/TLS)
| Purpose | Common Parameters |
|---|
| SIP signaling layer | sip-port, sip-ip, tls, tls-cert-dir |
| Purpose | Common Parameters |
|---|
| Audio/video settings | codec-prefs, rtp-timer-name |
NAT / ACL
| Purpose | Common Parameters |
|---|
| NAT traversal | ext-rtp-ip, ext-sip-ip, apply-inbound-acl |
Security & Auth
| Purpose | Common Parameters |
|---|
| Authentication | challenge-realm, auth-calls |
Registration
| Purpose | Common Parameters |
|---|
| Device registration | accept-blind-reg, disable-register |
Call Handling
| Purpose | Common Parameters |
|---|
| Call behavior | rtp-timeout-sec, hold-music |
Advanced
| Purpose | Common Parameters |
|---|
| Expert settings | debug, sip-trace, nonce-ttl |
---
5. Common Settings Reference
Essential Parameters
| Parameter | Default | Description |
|---|
| context | default | Dialplan context | |
| sip-port | 5060 | SIP UDP/TCP port | |
| sip-ip | auto | Listen IP address | |
| rtp-ip | auto | RTP media IP | |
| user-agent | FreeSWITCH | SIP user agent |
TLS Settings
| Parameter | Default | Description |
|---|
| tls | false | Enable TLS | |
| tls-cert-dir | | Certificate directory | |
| tls-version | tlsv1.2 | TLS version | |
| tls-bind-params | | TLS binding options | |
| ws-binding | 127.0.0.1:5066 | WebSocket (plain WS) — localhost only for Nginx proxy | |
| wss-binding | (disabled) | WSS — disabled, TLS handled by Nginx on port 443 |
NAT Settings
| Parameter | Default | Description |
|---|
| ext-rtp-ip | | External RTP IP | |
| ext-sip-ip | | External SIP IP | |
| local-network-acl | | Local network ACL | |
| NDLB-force-rport | | Force rport |
Timeout Settings
| Parameter | Default | Description |
|---|
| rtp-timeout-sec | 300 | RTP inactivity timeout | |
| rtp-hold-timeout-sec | 1800 | Hold timeout | |
| session-timeout | 1800 | Session timeout |
---
6. Common Scenarios & Examples
Scenario 1: Enable TLS
- Edit SIP profile
- Expand "Transport (SIP/TLS)"
- Set tls = true
- Configure tls-cert-dir
- Save and reload
- Edit profile
- Expand "NAT / ACL"
- Set ext-rtp-ip = public IP
- Set ext-sip-ip = public IP
- Save and reload
Scenario 3: Change SIP Port
- Edit profile
- Expand "Transport"
- Change sip-port
- Save and reload
Scenario 4: Enable Debug
- Edit profile
- Expand "Advanced"
- Set debug = true
- Save and reload
- Check logs
Scenario 5: WebRTC Configuration
WebRTC uses Nginx as a TLS proxy to FreeSWITCH:
Browser → wss://domain/ws (Nginx, port 443)
→ ws://127.0.0.1:5066 (FreeSWITCH, plain WS)
- Edit internal profile
- Expand "Transport (SIP/TLS)"
- Set
ws-binding = 127.0.0.1:5066 (localhost only)
- Disable
wss-binding (Nginx handles TLS termination)
- Save and reload
NOTE
No TLS certificates are needed on FreeSWITCH for WebRTC. Nginx handles all WSS connections on port 443 and forwards them as plain WebSocket to FreeSWITCH on localhost.
---
7. Limitations & Important Notes
Technical Notes
NOTE
Profile Restart: Changes require
sofia profile restart.
NOTE
Two Profiles: Typically "internal" and "external" profiles.
WARNING
TLS Certificates: Must be valid and accessible.
Best Practices
- Backup First: Export profile before major changes
- Test Changes: Use debug mode
- Document Changes: Track what you modified
- Monitor After: Watch for registration issues
- Use Defaults: Only change what you need
Common Profiles
| Profile | Purpose |
|---|
| internal | Extensions, internal devices | |
| external | Gateways, trunks | |
| secure | TLS-only connections |
---
8. Troubleshooting Tips
Common Issues
| Symptom | Possible Cause | Solution |
|---|
| No registrations | Wrong SIP port | Check sip-port setting | |
| One-way audio | NAT issues | Configure ext-rtp-ip | |
| TLS fails | Bad certificates | Check tls-cert-dir | |
| Timeouts | Short timeout values | Increase rtp-timeout-sec | |
| Auth failures | Wrong challenge-realm | Check security settings |
Diagnostic Commands
FreeSWITCH CLI:
# Show profile status
fs_cli -x "sofia status profile internal"
# View profile settings
fs_cli -x "sofia profile internal gwlist"
# Restart profile
fs_cli -x "sofia profile internal restart reloadxml"
# Enable SIP trace
fs_cli -x "sofia profile internal siptrace on"
Check Profile Settings
SELECT
sp.name,
sps.setting_name,
sps.setting_value
FROM public.sip_profiles sp
JOIN public.sip_profile_settings sps ON sp.id = sps.sip_profile_id
WHERE sp.name = 'internal';
---
9. Glossary
| Term | Definition |
|---|
| SIP Profile | FreeSWITCH SIP endpoint configuration | |
| mod_sofia | FreeSWITCH SIP module | |
| TLS | Transport Layer Security | |
| NAT | Network Address Translation | |
| RTP | Real-time Transport Protocol | |
| ACL | Access Control List | |
| ext-rtp-ip | External RTP IP for NAT |
---
Lua Script Status ℹ️
No Lua Handler Required
| Component | Status |
|---|
| SIP Profiles | ℹ️ Configuration module - generates FreeSWITCH XML config |
SIP Profiles is a configuration module that stores settings and generates FreeSWITCH XML configuration. No Lua handlers are used - configuration is loaded by FreeSWITCH's mod_sofia directly.
---
Documentation last updated: January 2026