Following is a step by step guide to configure Raspberry Pi Session Border Controller for 3CX. If Noobs is not installed on your SD Card please see my post on installing Noobs.
Step 1: Install Raspbian OS
When you power up your Raspberry Pi for the first time you will see a window open up as shown below.
Select the first option, “Raspbian (RECOMMENDED)” and click install.
It can take 10-15 minutes for Raspbian to install. Once installed, the Raspberry Pi will reboot and you will then see the raspi-config window open up as shown below.
Step 2: Change the Default Password
Select 2 Change User Password then enter the new password at the prompt.
Step 3: Enable Boot to Desktop
Select 3 Enable Boot to Desktop then enable boot to desktop.
Step 4: Set Timezone
Select 4 Internationalisation Options and then select I2 Change Timezone and then Australia and save.
Step 5: Change the Hostname
Select 8 Advanced Options then A2 Hostname and enter a new hostname at the prompt and save.
Step 6: Enable SSH
Select 8 Advanced Options then A4 SSH and enable SSH.
Now select Finish on the main menu and select Yes to reboot.
Step 7: Change the Root Password
After the device has finished rebooting, Open up a terminal and type the following command:
sudo passwd root
Then enter a new password at the prompt.
Step 8: Update the Firmware
Install the firmware updater, run the following command (this only has to be done once per Pi. When the tool is installed you can use the rpi-update command to easily update your Pi firmware).
sudo apt-get install rpi-update
Now to update the firmware on your raspberry pi use the following command:
Once the update is complete you will need to reboot your Pi for the new firmware to take effect.
reboot -t now
Step 9: 3CX Install Session Border Controller
First, search for Raspberry Pi software updates using the following command
sudo apt-get udpate
Then add the 3CX Session Border Controller repository link to the sources list
echo “deb http://downloads.3cx.com/downloads/sbc /” >> /etc/apt/sources.list
Now add the digital signature key so that the software is recognised as coming from a trusted source
wget -O – http://downloads.3cx.com/downloads/sbc/public.key | apt-key add –
Now check for software updates again so that the 3cxsbc software is included
sudo apt-get update
Then install 3CX Session Border Controller
sudo apt-get install 3cxsbc
Now update all other Raspberry Pi software for which an update is available
sudo apt-get upgrade
Now the Session Border Controller has been installed and started automatically. We need to stop the 3CX Session Border Controller Services before configuring the software
service 3cxsbc stop
service rsyslog stop
Now it’s time to configure the 3CX Session Border Controller
Change the Level to Level = NONE. This will stop SBC logging.
Enter the tunnel password. The tunnel password can be found in the 3CX Cloud Server. Go to the tenant and then go to Settings > Network > 3CX Tunnel.
Then enter the tunnel address. This is the external IP address of your 3CX Cloud Server. Now enter the tunnel port. This will relate to the tenant that this tunnel belongs to.
Tunnel Port 5090 – Tenant 1
Tunnel Port 6090 – Tenant 2
Tunnel Port 7090 – Tenant 3
Now enter a name for the Tunnel. This name will be used in 3CX logs so if you have more than one RPi for this tenant use a name that will easily identify the RPi.
Enter the Pbx SIP IP – this is the internal IP address of your 3CX Cloud Server. Then enter the SIP port for the tenant.
SIP Port 5060 – Tenant 1
SIP Port 6060 – Tenant 2
SIP Port 7060 – Tenant 3
When finished hit Ctrl+X to exit the file. Then press Y to save and hit enter.
Run the following commands in order for your changes to take effect
service 3cxsbc restart
service rsyslog restart
Step 10: Put Your RPI on a Static IP Address.
This is important because if the address of your Session Border Controller changes your phone will not be able to register.
Remove the contents of the file and add the following. Ensure that the static ip address you enter is on a range you are currently using otherwise you RPi will not have connectivity to the network.
iface lo inet loopback
iface eth0 inet static
The netmask and gateway can be found in your network settings on any machine connecting to the same network. These are site specific so please do not just copy the information above.
Ctrl +X exit the file and then Y to save, then press enter.
Now restart the networking service to put these changes into effect.
service networking restart
Now you can start configuring your phones in the network to register with the 3CX via the outbound proxy (the Raspberry Pi). Phones registering via the Pi need to communicate on port 5060 and the Raspberry Pi IP address should be used as the Registrar Server, The Proxy Server and the Outbound Proxy Server, in the telephone configuration.