Connect 3CX v20 to our Power-T.38 SIP trunks for reliable direct incoming fax reception (fax-to-email) and T.38 pass-through for T.38-capable gateways and ATAs.
The 3CX Phone System is a software-based private branch exchange phone system. It is a complete communications solution that’s easy to sell, deploy, and support, which allows for seamless bundling with existing IT services. 3CX supports faxing over IP, including features such as:
- T.38 pass-through support for connected ATAs, gateways, and fax servers (or any other device that supports T.38 FoIP).
- A built-in fax server module that converts received faxes into PDFs which are then emailed.
Related Links:
Known Limitations
3CX includes a fax server that allows you to receive faxes, convert them to PDF format and email them to the extension owner (fax to email). It’s important to know that 3CX’s T.38 stack does not include support for the fax protocol’s Error Correction Mode (ECM), which means that fax transmissions will not be able to use ECM and thus may contain imperfections and distortions in the received page images, especially if the audio quality is not ideal. We believe ECM should be available on every T.38 transmission, and recommend using the built-in fax server with caution.
The fax server is limited to incoming faxes only. There is no support for sending outgoing faxes directly from 3CX.
This guide was written using 3CX Version 20.0 Update 8 (Build 680 Alpha).
Prerequisites
This article assumes:
- You have acquired an analog gateway that is compatible with both 3CX and T38Fax. As of this writing, 3CX only advertises support for Grandstream HT8xxV1 series ATAs and GXW42xxV1 Analog Gateways. T38Fax supports all of these.
- You have followed the 3CX Installation Guide, or are starting from a pre-installed system.
- You have signed up for a free trial of our Power-T.38 SIP trunking service.
- You have access to our customer self-care portal with an assigned role that allows you to add and delete SIP trunks.
-
You have used the T38Fax self-care portal to create a SIP trunk that you now wish to connect to 3CX. During this process you will have to select a trunk type. 3CX can function with either trunk type. Here are some general guidelines on how to select the right trunk for you:
- If you don’t have a static public IP address, provision a registration auth trunk.
- If you do have a static public IP address, you can base this choice on personal preference or on what is used by your other provider(s).
Network Configuration
IP Addressing
If your 3CX PBX is an on-premise system, you will need to consider your IP address configuration as follows.
Public IP
3CX recommends that a 3CX PBX maintain a static public IP address, as does T38Fax. If using a static IP address is not an option, you can still use 3CX with T38Fax with some limitations. Provision a registration auth trunk with T38Fax, and set your 3CX PBX’s External IP configuration to “dynamic public IP (IP changes).” The PBX will notice if its public IP address changes after some time. Until the PBX notices this IP change and reports it to T38Fax, the PBX will not be fully reachable.
Private IP
If your 3CX PBX is on premise and behind NAT (has a private IP address on its network interface), either:
- Ensure the private IP address is statically assigned and outside your DHCP range, or…
- Configure a DHCP reservation for the 3CX server.
NAT Considerations
3CX requires certain ports to be opened, and if necessary, forwarded on your firewall or router. The list of these ports can be found in the section, “Ports required for your SIP Trunk / VoIP Provider,” of the 3CX Firewall and Router Configuration Guide.
In addition to your 3CX port rules, T38Fax uses its own set of IP and port ranges for sending and receiving VoIP traffic. Depending on how strict you want your firewall to be, you may need to specifically define these IPs/ports in your firewall to allow bidirectional traffic between the 3CX and T38Fax port ranges.
On-Premise Systems
SIP ALG
For on-premise systems, disabling your firewall or router’s SIP ALG (Application Layer Gateway) is highly recommended by both 3CX and T38Fax.
Hairpinning & DNS
When you set up your 3CX PBX, you will be prompted to create a personalized domain (FQDN). The domain record(s) assume you will be hosting your PBX offsite. If using the 3CX system on premise, it is recommended to read over the 3CX article on how to set up Split DNS.
If this action is skipped, the 3CX PBX may prevent your devices from accessing various HTTP-based 3CX services, such as the 3CX management console or the 3CX provisioning host. In this case, you may not be able to reach the 3CX PBX’s web interface at all, or will receive a 403 Forbidden error with the message: “Rejected request from RFC1918 IP to public server address.” Setting up split DNS on your local network will resolve these issues.
Validation
To check your work, navigate in the left sidebars to Admin → Dashboard. On the Dashboard locate the “Troubleshooting” section and click on the word “Firewall.”
This will open a new page. Click “Start” to run the 3CX Firewall Checker.
Deciding Which Forms of T.38 Are Needed
In general, an IP-PBX can fulfill two different roles in a T.38 fax transmission:
-
Pass-through: In this scenario, a T.38-capable device (endpoint) such as an analog gateway, ATA, or fax server is connected to a Fax Extension on the IP-PBX and sends and receives faxes by routing those transmissions through the Power-T.38 SIP trunk. The IP-PBX is only a media proxy in this situation, and passes T.38 packets back and forth between T38Fax and the T.38 endpoint behind the IP-PBX without modifying them.
3CX PBXs support both incoming and outgoing T.38 faxes in pass-through mode. T38Fax officially supports using 3CX PBX’s pass-through functionality with our SIP trunking service.
-
Endpoint: In this scenario, the IP-PBX is itself a T.38 endpoint, capable of sending or receiving faxes directly by speaking T.38 to T38Fax. This is often referred to as a “built-in” fax server and can be found in most, but not all, IP-PBX products on the market today.
3CX PBXs come with a built-in T.38-capable fax server endpoint that can receive inbound faxes and deliver them to end users via email. The 3CX fax server endpoint is not capable of sending outbound faxes. T38Fax does not officially recommend using this endpoint due to its lack of ECM.
The choice of which of these to configure will depend on your use case and deployment topology, but many customers will need both configured. We recommend that early testing efforts focus on pass-through, where 3CX is only a spectator, by connecting a T.38-capable endpoint to a 3CX extension and then, once that’s working, move on to experimenting with direct fax reception in endpoint mode (if fax-to-email is needed).
Configuring T.38 Pass-Through (PBX is a Spectator)
Step 1 - Add a Power-T.38 SIP Trunk
- From the 3CX web interface, click on Admin.
- Click on Voice & Chat.
- Click on Add Trunk.
-
At the bottom of the provider list on the next page, select a registration-based or IP-based generic SIP trunk, depending on what you previously configured in the T38Fax Self-Care Portal.
- On the General tab, configure the following:
- Name: T38Fax (or something meaningful to you.)
- Default route: End Call (This will be overridden when you create a Fax Extension in the next step)
-
Create an outbound rule for this SIP Trunk: ❌ (NOT checked)
- Note: This option is checked by default and must be manually unchecked
- Main Trunk Number: [Your T38Fax Trunk ID] (This is equivalent to your SIP_USERNAME ⓘ)
- If you selected Registration Authentication, configure the following:
- Registrar/Server: sip.t38fax.com
- Registrar/Server Port: 5080
- Registrar/Server Auto discovery: ❌ (NOT checked)
- Outbound Proxy: sip.t38fax.com
- Outbound Proxy Auto discovery: ❌ (NOT checked)
- Outbound Proxy Port: 5080
- On the Options tab, configure the following:
- Number of sim calls per trunk: 24 (or set this to match your T38Fax SIP trunk concurrent call limit value minus one).
- Transport Protocol: UDP
- Re-Register Timeout: 300
-
Codec Priority
- PCMU (remove all other entries)
- PCMU (remove all other entries)
- Click Save.
Step 2 - Create a Fax Extension
- From the 3CX web interface, click Admin.
- Click on Advanced.
- Click on Fax.
- Click on the Add button and select Add Fax Extension.
- Enter a Fax Extension Number or use the default extension of 8800.
- Select an Assigned DID Number (i.e., your Main Trunk Number, as specified earlier).
-
Click OK.
Step 3 - Create an Outbound Rule
If you’re using 3CX faxing only and do not plan on having voice users, you can create a single Outbound Rule that routes all calls from your system through your Power-T.38 trunk. This scenario is captured below in Case 1. If you do plan on having voice users, you can create an Outbound Rule that only handles calls from Fax Extensions and a separate Outbound Rule for handling voice traffic. This scenario is captured below in Case 2.
Case 1: PBX is used only for fax
- From the 3CX web interface, click Admin.
- Click on Outbound Rules.
- Click on Add.
-
On the Add Outbound Rule page, configure the following:
- Rule Name: Outbound Rule for T38Fax (or something meaningful to you)
- Calls to numbers starting with prefix: 1
- Calls to numbers with a length of: 11
- Route 1: T38Fax (or the name used Step 1 when creating the SIP trunk)
- Click Save.
Case 2: PBX must support fax and voice (most common)
- From the 3CX web interface, click Admin.
- Click on Outbound Rules.
- Click on Add.
- On the Add Outbound Rule page, configure the following:
- Rule Name: Outbound Rule for T38Fax (or something meaningful to you)
- Calls from extension(s): 8800 (or the Fax Extension created in Step 2)
- Route 1: T38Fax (or the name used Step 1 when creating the SIP trunk)
- Click Save.
- If you have a voice carrier that you’d like to route voice calls to, create another Outbound Rule to handle calls from all other extensions. Using Case 1 above as an example, you could simply specify your voice carrier for Route 1 to handle calls to all 11-digit numbers starting with a 1.
Step 4 - Add an ATA
- From the 3CX web interface, click Admin.
- Click on Voice & Chat.
- Click on Add DECT / FXS.
- Select your device model from the DECT / FXS Model dropdown.
- Enter the MAC address of your device in the MAC Address field.
-
Click Next.
-
For Local LAN / VPN, select the SIP domain / FQDN you used when creating your 3CX instance.
Note: There will likely be only one interface in this dropdown that is selected by default. - Click Next.
- Select FAX in T.38.
- Click Next.
- Select the Fax Extension you created in Step 2.
- Click Add FXS.
- Click the See the configuration guide… link and save this tab for later reference (#2 on the “FXS added” panel).
- Click the link at the end of the Download and save the configuration file… text (#3 on the “FXS added” panel).
- After downloading the linked configuration file to a known location, click Close.
-
Upload this configuration file to your ATA. In this guide, we’ll be using the Grandstream HT802V1. The following steps will vary slightly depending on the model of your ATA, but should follow the same general premise.
-
Log into the web interface, hover over the Advanced Settings tab, and select Upgrade and Provisioning.
- Locate the Upload Configuration section on the page and click on Upload from local directory.
- Select the file that you previously downloaded From the 3CX web interface, click Upload Configuration.
-
The ATA will apply the new configuration and reboot after several seconds.
-
Log into the web interface, hover over the Advanced Settings tab, and select Upgrade and Provisioning.
-
Back on the 3CX Voice & Chat screen, select the three dots next to your newly added ATA and click Edit FXS.
-
Locate the Web Console Password section and click on the clipboard icon next to the masked password to copy it.
-
Log back into your ATA with this new password to apply the fax-specific settings shown below. Again, we’re using a Grandstream HT802V1 in this example. If you’re using a different device, see our Gateways & ATAs page for guides that show where to find these settings on your particular device.
- Click on FXS Port 1 and set NAT Traversal to “Keep-Alive.”
-
Locate the following options and confirm that they are set:
- Disable Call-Waiting: Yes
- Disable Call-Waiting Caller ID: Yes
- Disable Call-Waiting Tone: Yes
- Click on FXS Port 1 and set NAT Traversal to “Keep-Alive.”
- Locate the Preferred Vocoder section and select “PCMU” for all 8 choices.
-
Locate and set the following options:
- Fax Mode: T.38
- Re-INVITE After Fax Tone Detected: Enabled
- Jitter Buffer Type: Fixed
- Jitter Buffer Length: High
-
Locate and set the following options:
- Disable Line Echo Canceller (LEC): Yes
- Disable Network Echo Suppressor: Yes
- At the bottom of the page, click Update. Once the page refreshes, scroll down to the bottom of the page again and click Apply.
Configuring T.38 Endpoint (PBX is a Fax Server)
Step 1 - Configure Global Fax Server Settings
You can use 3CX’s default fax server extension (e.g., 8888) to have faxes that are sent to a specific DID number automatically emailed to a default/administrator address. To do this, follow the steps below.
- From the 3CX web interface, click Admin.
- Click on Advanced.
- Click on Fax.
- Click on Fax Server.
Enter an email address in the Default Email Address field.
- Select an Assigned DID Number (i.e., your Main Trunk Number, as specified earlier).
-
Uncheck the Enable G.711 to T.38 fallback option.
- Click Save.
Step 2 - Configure a Fax Forward
If you have multiple DID numbers and multiple users who you’d like to receive faxes, you can create a Fax Forward for each pair. Faxes received on the specified DID number will be automatically emailed to the email address of the provided user. The steps below demonstrate how to do this.
- From the 3CX web interface, click Admin.
- Click on Advanced.
- Click on Fax.
- Click the Add button, then Add Fax Forward.
- On the Create Fax Forward page, configure the following:
- Name: Fax Forward to [User Name] (or something meaningful to you)
- DID Number: [Any Available DID Number] (i.e., your Main Trunk Number, as specified earlier)
- Send faxes to this user’s email: [Any User with Email Address]
Test, Test, and Test Again
Early and extensive testing will ensure a successful deployment and high rates of user adoption and satisfaction over the long term. We encourage you, therefore, to establish a baseline of successful faxing by testing everything you may have configured above, fixing any errors you find, and escalating any problems you can’t solve yourself to our support team.
Not quite sure how to test? Don’t worry, we’ve got your back. We outline our recommended process in this testing support article.
Support and Additional Resources
Customers looking for technical support can open a case via our customer self-care portal, or by using the “Submit a request” button at the bottom of most knowledge base articles.
We talk a bit about our fax-optimized SIP trunks and explain why T38Fax is the best choice for companies who rely on fax transmissions to conduct business in these articles:
- Fax-Optimized SIP Trunks From T38Fax
- Why Power-T.38 from T38Fax.com?
- ECM - T.38’s Dirty Little Secret (And Why It Matters)
Related to
Comments
0 comments
Please sign in to leave a comment.