FreePBX-PBXact Trunking Configuration
- 1 Overview
- 2 Introduction
- 3 SIP Trunking
- 3.1 FreePBX-PBXact Configuration
- 3.1.1 General Configuration
- 3.1.2 Trunks
- 3.1.3 Inbound Routes
- 3.1.4 Outbound Routes
- 3.2 SBC Configuration
- 3.2.1 General Configuration
- 3.2.2 IP Settings | Network
- 3.2.3 IP Settings | Media Interfaces
- 3.2.4 IP Settings | Access Control Lists
- 3.2.5 Signaling | SIP Profile
- 3.2.6 Signaling | SIP Trunks
- 3.2.7 Routing | Call Routing
- 3.2.8 Signaling | SIP Profile
- 3.2.9 Apply Configuration
- 3.2.10 Finalizing the Installation
- 3.1 FreePBX-PBXact Configuration
Â
Â
Overview
This document will guide you through the process of configuring the Session Border Controllers to work with FreePBX or PBXact. There are two major applications - 1) SIP Trunking solutions, 2) Remote Phone solutions. This document describes the configuration of SIP Trunking.
Introduction
For Trunking solutions, SBC to FreePBX - PBXact Configuration Guide provides detailed information about the configuration requirements in the SMB SBC, Vega SBC, Netborder SBC and the Software VM SBC. A typical deployment connects SIP Trunking Service Provider across Internet or other networks into the SBC, where the SBC provides Security, Routing, Interoperability and more, then delivers the SIP Trunk call to the FreePBX - PBXact IP-PBX.  Using SIP Protocol the SBC and the FreePBX - PBXact create a Trunk together.
Â
Â
SIP Trunking
Bringing SIP Trunks from SIP Trunking Service Providers into the SBC and then deliver the SIP Trunk calls to the FreePBX - PBXact.
Â
FreePBX - PBXact IP:Â 192.168.77.112
SBC LAN IP:Â 192.168.77.124
SBC DMZ IP:Â 10.10.32.170
SBC Public WAN IP:Â 104.145.12.182
ITSPÂ FQDN:Â itsp.sangoma.com
Â
Note: In the following configuration example, this is a DMZ-LAN setup of the SBC, and the FreePBX-PBXact is located on a Private LAN. This is one of many different network topologies that the SBC supports. Not all network topologies will be documented in the document, please consult other Wikis for slight changes in deployment styles of the SBC.  Slight changes in configuration from this example to other network topologies are expected.
FreePBX-PBXact Configuration
General Configuration
The FreePBX-PBXact will typically have a Static IP or Fully Qualified Domain Name. In this configuration we are defining the SBC as a Trunk, then assigning a Outgoing Calls and Incoming Calls to/from the SBC.
Trunks
Open the Trunks Module. ( Connectivity > Trunks )
Â
Click Add Trunk. Select Add SIP (Chan_sip) Trunk
Note: "SIP (chan_pjsip) Trunk" works as well. But the configuration is not documented here.
Â
Under General complete the following information:
Trunk Name:Â Any Name - for example SBC-Trunk.124
Outbound CallerID:Â Defined the default Outbound CallerID.
CID Options: Outbound CallerID options. Allow Any CID will allow CallerID settings in other Modules. Some providers may restrict to only one, when this is the case "Force Trunk CID" should be selected.
Maximum Channels: Optional. Controls the maximum number of outbound channels (simultaneous calls) that can be used on this trunk. ONLY limits outbound calls.
Disable Trunk: No. But at anytime you want to turn off the trunk you can select Yes.
Â
Under SIP Settings complete the following information in the Outgoing Tab
Trunk Name:Â Enter any name
Under SIP Settings complete the following information in the Outgoing Tab Peer Details
host=192.168.77.124Â Â Â Â Â - This is the IP Address of the SBC Internal LAN interface
port=5060Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â - This is the Port of the SIP Profile on the SBC Internal LAN Interface
type=peer                      - We are creating a Peer relationship with the SBC, no Registrations - IP Authentication only
disallow=all                   - Disallow all codecs
allow=ulaw                    - Then define the list of codecs to send to the SBC
context=from-pstn        - Define the Asterisk Context as from-pstn
sendrpid=yes                - Optional. Turn on the use of sendipid
trustrpid=yes                - Optional. Turn on the Asterisk to trust the RPID
dtmfmode=rfc2833Â Â Â Â Â Â - Use rfc2833 for DTMF
Â
Note:Â When Peer is selected, the FreePBX-PBXact Admin GUI doesn't report on the state of that peer, so it shows up as Unmonitored in the Server>Connection Status>VoIP Providers.
Â
Click "Submit"
Â
Inbound Routes
Open the Inbound Routes. ( Connectivity > Inbound Routes )
Â
Click Add Inbound Route.
Â
Â
Under Single DID Route Settings complete the following information:
Description:Â Any Description - SBC
DID Number:Â Enter in the DID (or range) being delivered from the SBC
CallerID Number:Â This is a filter, to match for the Source CallerID
Alert Info: Optional. Change the Ringer type
Set Destination: Select the Destination to ring when a voice call comes in over this SBC or channel. The destination can be any extension type (your receptionist’s phone, an IVR, Queues, etc.).
Â
Click "Submit"
Â
Outbound Routes
Open the Outbound Routes. ( Connectivity > Outbound Routes )
Â
Click Add Outbound Route
Â
When Outbound Route, there are general Route Settings and Dial Patterns.
Route Name:Â Give it any name
Route CID: Optional. If there is any Outbound CallerID that is specific to this Route
Override Extension: Optional. Yes, if you want the Route CallerID to override the Extension CallerID
Route Password: Optional. Enter a PIN if you want this Outbound Route PIN protected.
Trunk Sequence for Matched Routes:Â Select the SBC trunk created earlier
Â
Run through the Dial Plan Wizard. Or configure your Dial Plan.
Â
Click "Submit"
Â
SBC Configuration
General Configuration
The following configuration will focus on the FreePBX-PBXact to SBC requirements. It is only half of the configuration needed for proper operation, as the SIP Trunking Service Provider will also need to be configured, along with the External WAN interface and external SIP Profiles and related configuration. The document will reference the SIP Trunking Service Provider but not show how to configure the provider. There are other Wiki's that document how to configure SIP Trunking with SIP Trunking Service Providers.
FreePBX-PBXact IP:Â 192.168.77.112
SBC LAN IP:Â 192.168.77.124
SBC DMZ IP:Â 10.10.32.170
SBC Public IP:Â 104.145.12.182
ITSPÂ FQDN:Â itsp.sangoma.com
Â
Note: In the following configuration example, this is a DMZ-LAN setup of the SBC, and the FreePBX-PBXact is located on a Private LAN. This is one of many different network topologies that the SBC supports. Not all network topologies will be documented in the document, please consult other Wikis for slight changes in deployment styles of the SBC.  Slight changes in configuration from this example to other network topologies are expected.
Â
IP Settings | Network
The default IP Address of the SBC is 192.168.168.2 root/sangoma  The IP Address needs to be changed and a new admin user created.
Â
Go to Configuration | IP Settings | Network
Press "Add" to add a DMZ IP Address
Interface:Â Select Eth1
Configuration:Â Select IPv4 - Static
Address:Â Enter the DMZ interface IP Address / Mask.
Press Save
Â
Press "Add" to add a LAN IP Address
Interface:Â Select Eth0
Configuration:Â Select IPv4 - Static
Address:Â Enter the LAN interface IP Address / Mask.
Press Save
Â
Once completed you will now have an IP address on eth0 for LAN and eth1 for DMZ.
Press "Edit" to configure the Default Gateway and Hostname
Â
Configure the Network
Host Name:Â Enter a FQDN
Default Gateway Interface:Â Select eth1. the default gateway is always the way to the Internet
Default IPV4 Gateway:Â Enter the IP Address of the Default Gateway
Static DNS #1:Â Enter the IP Address of the Primary DNS Server
Static DNS #2:Â Enter the IP Address of the Secondary DNS Server
Â
Apply Network
Â
Restart Network
Â
At this point you can access the SBC from the New LAN IP Address.
IP Settings | Media Interfaces
Go to Configuration | IP Settings | Media Interfaces
Click Edit.
Â
Ensure the Transcoding Mode is to Hardware Hidden mode for all Vega SBC and Netborder SBC. Then click Save.Â
Note: For SMB SBC and Software VM SBC the Transcoding Mode is to Software. The click Save.
Â
Next click Detect Modules. Once you modules are detected click OK to continue.
Â
IP Settings | Access Control Lists
Go to Configuration | IP Settings | Access Control Lists
Access Control Lists are a list of IP Address(es) that can have an Allow or Deny policy. Typical practice is to have a Default Policy to Deny all traffic, then Allow specific Hosts and Subnets. Both local trusted LAN traffic and Internet WAN traffic need to be defined separately.
Default
Â
Local LAN Internal Network ACL
Within the ACL box, click Add.
Give the ACL a name.
Â
Set the Default Policy to Deny. Press Save
Â
Within the ACL Box, press Add
Â
Add the local Subnet, where the FreePBX-PBXact resides. Add any additional networks within the LAN environment.
Policy:Â Set to Allow
IP Address:Â Enter the LAN Network Address or IP Address and Mask
Â
Internet WAN External Network ACL
Within the ACL box, click Add.
Give the ACL a name.
Â
Set the Default Policy to Deny. Press Save
Â
Within the ACL Box, press Add
Â
Add the local Subnet, where the FreePBX-PBXact resides. Add any additional networks within the LAN environment.
Policy:Â Set to Allow
IP Address:Â Here you will need a list of any IP Address(es) used by the SIP Trunk Service Provider - Enter the Network Address or IP Address and Mask
Â
Signaling | SIP Profile
Two SIP Profiles are needed. One for the LAN side - for 'Internal' communications with the FreePBX-PBXact, and another for the WAN side - for 'External' communication with the SIP Trunk Service Provider.
Â
Go to Configuration | Signaling | SIP Profiles
A default "internal" SIP Profile will be present. You can Delete it - then Add a new Profile OR Modify it.
Â
Setup an Internal SIP Profile
Click Modify next to the default internal SIP profile.
Â
This SIP Profile is used for assigning the SBC's LAN IP to a SIP Profile. This is where the FreePBX-PBXact will communicate with the SBC. IP Address. Port. Transport and other interop settings are defined here. Not all SIP Profile settings are required. here are the highlights.
Display Name: Give the SIP Profile a name. PBXact_Internal
User Agent: This is the name displayed on the User-Agent Header. Does not need changing.
SIP IP Address:Â Select the LAN IP Address of the SBC
Port:Â Port 5060 is default.
Transport: Select the Transport you want to use, UDP+TCP is default. Or individually UDP or TCP.
SIP Trace: Optional: Enable. It is useful when you have a problem.
Strict Security: Optional.  Enable when strict security is required, here all traffic from non whitelisted and/or registered IP addresses, on that SIP Profile, will be blocked. This means that with this feature enabled you need to assign ACLs or register endpoints in order to be able to make calls through the profile. Enabling in SIP Trunking solutions, allows the SBC to lock down to specific SIP Peers.
Authenticate Calls:Â Select Disable,
ACL for Inbound Calls: From the Available list, select and use the Arrow key to move over the Local_LAN_Internal_ACL list created earlier.
Â
Press Save
Â
Setup an External SIP Profile
Click Add to create a New SIP profile for the External SIP communications.
Â
This SIP Profile is used for assigning the SBC's DMZ IP to a SIP Profile - the WAN IP address of the Firewall will be NAT'd through to the DMZ IP of the SBC. This is where the SIP Trunk Service Provider will communicate with the SBC. IP Address. Port. Transport and other interop settings are defined here. Not all SIP Profile settings are required. here are the highlights.
Display Name: Give the SIP Profile a name. ServiceProvider_External
User Agent: This is the name displayed on the User-Agent Header. Does not need changing.
SIP IP Address:Â Select the LAN IP Address of the SBC
External SIP IP Address: Enter in the WAN IP Address of the Firewall/Router. This setting is only used when the SBC is behind a Firewall/Router.
Port:Â Port 5060 is default.
Transport: Select the Transport you want to use, UDP+TCP is default. Or individually UDP or TCP.
RTP IP address:Â If different than the SIP IP Address, select the IP here.
External RTP IP address:Â Enter in the WAN IP Address of the Firewall/Router. Â This setting is only used when the SBC is behind a Firewall/Router.
SIP Trace: Optional: Enable. It is useful when you have a problem.
Strict Security: Optional.  Enable when strict security is required, here all traffic from non whitelisted and/or registered IP addresses, on that SIP Profile, will be blocked. This means that with this feature enabled you need to assign ACLs or register endpoints in order to be able to make calls through the profile. Enabling in SIP Trunking solutions, allows the SBC to lock down to specific SIP Peers.
Authenticate Calls:Â Select Disable,
ACL for Inbound Calls: From the Available list, select and use the Arrow key to move over the Internet_WAN_External_ACL list created earlier.
Â
Press Save
Â
Signaling | SIP Trunks
Two SIP Trunks Profiles are needed. One for the FreePBX-PBXact and another for the SIP Trunk Service Provider. SIP Trunks Profile is where the Peer attributes are configured.
Â
Setup the FreePBX-PBXact in a SIP Trunk Profile
Go to Configuration -> Signaling -> SIP Trunks
Click Add
The following parameters define the location and behavior specific to the FreePBX-PBXact;
Display Name: Give any Name. PBXact
Domain:Â Enter the IP Address or FQDN of the FreePBX-PBXact
User Name:Â Not required.
Authentication User Name:Â Not Required. Â Â Â
Password:Â Not Required.
From User:Â Not Required
From Domain:Â Not Required.
Transparent CallerID:Â Select Enabled.
Transport:Â Select UDP
OPTIONS Ping Frequency:Â Optional: Â Enter 60 for 60 Seconds
OPTIONS Max Ping:Â Optional:Â Enter 5 for 5 tries
OPTIONS Min Ping:Â Optional:Â Â Enter 5 for 5 tries
SIP Profile:Â Select the "PBXact_Internal" SIP Profile created earlier
Â
Â
Press Save
Â
Setup the SIP Trunking Service Provider in a SIP Trunk Profile
Go to Configuration -> Signaling -> SIP Trunks
Click Add
The following parameters define the location and behavior specific to the SIP Trunking Service Provider;
Display Name: Give any Name. ITSP
Domain: Enter the IP Address or FQDN of the SIP Trunking Service Provider.  itsp.sangoma.com
User Name:Â Specific to Service Provider requirements.
Authentication User Name:Â Specific to Service Provider requirements.. Â Â Â
Password:Â Specific to Service Provider requirements..
From User:Â Â Specific to Service Provider requirements.
From Domain:Â Â Specific to Service Provider requirements.
Transparent CallerID:Â Select Enabled.
Transport:Â Select UDP
OPTIONS Ping Frequency:Â Optional: Â Enter 60 for 60 Seconds
OPTIONS Max Ping:Â Optional:Â Enter 5 for 5 tries
OPTIONS Min Ping:Â Optional:Â Â Enter 5 for 5 tries
SIP Profile:Â Select the "ServiceProvider_External" SIP Profile created earlier
Â
Press Save
Â
Routing | Call Routing
The SBC will require two Call Route Dial Plans. One Dial Plan to send calls from the FreePBX-PBXact to the SIP Trunking Service Provider, and another Dial Plan to send calls from the SIP Trunking Service Provider to the FreePBX-PBXact.
Â
Go to Configuration | Routing | Call Routing
Â
Outbound Calling
Click the Add button in the Basic Call Routing section to add a new routing plan.
Â
Give the Dial Plan a name. Outbound_Calling - then click Add.Â
Â
Basic Call Routing Setup
Display Name:Â Give any name:Â Outbound_Calling
Description: Give any description. Outbound_Calling
Trace Call:Â Enable is helpful when problems occur.
Default Response:Â Select 404
Â
Once in the new routing plan click Add to add a new rule.Â
Â
This very next Dial Plan Rule is a redundant Dial Plan, when ACL is in place.  But this shows some extra flexibility in the Dial Plan to check various attributes of a call that are not related to the SIP Protocol. This example is a Check IP Address. If the IP Address does not match, the SBC will respond with a 403 Forbidden. And then not process any remaining rules in the Dial Plan.
Description: Enter a description. Check IP
Rank: Enter 10. Dial Plan rules start at 1 and search up, starting at 10 lets you add more Rules below in the future.
Matching: Select ALL. This will make the Rule look for all of the Conditions
Stop Policy: Select "Stop on Failure". If the condition is not matched, then no more Rules will be processed.
Condition:Â Select "SIP Call Information" - this has a selection of parameters specific to call information
Name: Select "Remote Network IP". This is the Source IP Address.
Expression: Enter the IP Address of the FreePBX-PBXact. 192.168.77.112
Actions to perform if condition matches:Â Action:Â Nothing entered here, we are only looking for the Unmatch. Â Â
Actions to perform if condition doesn’t match: Action: Select "Respond.  Code: Select "403 Forbidden"
Â
Press Save
Â
Once "Check IP" in saved, click Add to insert another Dial Plan Rule.
This next Dial Plan Rule is most important, as it 'bridges' the Outbound Call from the FreePBX-PBXact to the SIP Trunking Service Provider - SIP Trunk Profile that was defined earlier.
Description: Enter a description. Bridge to ServiceProvider
Rank: Enter 20. Using 20 lets you add more Rules in between 10 and 20 in the future.
Matching: Select ALL. This will make the Rule look for all of the Conditions
Stop Policy: Select "Stop on Success". If the condition is matched, then no more Rules will be processed.
Condition:Â Select "Standard Information" - this has a selection of most popular parameters
Name: Select "Destination Address". This is the Dialed Number in the R-URI address.
Expression: Enter (.*). Open Parenthesis Dot Asterisk Close Parenthesis - a Regular Expression to define to match any number dialed
Actions to perform if condition matches: Action: Bridge to Trunk Trunk: Select "ITSP" - this is the SIP Trunk Profile defined earlier for the ITSP destination. Destination: Enter $1 This mean use first variable within the first set of Parenthesis defined in the expression.
Actions to perform if condition doesn’t match: Action: Not Selected. Â
Â
Press Save
Â
Your Call Routing should now look like this for Outbound Calls to the SIP Trunking Service Provider.
Â
Inbound Calling
Click the Add button in the Basic Call Routing section to add a new routing plan.
Â
Give the Dial Plan a name. Inbound_Calling - then click Add.Â
Â
Basic Call Routing Setup
Display Name:Â Give any name:Â Inbound_Calling
Description: Give any description. Inbound_Calling
Trace Call:Â Enable is helpful when problems occur.
Default Response:Â Select 404
Once in the new routing plan click Add to add a new rule.Â
This very next Dial Plan Rule is a redundant Dial Plan, when ACL is in place.  But this shows some extra flexibility in the Dial Plan to check various attributes of a call that are not related to the SIP Protocol. This example is a Check IP Address. If the IP Address does not match, the SBC will respond with a 403 Forbidden. And then not process any remaining rules in the Dial Plan.
Description: Enter a description. Check IP
Rank: Enter 10. Dial Plan rules start at 1 and search up, starting at 10 lets you add more Rules below in the future.
Matching: Select ALL. This will make the Rule look for all of the Conditions
Stop Policy: Select "Stop on Failure". If the condition is not matched, then no more Rules will be processed.
Condition:Â Select "SIP Call Information" - this has a selection of parameters specific to call information
Name: Select "Remote Network IP". This is the Source IP Address.
Expression: Enter the IP Address of the SIP Trunking Service Provider. 4.8.16.32
Actions to perform if condition matches:Â Action:Â Nothing entered here, we are only looking for the Unmatch. Â Â
Actions to perform if condition doesn’t match: Action: Select "Respond.  Code: Select "403 Forbidden"
Â
Press Save
Â
Once "Check IP" in saved, click Add to insert another Dial Plan Rule.
This next Dial Plan Rule is most important, as it 'bridges' the Inbound Call from the SIP Trunking Service Provider to the FreePBX-PBXact - SIP Trunk Profile that was defined earlier.
Description: Enter a description. Bridge to PBXact
Rank: Enter 20. Using 20 lets you add more Rules in between 10 and 20 in the future.
Matching: Select ALL. This will make the Rule look for all of the Conditions
Stop Policy: Select "Stop on Success". If the condition is matched, then no more Rules will be processed.
Condition:Â Select "Standard Information" - this has a selection of most popular parameters
Name: Select "Destination Address". This is the Dialed Number in the R-URI address.
Expression: Enter (.*). Open Parenthesis Dot Asterisk Close Parenthesis - a Regular Expression to define to match any number dialed
Actions to perform if condition matches: Action: Bridge to Trunk Trunk: Select "PBXact" - this is the SIP Trunk Profile defined earlier for the PBXact destination. Destination:  Enter $1 This mean use first variable within the first set of Parenthesis defined in the expression.
Actions to perform if condition doesn’t match: Action: Not Selected. Â
Â
Press Save
Â
Your Call Routing should now look like this for Inbound Calls to the FreePBX-PBXact.
Signaling | SIP Profile
Two SIP Profiles were created earlier. We need to go back and assign the appropriate Call Routing Dial Plan to the correct SIP Profile. The Inbound_Calling Dial Plan is assigned to the ServiceProivder_External SIP Profile, as calls from the SIP Trunking Service Provider will will be going Inbound_Calls to bridge to the FreePBX-PBXact. And the other direction, the FreePBX-PBXact will call the PBXact_Internal SIP Profile which will go to the Outbound_Calling Dial Plan, which will bridge the call to the SIP Trunking Service Provider.
Â
PBXact_Internal SIP Profile
Now that both routing plans are made go to Configuration | Signaling | SIP Profiles and modify the PBXact_Internal SIP profile.Â
Under Session Routing change the Routing Plan to Outbound_Calling. Then click Save to continue.Â
Â
ServiceProvider_External SIP Profile
Modify the ServiceProvider_External SIP profile.Â
Under Session Routing change the Routing Plan to Inbound_Calling. Then click Save to continue.
Â
Apply Configuration
You are Done. Time to save your efforts.
Â
Or Here
Â
Finalizing the Installation
Starting the SBC application and other useful features on the SBC.
Â
Go to Overview -> Dashboard -> Control Panel and Start the following services.
Vega Session Controller
IP Firewall
Intrusion Detection
Intrusion Prevention
Â
Enable all IDS rules by going to Configuration -> Security -> Intrusion Detection and ensuring all are checked. Once done click Update to apply the changes.
Â
Next go to System -> Server -> Web and change the Network Interface from All interfaces to only the internal network interface.
Â
In this example eth1 is the internal network interface. Once done click Save.
Â
Next go to System -> Server -> Web and change the Network Interface from All interfaces to only the internal network interface. Now both the web server and SSH will only be available on your internal network.
Â
Since the configuration is now completed get a backup. Go to System -> Management -> Backup-Restore and click Backup.
Â
Name the file accordingly and click backup to download a copy. Ensure you keep this safe somewhere and always take a new backup after each change made to the SBC.Â
Â