Prerequisites
- FreePBX 15+ installed and accessible via web browser
- An IPComms account with SIP credentials (sign up at portal.ipcomms.net)
- At least one DID (phone number) assigned to your account
- Your server's public IP address (for IP authentication)
- Network access to s1.ipcomms.net on ports 5060 (UDP) and 10000-20000 (UDP)
FreePBX vs Asterisk: FreePBX is a web GUI for Asterisk. Everything you configure in FreePBX generates Asterisk config files behind the scenes. If you prefer editing config files directly, see our Asterisk PJSIP guide instead.
Step 1: Create a New Trunk
Log into your FreePBX admin panel (typically http://your-server/admin)
Navigate to Connectivity > Trunks
Click Add Trunk and select Add SIP (chan_pjsip) Trunk
Enter a Trunk Name: IPComms
PJSIP vs chan_sip: Always use PJSIP (chan_pjsip) for new trunks. chan_sip is deprecated and will be removed in future Asterisk versions. FreePBX 15+ defaults to PJSIP.
Step 2: Configure PJSIP Settings
General Tab
| Field | Value |
|---|---|
| Trunk Name | IPComms |
| Outbound CallerID | Your DID number |
| CID Options | Allow Any CID |
PJSIP Settings Tab - General
| Field | Value |
|---|---|
| Username | Your IPComms username |
| Secret | Your IPComms password |
| Authentication | Outbound |
| Registration | Send |
| SIP Server | s1.ipcomms.net |
| SIP Server Port | 5060 |
| Context | from-pstn |
PJSIP Settings Tab - Advanced
| Field | Value |
|---|---|
| From Domain | s1.ipcomms.net |
| From User | Your IPComms username |
| Direct Media | No |
| Match (Inbound) | 34.23.59.14 |
Step 3: Create an Outbound Route
An outbound route tells FreePBX which trunk to use for external calls:
Go to Connectivity > Outbound Routes
Click Add Outbound Route
Route Name: IPComms_Out
Trunk Sequence: Select IPComms
Dial Patterns
| Prepend | Prefix | Match Pattern | Description |
|---|---|---|---|
| 1 | NXXNXXXXXX | 10-digit dialing (prepends 1) | |
| 1NXXNXXXXXX | 11-digit dialing | ||
| 9 | 1NXXNXXXXXX | 9 + number (strips 9) | |
| 911 | Emergency |
Step 4: Create an Inbound Route
Go to Connectivity > Inbound Routes
Click Add Inbound Route
Description: Main Number
DID Number: Enter your IPComms DID (e.g., 2125551234)
Set Destination: Choose where calls should go (IVR, Ring Group, Extension, etc.)
Multiple DIDs: Create a separate inbound route for each DID. Each can have a different destination - main number to IVR, sales number to ring group, support to queue, etc.
Step 5: Test Your Configuration
Verify Trunk Registration
# Check PJSIP registration
asterisk -rx "pjsip show registrations"
# Expected output:
# IPComms/sip:s1.ipcomms.net Registered
Test Outbound
- Pick up an extension on your FreePBX system
- Dial an external number (your cell phone)
- Verify the call connects and audio works both ways
- Check caller ID shows your DID
Troubleshooting
| Problem | Solution |
|---|---|
| Trunk shows "Unavailable" | Check credentials, verify firewall allows UDP 5060 |
| One-way audio | Set Direct Media to No, check RTP ports |
| Outbound calls fail | Check outbound route dial patterns |
| Inbound calls not routing | Verify DID matches exactly in inbound route |
Get Started with FreePBX + IPComms
Sign up and configure your FreePBX trunk in minutes. Pay-as-you-go pricing with no contracts.