/3CXBasicNotes

Notes From Doing The 3CX Basic Certification


Configuring a Desktop Phone:

3CX supported IP phones Fanvil Grandstream Htek snom Yealink

Find full requirements here: https://www.3cx.com/support/phone-firmwares/

Provisioning Types: PnP (Plug and Play) Can be used for 3CX in the cloud - phones behind an SBC 3CX on-premise - Phones on local LAN Fast and simple Admin driven Based on multicast messages Plug the phone in, it announces that it was been plugged in, PBX receives the announcement, admin approves and assigns desktop phone The multicast ends at the router/border devices

BLF (Busy Lamp Field) IP Phones monitors and extensions call state Idle Ringing In Call Used for Pickups Transfers Speed Dial More Options Lines Keys Profile state cnahe queue state change Speed dials Custom speed dials Shared parking

RPS (Direct SIP/Stun) phones that are not behind a 3CX SBC must be configured with a 3CX RPS server In the 3CX management console, when you're adding a new phone, need to select "Direct SIP (STUN - remote)" in the options, and the provisioning link

Legacy phones: Cisco, Polycom, and Aastra Need to wipe the phone's old firmware and install new 3CX firmware on it In the management console, add a new phone, select the phone model and provisioning type Legacy phones are harder than other phones

Troubleshooting Use this link: https://www.3cx.com/docs/plug-and-play-ip-phone/

3CX Web Client Can control IP phone with mouse Dial Pickup Transfer Conferencing Recording Start/Stop

There are also web browser extensions available


Configuring the Firewall:

Need to setup the firewall because the voice call needs to pass through it to reach your PBX Voice calls use several ports because they use SIP and RTP

Some configurable firewalls pfsense Watchgurad Sonicwall

3CX WILL NOT CONFIGURE YOUR FIREWALL

Firewall ports to be opened Ports for SIP Trunk / VOIP Provider Port 5060 (Inbound, UDP) for SIP communications Port(Inbound, UDP) for RTP

Ports for remote 3CX apps
	Port 5090 (inbound, UDP and TCP) for the 3CX tunnel
	Port 443 or 5001 (Inbound, TCP) HTTPS for Presence and Provisioning
	Port 443 (Outbound, TCP) for Google Android PUSH
	Port 2195, 2196 (outbound, TCP) for Apple iOS PUSH

Ports for Remote IP Phones / Bridges via Direct SIP
	Port 5060 (Inbound, UDP and TCP)
	Port 5061 (Inbound, TCP) (If using secure SIP)
	Port(Inbound, UDP) for RTP
	Port 443 for 5001 (Inbound, TCP) HTTPs for provisioning

Ports for 3CX WebMeeting, SMTP ans Activations
	Port 443 (Outbound, TCP) to webmeeting.3cx.net
	Port 443 or 5001 (Inbound, TCP) to notify users of incoming web meetings
	The open port you have selected for HTTPS (Inbound, TCP) default is 443 or 5001
	Port 2528 (Outbound, TCP) to be able to send emails using 3CX SMTP

Ports for Remote Configuration Wizard
	Port 5014 (Inbound, TCP) HTTP

Also, you need to disable SIP ALG (Application Layer Gateway)

Full ports used my 3CX: https://www.3cx.com/docs/ports/

Some support help and what they offer: https://www.3cx.com/ordering/procedures/

NAT and Ports NAT translates public (IPv4) addresses to Private IP Addresses (NAT/PAT) Allows Access or restricts it (ACLs) Required to allow connections to 3CX from Providers 3CX apps Supported IP Phones 3CX SBC and Brides IPv6 is also supported

3CX PBX requires Full Cone NAT, this allows incoming traffic from uncontacted sources

Port Preservations This makes sure that the internal source port and the external source port stay the same Ensures connectivity Eliminates Destination Implementations

SIP ALG (Application Layer Gateway) This inspects the contents of the packet and tampers with it uncontrollably Made for clients not severs This is why it is recommended to DISABLE SIP ALG

How the firewall checker works: https://www.3cx.com/docs/firewall-checker/

Main things firewall checker checks Full come NAT has been correctly configured Port Preservation has been correctly configured and tested SIP ALG is disabled and tested


Configuring VoIP Providers / SIP Trunks:

SIP Trunks (VoIP Providers) Supported providers have: Passed IOT Have an easy setup Support from 3CX Support Team

Generic VoIP Providers
	Not tested
	Not easy to setup
	No 3CX support available

SIP Trunking provides access to the Public Switched Telephone Network (PSTN) Transport via Existing Internat Lines, and there is no additional hardware required

Inbound Rules

Inbound rules

These rules process and route the incoming calls to the right destination like if they go to voicemail, an extension, or a queue

Making DID rules management console -> Add DID Rule Need to decide where the DID calls go like End call Extension Voicemail box for extension Forward to Outside Number Send fax or email of extension

You can also specify hours and dates that the DID numbers can work on

Caller ID Rule Can make a rule based on the caller ID that is calling you The same as DID rules

DID

Routes incoming calls to a destination based on the Dialed Number This bypasses the receptionist and goes directly to the person they are trying to reach These are virtual numbers assigned directly to the customer physical line

Applies to
	Extensions
	Voicemail of an extension
	Forward to outside number
	Fax Service

Can also route to a different destination based on Date Time of day

Can add all this in the management console -> inbound rules

Outbound Rules These dictate how 3CX routes outgoing calls. You need to create at least one outbound rule to start using 3CX

Allow or restrict called numbers Destination number originating internal extension dialed number length

Can manage all this in the management console -> outbound rules More info at https://www.3cx.com/docs/manual/sip-trunks/

Emergency numbers Make sure you need to know all of your emergency numbers Add all of the numbers and set everything up in the management console -> settings -> PBX -> emergency numbers

Outbound calls drop after 32 seconds by default

VoIP consumes bandwidth, and it is the rule of thumb that each VoIP call uses about 30 - 120 kb per second

Firewall checks: Go to the management console -> PBX status -> Firewall -> Run This will run the firewall check and tell you if it passed or not

Holiday Hours Rules You can make inbound rules based on the date it is, so you can make holiday hours or days rules where all calls will be redirected straight to voicemail Managment console -> Settings -> Timezone, Office Hours & Holidays


Digital Receptionists:

These are the menus that you hear when you call a business They create a voice prompt Prompt user for input Predefined Transfer Options based on input CAn call any extension Use WAV file format PCM 8 kHz 16bit Mono

Creating digial receptionist managment console -> Digital receptionist -> add Here you can add all the prompts and audio files that the receptionist will use

receptionist options Connect to extension Connect to Ring Group Connect to Queue Connect to Digital Receptionist Multi-layer voice menues Transfer to voice mail Nothing / repeat prompt

Call by name Call an extension based on their last name Smart dialing This requires self-identification prompts that you have to make

If there is more than 1 match, it plays the self ID for each match and the user selects

Direct dialing When you can call an extension without a menu option The interdigit timeout is 3 seconds Can be disabled globally for all digital receptionists

No input or invalid input No input timeout Goes back to normal menu options

Invalid Input Can transfer to Extension Ring group Queue IVR/Digital receptionist Repeat Prompt

HOL digital receptionist (Holiday receptionist) Can make a separate digital receptionist for holidays

MS Exchange Server with 3CX https://www.3cx.com/docs/exchange-server-2013-config/


Installing:

Can be installed on almost anything including Windows (Not XP), Linux, Apple, local VM Use PBXExpress for Amazon AWS, Amazon Lightsail, Google Cloud, Microsoft Azure, OVH, OpenStack API v2

Hardware Requirements: https://www.3cx.com/docs/recommended-hardware-specifications-for-3cx/

License Keys: 3 Types Standard (Queues, Bridges, reports, 3CX FQDN and SMTP only) Pro (Adv. Reports & Queues, CRM, Hotel) Enterprise (Adv. Recording Control, Customisation of Phone Logo, Standby Licence, Failover) More detail on the editions: https://www.3cx.com/phone-system/edition-comparison/

3CX Domain Service Free public FQDN Free trusted SSL certificate Support for Dynamic IPs

PBX Ports Web Server HTTP - Default 5000 (Only local LAN - Based on RFC) HTTPS - Default 5001 (Local LAN and WAN) SIP Server - Default 5060 Tunnel - Default 5090 CAN ONLY CONFIGURE PORTS DURING INSTALL

Internal FQDN or IP? FQDN Allows split DNS setups Allows failover setup Configurable internal DNS server Configurable internal DHCP server

If there is nothing to manage, install on IP

Admin email Receives: Update Information Backup & restore progress info and warnings

Mail server (3CX SMTP, Custom SMTP or mail provider) sends: Welcome Email Faxes Voicemails Missed call notifications


Operating Systems:

Windows 10, 8.1, 8, 7 SP1 Mac OS 10.13, 10.12, 10.11, 10.10 Apple IOS, iOS 10.0 or higher Android version 4.X or higher

Provisioning It is a prefilled config used to automatically configure the device This is great because it is Vendor Specific Syntax, Removes Human Error, and Boosts Deployment Speed

Email Provisioning This is great for remote provisioning Works by Admin sends a welcome email with the desired 3CX config file, the user opens the email and file, 3CX app automatically imports the config

QR Code Provisioning This is used to provide mobile apps on phones

If you are using mobile or outside of local LAN, you need to open NAT ports on the WAN Open NAT ports WAN - 3CX PBX Tunnel Port - TCP/UDP (Default 5090) HTTPS Port - TCP/UDP (Default 5001)

PUSH on mobile This allows for the APP to hibernate No battery consumption APP wakes up on incoming call

Flow: Incoming call -> 3CX -> Vendor PUSH Service -> Mobile Device -> APP

Windows APP Can be used in either "Softphone Mode" or "CTI Mode" Softphone Mode Make and receive calls on my computer without a desk phone CTI Mode A desk phone is required for the app to manage your calls from the desktop

The interface is the same for the Mac app and the same for android and apple ios

Setting up PUSH on mobile devices https://www.3cx.com/docs/firebase-android-client/ Google Cloud Messaging is being discontinued, need to use Firebase now Log into firebase with your google account, go to cloud messaging and copy the Server Key and Sender ID Log into your 3CX management console, go to Settings -> 3CX Client, and put in the server key and sender ID here, Click OK to save


Voicemail:

Voicemail is enabled by default for all 3CX extensions

Voicemail notifications Notification Only Notification with WAV file attached Notification with WAV file attached + Delete voicemail from PBX

Pre-Recorded files are WAV format 8kHz 16bit Mono They are recorded from phone Can have different greetings depending on the forwarding rule

Voicemail transcription Translates speech to text Uses Microsoft Bing Speech API or GCloud Speech API Requires PRO or Enterprise license Transcribed messages can be views in email or 3CX web client

CAn assign voicemail quote Assign quota (disk space) email when nearing quota (%) auto delete old voicemails (days)

Voicemail can be disabled Has a 4 digit PIn by default (Can increase to 10 digit pin) 3 failed attempt blocks you out for 2 mins

Voicemail is not backed up by default Use send an email and delete option to reduce backup size

Change voicemail setting in Managemnt console -> Settings -> greetings

You can also check your voicemail if you have an IP phone Here are the supported phones https://www.3cx.com/user-manual/ip-phone-voicemail-conference-calls/

Group voicemail Need to create a ring group that the voicemails will be forwarded to

Voicemail transcription (Speech to text) You need to first get your API key from your provider, either that be Microsoft Bing Speech API or GCloud speech API Need to secure the API key by restricting it to an IP for an IP phone

Enable Voicemail transcription in 3CX Managment console -> Settings -> Voicemail and enable voicemail transcription Enter the API key you have copied.