Skip to content

Latest commit

 

History

History
593 lines (451 loc) · 16.8 KB

README.md

File metadata and controls

593 lines (451 loc) · 16.8 KB

3CX-Intermediate-Notes

Notes from 3CX Intermediate Certification Might help you study, better then the videos and slides imo.

Backup and Restore:

Stores the backup in a single ZIP file
Use backup for
	Migration
	OS Change
	Major versian upgrades
	Revision and Recovery	
	Failover Sync

Backup is integreated in the managment console
	Can be schedules and can be On Demand
	Also can password protect it

Different Types of data
Host Data
Host data is not restored
This is the data whci is only relevant to the installation on the current host
This is things like
	SIP and Tunnel ports
	External RTP ports

User data
User data is restored
This is the configuration that runs on the host. It consists of all the configuration information, which is made by the client, as well as some of the main host data parts.
This is things like
	Systen extensions
	VoIP providers and gateways
	Prompts
	Audio Files
	Licence keys, FQDN and SSL certificates

There are many options for backups, but the main config that is always included is
	Extension and group settings
	Trunks
	Inbound rules
	Outbound rules
	
Backup location options
	Local Disk (SATA, iSCSI, SAN)
	FTP
	Google Drive

Backup tips
Place recording in different location. This provides
	Smaller 3CX backup file
	more flexibility

Backup Scheduling
Managment console -> backup and restore -> backup schedule

Command line backup
All the options are also available for backup in the command line
	But FTP and Google Drive are not supported
Using the command line you are able to set different local paths for backup files

l, --log=VALUE		Log path or filename

f, --file=VALUE		Zip path or filename to backup *

o, --options=VALUE	Backup options (what to include in the backup) *
			ALL - include all
			Any combination of following strings (comma-separated):
			CH - include CallHistory
			LIC - include license
			FQDN - include FQDN
			PROMPTS - include Prompts
			FW - include Firmware
			REC - include Recordings
			VM - include VoiceMails

c, --cfg=VALUE		Configuration file full path

h, --help		Show this help

--pwd=Value		Encrypt Backup with Password (V15.5 Sp2 onwards)

Arguments with * are mandatory.

How to open the command prompt in Windows and Linux

Windows
1.	Open Command Prompt as Administrator and go to:
		cd C:\Program Files\3CX Phone System\Instance1\Bin
2.	Enter BackupCmd.exe --help command to see all available options.
3.	To make a full backup run this command: 
		BackupCmd.exe --file=backuptest.zip --options=ALL --log=backuptest.log
4.	To make a backup including Call history, license and FQDN, run this command:
		BackupCmd.exe --file=backuptest.zip --options=CH,LIC,FQDN --log=backuptest.log


Linux
1.	Open a Terminal and go to:
		cd /var/lib/3cxpbx/Instance1/Bin/
2.	Run “sudo -u phonesystem /usr/sbin/3CXBackupCmd --help” command to see all available options.
3.	To make a full backup run this command: 
		sudo -u phonesystem /usr/sbin/3CXBackupCmd --file=backuptest.zip --options=ALL --log=/tmp/backuptest.log
4.	To make a backup including Call history, license and FQDN, run this command: 
		sudo -u phonesystem /usr/sbin/3CXBackupCmd --file=backuptest.zip --options=CH,LIC,FQDN --log=/tmp/backuptest.log

Restoring using CMD
RestoreCMD is the command line tool to restore backups via command line

-l, --log=VALUE		Log path or filename

-f, --file=VALUE	Zip path or filename to restore *

-c, --cfg=VALUE		Configuration file full path

-h, --help		Show this help

--pwd=Value		decrypt Backup with Password (V15.5 Sp2 onwards)

--failover		Failover mode (services will not be started after restore)

Arguments with * are mandatory.

---------------------------------------------

Call Recording:

Admin can prevent an extension from starting or stopping recordings
Recordins of calls include
	Off (Don't record anything)
	All calls
	External Cals only

File location
	Local Disk
	iSCSI
	SAN
Network drives or folders are not supported

Quota
Managment console -> Recording -> Quota
The default is 5GB
Some options include
	Auto clean (deletes old recordings)
	Notification (Email when nearing quota limit)

Recording format
All recordings are in WAV 8kHz 1 bit Mono
Compression options
PCM
	File is approx 1MB per minute of recording
	Playable by all media players

ADPCM
	File is approx 256KB per minute of recording
	Not playable on all media players, can be harder to player recording

Managing call recording in 3CX
Managment console -> "recordings" node

Can set retention for call recordings (Deletes recordings after a certain ammount of days)
Managment console -> Recording node
Enter the quote you would like and all the other options that are available


---------------------------------------------

Extension groups and Rights

Managment console -> groups

You can create groups as departments
Users can
	Be part of multiple groups
	See others in groups
	Perform actions to others in groups

users in groups can be split into different roles
	Manager Role
	User Role

Can set rights to group in general or just to one user

Rights Control
Managment Rights
	Manage phonebook (Company phonebook)
	IVR Control

Presence Rights
	Extension Visibility
	Extension calls
	
Action Rights (requires visibility of users and calls)
	Parking
	Intercom
	Call manipulation - Divert, transfer, Pick up calls
	Receptionist Operations (Status, wake up calls, check in/out
	Barge in, listen, whisper
		Only on Pro or enterprise licence

Specific Group Rights
Can do fine tuning to specific individual users

Group Publishing
Makes all extensions visible to everyone
	No cals visible
	No control actions

Managment Console Delegation
3CX managment console -> extension -> rights
This allows users to configure other users
Extension Managment
	Granular extension managment
System Managment
	Administer SIP trunks
	General System administration (Access to settings)
	General call reports


---------------------------------------------

Extension Profiles and Forward Rules:

Extensions can either ring or not rign based on their status
Ring
	Available
	Custom 1
Not Ring
	Away
	Do Not Disturb
	Custom 2

Places where you can change your staurs
	3CX apps
	3CX Web Client
	Dial code
		*30 -> available
		*31 -> Away, etc..
	IP Phone DnD button (Activates *32 Do Not Disturb)
	BLF Button
	Auto switch based on time
	From managment console
	From within voicemail menu


Forwarding Rule Options

Available or Custom 1
You can set a rule timout that will forward the call to one of the following
	Voicemail
	Mobile/external number
	Other Extension
	End call

There are other options too

Away, Do Not Disturb & Custom 2
When they ring the extension, the call gets forwarded to one of the following
	Voicemail
	Mobile/external number
	Other Extension
	End call

Can also setup seperate forward rules based on the internal or external numbers

Can setup different voicemail greetings per profile
This will override the default greeting for only that one specific status
File format
	WAV PCM 8kHz 16 bit Mono

Exceptions
You can create exceptions for each extension
Max of 15 exceptions per extension
Can use * (star) symbol as a wildcard
Each extension can apply for certain times of day or days of week
The order of the exceptions matter
	It checks them from top to bottom

Profiles can switch during different times of the day

---------------------------------------------

Hot Desking
Allows an IP ohone to be used by multiple users
Each user can login and use their own extension
Ideal for spaces where users may not have assigned seating

Can only be done on Pro or Enterprise license versions

Managment Console -> Hotdesking -> Add
Need to set the make/model of the phone and the MAX address
set the provisioning method
	Local IP or SBC device

After that is done, the phone will show up as a new phone
Need to assign an extension

By default, new extensions cant do Hot Desking
To enable
	Edit Extension -> Options
	Enable Hot Deskting


Logging in and Out
Default dial code is *77*
	This can be chnaged in Settings -> Dial Codes

Will need extension number and voicemail PIN to login
	This can be found in the welcome email

Login
	*77*EXT*

Log Out
	*77*5*
	1st BLF provisiond as logout button

THe admin can see what extensions have logged in and when

More here
	https://www.3cx.com/docs/hot-desking/


---------------------------------------------

PBXEXpress:

PBXExpress is a tool that allows you to set up and deploy your 3CX in the cloud very fast

Installing PBXExpress:
Follows steps

FQDN
Needs
	Hostname
	Domain Suffix

Select your cloud service that you are using
Choose VFS
	The specs of the machine you are using depends on your size of installation

After everything is done, an email will be sent to you
	This contains link to Managment console and login and password

PBXExpress Microsoft Azure

Log into your microsoft Azure account
Go to Cost managment + billing and get your Subcription ID

Go to PBXExpress
Select that you want to use Microsoft Azure and put in your subscription key
Go through all the steps
Click accept and everything is done and setup for you now

PBXExpress in Google Cloud

Enable your Google Cloud Compute Engine and API
This is required to create a VM instance with 3CX running on it

Go to your PBXExpress
Select that you want to use Google as your cloud service
Log into your Google account
Everyhting is now setup

PBXExpress in Amazon AWS (Amazon Web Services)

Get your Amazon AWS account

1.	Search for "IAM" in the search. Select IAM - Manage User Access and Encyrption Keys"
2. 	Click users
3. 	Click add user
4.	Create username and select "Programmatic access", click next
5.	Click "Attach existing polocies directly", select "ec2" and "AmazonEC2FullAccess", click next
6.	Click create user
7.	Record the Access Key ID and the Secret Access Key
8.	Click EC2 and select a location where you want to create this machine
9.	Click on key pairs and then Create Key Pair
10.	Enter a name and click create. Download the file and keep it safe as it cant be downloaded again

Go to your PBXExpress
Select that you want to use Amazon AWS
Enter the Access Key ID and the Secret Access Key
Done


---------------------------------------------

SBC Configuration (Session Boarder Controller)
Supported OS
	Windows 10 Pro or Enterprise
	Debian 9 (amd64)
	Raspberry Pi (Raspbian)

SBC Hardware Specifications
Windows and Debian
Max
	50 Extensions
	100 simultaneous calls
	250 BFL keys accress all phones

Pasberry Pi 2 or 3
Max
	20 Extensions/simultaneous calls
	200 BLF key accress all devices

Benefits of using 3CX SBC
	Internal call capabilities to a Group of Remote Users
	Dropship IP Phones
	PnP Provisioning
	Traffic remains in LAN -> for phones connected to the same SBC
	Overcome NAT and SIP ALG router issues
	Encyption
	Its free

Setting up in 3CX
SIP Ports and tunnel Port
	Settings -> Network -> Ports

3CX Tunnel Password
	Settings -> Security -> 3CX Tunnel

Public FQDN
	Dashboard -> Information -> FQDN

Installing SBC
Get it and follow the steps to install it
	Can put optional encryption
	Can set failover PBX

Ip Phone provisioning with PnP
Boot phone in the remote location
	answer the PnP request in the 3CX Managment Console
	Assignt the IP Phone an existing extension or create a new one
	and thats it

3CX Tunelling combines SIP (Signaling) and RTP (Audio) VoIP packets from one location and delivers tham to an from another location using a custom TCP protocol
This overcomes some firewall ir telecom provider issues
3CX Tunnel can be used to resolve things like
	Resolve Issues of NAT traverse at both the remote and the PBX location
	Simplified firewall configuration at both the remote and the PBX location
	Overcome diffuculties with ISP that block VoIP traffic based on port numbers
	Allows VoIP over WIFI in some restricted locations, such as hotel rooms
	Fixes Firewalls that cant handle VoIP traffic correctly or which are very problematic to configure correctly, such as Microsoft ISA server


Session Boarder Controller
	https://www.3cx.com/docs/3cx-tunnel-session-border-controller/


---------------------------------------------

STUN Configuration
Session Traversal Utilities for NAT (STUN)
Methods like network protocol, trverse of network address translator, gateway in application real-time voice, video, messaginf and others
Allows to setup phone calls to a VoIP provider hosted outside of the local network
STUN is a client-server protocol, it is usually embeded in VoIP software such as a IP PBX or IP Phone
It sends a request to a STUN server to discover its public IP and ports, and the STUN server sends a response
There are 2 types of requests
Binding Requests
	Typically send over UDP
	This is used to determine the IP and ports bindings allocated by NAT's.
	When the request is sent, the STUN server looks at the source IP address and the port, and writes them down into a binding response that is send back to the client
	
Shared Secret Requests
	Sent over TLS (Secure communication) over TCP
The Shared Secret Requests asks the STUNserver for a temporary set of cridentials which are then used in the Binding Request and Bidning Response exchange



STUN Benefits (remote worker)
	Internal call capabilities to remote users
	Dropship IP phones
	No additional hardware required
	Autodiscovery of your 3CX


Provisioning STUN extensions as an admin
can create and configure extensions in 3CX
Need	
	Make/model
	MAC address
	remote ports
When setting up you need to increment SIP/RTP ports for each sunsequent device
Uncheck: Options -> "disallow use of extension outside the LAN"
Create NAT in remote firewall -> IP phones
Send welcome email

STUN is method to
	Discover the public IP address (from a LAN)
	Discover Firewall port mapping (from a LAN)
the STUN server is your own PBX

Provisioning remote extensipons as an end user
reset the phone (If it is not a new device)
When the phone prompts for login -> from welcome email
	Username:	Extension number
	Password:	Voicemail PIN

RPS
Automatically triggered whn provisioning a phone using the STUN method
Binds MAC address to (Provisioning) URL
Phone boots and retreives URL
after 2 weeks MAC/URL is unlisted

Troubleshooting
If STUN extension shows
	No connection to server
	Audio issues
	Cant transfer, hold or resume calls

Check the remote firewall 
	Make sure SIP ALG is disabled
	Check that NAT is implemented

STUN Messages
STUN messages are TLV (type-length-value) encoded. It is 20 bytes
All STUN messages start with a STUN header, followed by a STUN payload.

Examples	
0x0001	Binding Request
0x0101	Binding Response
0x0111	Binding Error Response
0x0002	Shared Secret Request
0x0102	Shared Secret Response
0x0112	Shared Secret Error Response


Common error codes
Error Code 400		Bad request. Client must modify request and send it again
Error Code 420		Unknown attribute, the server did not understand an attribute in the request
Error Code 430		Stale credentials, the shared secret send in the request is expired, the client should abtain a new shared secret
Error Code 432		Missing username, the username attribute is not present in the request
Error Code 500		Server error, the client should try sending the request later

STN protocol Attributes present in STUN requests and responses
Here
	https://www.3cx.com/blog/voip-howto/stun-details/

---------------------------------------------

Time Based Scheduling:

Office hours has 3 states
	In (Working)
	Break (eating, extensions only)
	Out of office
This can alter behaviour of inbound rules and extensions

Can set up PBX for global office hours
	Day by day time schedule
	on a weekly basis
Managment console -> Settings -> timezone -> office hours & holidays

Specific Office Hours
	Day by day time schedule
	On a weekly basis
These can be set individualy for each inbound rule or extension
This overrides global office hours

Holiday Hours
	Specific hours of a single day
	Can also be a range of days
	CAn set on annual basis
Defines when the whole PBX is in holiday mode
Managment console -> Settings -> Timezone, office hours & holidays

Inbound Routing for Global Office Hours
Managment console -> inbound rules -> select your inbound rule
Destination for calls during office hours -> In office hours
Destination for calls outside office hours -> Outside office hours

Inbound Routing - Specific Office Hours
Managment Console -> Inbound rules -> Select your inbound rule	
	Check option Setup specific office hours for this trunk
	Set the times
	Inbound rule will ignore global office hours
	Routing done based om the specific Office Hours instead

Inbound Routing - Holidays
Managment console -> Inbound rules -> select your inbound rule
	Check option Play holiday prompt when its a global holiday
	If its a holiday -> Global and specific office hours are ignored
	Caller hears the set prompt depending in the holiday
	Caller is then transferred to the HOL digital receptionist


Changing extenstion status automatically
Managment Console -> extensions -> edit your extension -> forward rules tab
Here the profile will automatically change
The profile will not automatically chnage if profile Custom 1 or Custom 2 are in use
CAn autowitch exetenstion based on gloabal office hours

---------------------------------------------