3CX Phone System
From VoIP.ms Wiki
3CX offers a complete Unified Communications solution out of the box. As an open standards software PBX, installation and management of your phone system have never been easier.
Important update in relation to 3CX as of 2021/2022
The FQDN used to activate 3CX products will be changed to activate.3cx.com. The current activation FQDN will no longer work, no later than February 1, 2022.
What needs to be done?
Check your network access rules and make sure you allow connectivity to activate.3cx.com. Due to the nature of our cluster services, we cannot provide you with a fixed IP list.
Make sure to update your 3CX PBX to V18 update 2 by February 1, 2022. Alternatively, make sure that version 16 update 8a is installed when available, however keep in mind that it This is a short-lived fix - until November 2022.
Update to V18 to ensure long term support, compatibility and security. If you need assistance, contact a local 3CX Partner or post your questions in our 3CX Forum.
Important update in relation to 3CX as of 2024
Be advised that the 3CX v20 SIP-TLS feature cannot currently be used with our current servers (POPs) because they fail to support any of the newer cipher suites that are requested by the 3CX system. If you are using our new architecture (currently in beta), you can make use of SIP-TLS and the sub-account name must be added as the outgoing Caller ID for the outbound route.
To be part of our new architecture beta, you can easily become a beta user by logging into your customer portal and clicking Become a Beta Tester.
System Preparation
Before configuring the SIP trunk (in your 3CX system) it is required to go through the following checklist and make changes where necessary:
- NAT (when used) created to 3CX
(https://www.3cx.com/ports-used-3cx-phone-system-v14-v15/)
- Firewall Checker passed
(https://www.3cx.com/docs/troubleshooting-firewall-checker/)
- Firewall SIP ALG checked and if present disabled
(https://www.3cx.com/docs/manual/firewall-router-configuration/)
3CX Version
Some providers gained support and compatibility with 3CX on a specific product version. It is advisable to always run the latest version of 3CX to ensure ongoing compatibility.
Minimum 3CX Version: 3CX v15.5 SP5
Adjusting the device's type
The first thing is adjusting the Device type.
- If you are using your Main account for your SIP trunk:
- 1) Go to Main Menu and click Account settings
- 2) Under the Inbound Settings tab,
- Protocol: Select SIP
- Device Type: Select IP PBX Server, then apply the change.
- Or if you are using a "Sub-Account" for your SIP trunk:
- The same setting can be found under it, at the sub-account Edit or creation page.
- 1) Go to Sub-Account then Manage sub-account
- 2) If you sub-account is already created, click the Yellow edit button.
- Device Type: Select IP PBX Server, then Apply your change.
Enabling rInstance on your Main Account
- If you are using your Main account for your SIP trunk:
- Next, head to Advanced tab and enable the option rInstance Parameter.
- That parameter is used for the Call Source Identification to match an incoming call with a SIP trunk on the registration-based trunk of 3CX.
- Then you need to make sure that the DIDs ordered are linked to your Main or Sub-Account.
- To do so navigate to DID Numbers > Manage DID(s).
- Click on the Edit DID icon and make sure that the routing points to SIP/IAX and your main account.
Enabling rInstance on sub accounts
- For sub accounts,rInstance Parameter can be found while creating or modifying your sub account under
Collecting 3CX Configuration Settings
In order to be able to register and operate the trunk in 3CX you will to gather some information that will be needed in the configuration of the trunk in 3CX.
- Username: The username for registering the trunk can be found under Main Menu → Account Information
- Password: The trunk password can be found in the email you received from VoIP.ms during the registration process. You can also change the password by navigating to Main Menu → Account Settings → Security.
- DID numbers: The DID numbers can be seen by navigating to DID Numbers → Manage DID(s)
- Registrar: Go to Main Menu → Account Settings → Default DID Routing. From here make note of the selected server. In this example the server is sanjose2.voip.ms.
Configuring the Trunk with 3CX
The general instructions outlining how to add a new SIP Trunk to 3CX can be found here.
Adding the Trunk Go to “SIP Trunks” and select “Add SIP Trunk”
Select Country: CA Select Provider in your Country: VoIP.ms Main trunk number: Use the DID collected from the VoIP.ms portal. You must enter the number in the national number format (e.g. 6471234567) Press OK
Under the “General” tab in the “Registrar/Server/Gateway Hostname or IP” enter the registrar as collected in the previous step.
In the “Authentication” section enter your Authentication ID and Password collected in the previous step.
Now, In the "Outbound Parameters" tab, search for "From : User Part", and select "AuthID authentication", to ensure the PBX will send the proper header when initiate the outbound calls' invite.
Once you have filled in these fields, and set the "Outbound Parameters", press OK at the TOP of the page. At this point if you refresh the page you should see your VoIP.ms Trunk appear as Registered.
Adding Additional DIDs
To associate all other DIDs/Numbers you have in your VoIP.ms account with 3CX, you need to go to the Management Console → SIP Trunks, double-click on your VoIP.ms Trunk and go to the “DIDs” tab.
Here you should already see 1 entry that is the Main Trunk number you have set. Add all other DIDs/Numbers you have to the list in the 10-digit number format (e.g. 6471234567) and press OK once you have finished.
Creating Inbound Rules
Now that you have associated all your DIDs/Numbers with your SIP Trunk in 3CX, you can create Inbound Rules to set where calls will be routed when those numbers are called. Instructions on how to create Inbound Rules can be found here.
Outbound Caller ID
VoIP.ms Trunks support Clip No Screening which means you can present any number as outbound caller ID, regardless if it’s associated with your account or not. For this to work, in any field within 3CX where the Outbound Caller ID can be set, the numbers must be input in either a 10-digit (e.g. 6471234567), 11-digit format (e.g. 16471234567) or E164 format (e.g. +16471234567).
Outbound Rules
When configuring your Outbound Rules make sure that all numbers are dialed either in the 10-digit (e.g. 6471234567), 11-digit format (e.g. 16471234567) or E164 format (e.g. +116471234567).
More information about how to create Outbound Rules and how they work can be found here.
Multiple VoIP.MS SIP Trunks on the same 3CX
Voice Trunk (Inbound)
- VoIP.MS SIP Trunks can only work reliably on 3CX if there is only one SIP Trunk on each installation.
- If necessary, multiple VoIP.MS SIP Trunks can exist on the same 3CX ONLY if the SIP Trunks do not share any DID numbers.
- In this case, in each one of the VoIP.MS SIP Trunk settings, go to your 3CX Management Console > SIP Trunks, in the "Inbound Parameters" tab, you MUST have the [X] Call Source Identification checked.
- User Agent: Text String
- Custom Field
- the default voip.ms value. (lower-case)
- Also you MUST enable option "Use both "Call Source Identification" rules and "Caller Number/Name->CalledNum" field mappings".
- However, 'If you do not have multiple trunks, it is recommended that this option remains disabled'.
Fax Trunk (Inbound)
- If you have multiple trunk with VoIP.ms on the same 3CX instance, your "Inbound Parameters" for your FAX Trunk needs to be edited to reflex the proper User-Agent of our Fax Server. Without this correction, inbound calls to your DID (Voice/Fax) may have conflict.
- Note that your Trunk needs to be registered on our FAX POP Server "fax1.voip.ms" or "fax2.voip.ms" or "fax3.voip.ms".
- Go to, 3CX Management Console > SIP Trunks, in the "Inbound Parameters" tab, have the [X] Call Source Identification checked.
- User Agent: Text String
- Custom Field
- use VoIPMS/SERAST instead of the default voip.ms value.
- You MUST enable option "Use both "Call Source Identification" rules and "Caller Number/Name->CalledNum" field mappings".
Outbound Caller ID Name for calls to Canada
If you would like to set an Outbound Caller ID Name with your number when you call a Canadian number, since the major canadian provider's will not using the CNAM/LIBD database, you will need to pass your Outbound caller ID Name direcly by your Trunk.
To do so, Edit your VoIP.ms Trunk in your 3CX. On your left navigation menu, click on "Trunk", then select your VoIP.ms Trunk and click on the "Outbound parameters" tab.
You will need to edit these fields.
- From : Display Name : Select [Custom Field] : Another field at the right will appears, you will need to enter your Caller ID Name here. * SEE THE NOTE BLOW
- From : User Part : Be sure that this option is selected to [AuthID authentication]
- Remote Party ID - Calling Party : Display Name : Select [Custom Field] : Another field at the right will appears, you will need to enter your Caller ID Name here.* SEE THE NOTE BLOW
* IMPORTANT: - We suggest entering your outbound Caller ID Name must be in CAPITAL LETTERS. This will appears more clearly/visible on some devices. - You must NOT use any special characters, they will not be displayed. - Use Max 15 characters, spaces included. Regular Canadian providers will not display more than 15 characters. We suggest shrinking or adapt your caller ID. - Spaces are allowed in a caller id name.
Whitelisting VoIP.ms IPs in 3CX
To whitelist VoIP.ms IPs in 3CX, follow these steps:
- Go to “Dashboard” > “IP Blacklist” in the 3CX Management Console.
- Click “Add” to add an entry.
- From the dropdown menu select “Add single IP Address” and enter the IP address that you want to allow, e.g. 123.123.123.123 (you can also select to add a range of IP addresses using a subnet mask).
- Set Action to “Allow”.
- Add a description for the IP address, e.g. “Remote office”.
- Click on “OK” to create an Allow entry in the IP Blacklist for the whitelisted IP address. All traffic originating from this IP address will be unchecked and the anti-hacking algorithms will not come into effect.
For more information on the IPs related to our servers, click here
For more information on the FreePBX setting, click here
Configuring VoIP.ms SMS/MMS service with your 3CX
Prerequisites
- 1. Ensure that you have the latest version of your 3CX PBX, including the updated version of the VoIP.ms trunk template.
- 2. Have a DID that supports SMS/MMS with the service enabled. (Navigate to Main Menu > DID Number > Edit DID)
- 3. Generate a copy of your API Key, known as the "Bearer Token." See this section
Service Limitations
🏗️ Temporary Limitation
- ➜ Temporarily the current integration supports a maximum of 160 characters per sent message. We are currently working on a way to permit more than 160 characters and will be available soon.
- ➜ Messages longer than 160 characters will result in an error, noticeable by a ❌ where your message. The error can be retrieved in your 3CX Admin console under Event Log.
⚠️ LIMITATIONS
- ➜ VoIP.ms supports Application-to-Person (A2P) delivery for business text messaging. However, requirements and fees vary due to industry regulations. The default limit is 100 SMS per day, which can be raised upon request. Contact us at [email protected] to start your verification process.
- ➜ The limit of sending SMS/MMS using the Bearer token is limited to the same limit as our SOAP and REST/JSON API which is 100 per day. For any modification to the limit, please contact our support team through the live chat or open a ticket via the customer portal.
- ➜ The SMS/MMS service is only available for US and Canadian DID and Toll-Free Numbers marked with the distinctive SMS/MMS Icon.
- ➜ The SMS/MMS service can only be used to send SMS/MMS Messages to Canadian and US 10 digit numbers at this time.
- ➜ We cannot guarantee that accents or special characters including non-Latin letters will be properly delivered.
- ➜ Public URL shorteners such as bit.ly, tinyurl.com etc, are widely restricted by mobile providers as a response from the industry to combat SPAM campaigns and protect the consumer. Including this type of links into your messages may result in a blocked or undelivered message.
- ➜ VoIP.ms reserves the right, at its sole discretion, to limit or disable the SMS/MMS service from any account that may present marketing patterns/automation patterns/bulk sending or receiving.
💬 NOTE
- ➜ If you are using an existing trunk created using an old VoIP.ms 3CX template, the "SMS" tab may not be available. In such cases, you must recreate a new trunk using VoIP.ms template.
- ➜ When you send an SMS, you must enter the phone number into a E.164 format. Eg: +15145551234
- When there is an error while sending a message, you will notice a ❌ where your message. You can retrieve the error details in your 3CX Admin console under Event Log.
Generate a Bearer Token
If you do not already have a "Bearer Token" generated that you have copied somewhere, click on "Generate New Token" to obtain one. You will need to generate a new one.
- 1) Go to your VoIP.ms client portal "Main Menu" > "SOAP and REST/JSON API"
- 2) Click on "Enable" the API if its not already made.
- 3) Where Bearer Token click on Generate New Token
🔐 ATTENTION: Store your generated token securely! ⚠️
- When you generate a Bearer Token, be sure to copy and store it in a secure place, as it won't be visible again after generation.
- It will only be available to be copied once it being generated. If you lost your Bearer Token, you need to regenerate a new one.
When creating a new trunk
To create a new 3CX Trunk
- 1) Go to your 3CX admin console, on the left menu, click on "Trunk".
- 2) Select the country 🇨🇦"CA" and choose "VoIP.ms".
- 3) Enter your main trunk DID number you wish to use for this trunk.
- 4) Finish the configuration of your trunk.
Add your Bearer Token to your 3CX trunk
Once the trunk is created and configured
- 1) Go to the "SMS" tab.
- 2) In the "Bearer Token" field, paste your VoIP.ms generated Bearer Token.
- 3) Then, copy the Webhook URL, you can click on the copy 📋 icon .
Set the 3CX trunk Webhook URL to your VoIP.ms DID
- 1) Go to your VoIP.ms client portal and navigate to "DID Number" tab > "Manage DID" >
- 2) click the yellow Edit button of your DID you wish to use for SMS.
- 3) Scroll down to the SMS section until you see the Message Service (SMS/MMS) section.
- 4) Enable the SMS/MMS service.
- 5) In the "SMS/MMS Webhook URL (3CX)" field, paste the Webhook URL from the new 3CX trunk.
- 6) Select if you wish to send and receive SMS/MMS messages with the format NANPA or E164.
- A) E164: To send a SMS or MMS with this format, you will need to include + sign and the country code for every messages
- B) NANPA: To send a SMS or MMS with this format, you only need to enter the 10-digit number without the country code.
Done! Simply associate the DID to your Queue or your extension.