Note: This article applies only to 3CX Phone System version 10. 3CX Phone System version 11 supports receiving of faxes from VoIP Providers out of the box for VoIP Providers that support receiving t38 faxes.

Incoming faxes from VoIP Providers can be quite tricky when compared to receiving of faxes from PSTN, ISDN VoIP Gateways. Therefore some tweaks need to be made to the 3CX Fax Service Configuration Files.

Notes:
  • Some VoIP Providers do not need this setting while others will not work without it.  You should first try getting fax working with the default configuration files as shipped by 3CX. If you receive a Fax with no pages, then you will need to modify the 3CX configuration files as described below.
  • If you receive a 488 NOT ACCEPTABLE HERE message code, modifying the configuration files will not help.  You will need to contact your provider to confirm that T38 is supported.
  • VoIP Provider testing of the 3CX Fax Server was performed in December 2011. The NAT changes described in this document apply for the following VoIP Providers: Broadvox, Inphonex, and Actiopl 

Pre-requisites

  • To set up FOIP (Fax over IP) with a VoIP Provider, a static external (public) IP address is needed.
  • You might also consider switching off Stun resolution. This is not compulsory.
  • In addition to the other ports necessary for VoIP communications for SIP and RTP, port range 10000 - 10009 TCP and UDP needs to be opened and forwarded from your Firewall / Router to the 3CX Server Local IP Address. This will be the media port used by the 3CX Fax Service.

Step 1: Modifying the 3CX Phone System Custom Parameters - FAXDIRECTSDP

This section will explain how to instruct the 3CX Media Server to allow T38 traffic to the 3CX Fax Service and not modify the SDP content. This is important for Fax to work.
  1. Log in the 3CX Management Console and click on the Fax Machines node
  2. Add a fax extension
  3. Create a new inbound rule which will be dedicated to incoming faxes, and configure it to forward the calls to the new fax extension or the email address of an extension.

Step 2: Configuring the 3CX Fax Server global templates

This section will explain the files that need modification. These are the following: faxglb.cfg and in_session.cfg.

  1. From 3CX Management Console, go to "Settings / Provisioning Templates"
  2. Select Template Type "3CX Fax Server".
  3. Select Template Name "faxglb.cfg" and click edit
  4. In the [SIP] section do the following:
    • comment the "NAT support = FALSE" option by adding a ";" at the beginning of the line
    • remove the ";" in front of "NAT support = TRUE" to enable NAT support
    • remove the ";" in front of "(NAT) local SIP IP port = 5100" to enable this setting
  5. The extract below is an indication of how the "faxglb.cfg"should look like
    Changes required in faxglb configuration file
  6. Click on the "Apply" button. A dialog box will appear asking you to save this file. Keep the file name the same and click "OK".
    You will be asked to override this file. Click Yes. At this point faxglb.cfg is complete.
  7. Go to "Settings / Provisioning Templates" and this time select the template Type "3CX Fax Server" / Template name "in_session.cfg" and click edit.
  8. Many providers will reject fax calls with "488 Media Unavailable" if both UDP and TCP are specified as options for T.38 Fax communications. To help improve interoperability we can restrict T.38 to UDP only.
    To fix this do the following in the [General] section:

    • comment out the option "kind of T.38 transport = UDP_TCP" line by inserting a ";" in front and
    • remove the ";" in front of "kind of T.38 transport = UDP" to enable this setting.
  9. We now need to configure NAT traversal functionality for the Fax Server. In the [T.38 media address] section do the following:
    • remove the ";" in front of the "local media ip address" line and replace x.x.x.x with the local IP Address (In this case 10.172.0.15)
    • remove the ";" in front of the "local media ip port = 10000" line
    • remove the ";" in front of the "(nat) local media ip address" line and replace y.y.y.y with the Public IP address (In this case 78.158.130.232)
    • remove the ";" in front of the "(nat) local media ip port = 10000" line
  10. Click on the "Apply" button. A dialog box will appear asking you to save this file. Keep the file name the same and click "OK".
    You will be asked to override this file. Click YES.

Step 3: Router/Firewall Configuration

Last but not least you will need to configure your firewall or router to route connections on the port range 10000 - 10009 TCP and UDP to 3CX Phone System. This first port is configured in step 9 above, and 3CX Phone System will make use of additional ports to receive multiple faxes simultaneously.