Yealink IP Phone registration with 3CX Asterisk PBX system

Steps to do Yealink Phone Configuration on 3CX

Today i will provide step by step documentation on the registration of Yealink Phone with 3CX PBX system over the internet. Lets first discuss the types of Yealink phone that is supported by 3CX phone system. Yealink phone comes with many flavors, and most commonly segregated with TX-Series.From the large catalouge of Yealink phones below phone models from T1 to T5 series are tested and supported by 3CX officialy. Detail list of T-series phone models as below;
  • Yealink_T1_Series: #T19(P) E2
  • Yealink_T2_Series: #T21(P) E2, #T23P/G, #T27G, #T29G
  • Yealink_T4_Series: #T40G, #T40P, #T41P, #T41S, #T41U, #T42G, #T42S, #T43U, #T46G, #T46S, #T46U, #T48G, #T48S, #T48U
  • Yealink_T5_Series: #T52S, #T53/53W, #T54S/54W, #T56A, #T57W, #T58A/V

In my experience, whenever you have to work on phone registration stuff, please do below mandatory pre-requisites:

PreReq A:

1. Check the Version of Asterisk running on PBX.
2. Note the 3CX Version
3. Check the firmware version of Yealink Phone
4. Go through the compatibility matrix of 3CX and Yealink phones.
5. If yealink phone is currently on a firmware version lower than x.84.0.35, and the model accepts a higher version, then we need to manually upgrade to version x.84.0.35 prior to upgrading to a higher version: Yealink T40 ; Yealink T40G ; Yealink T4xS

PreReq B:

Factory Reset the Yealink phone
  • Power on the phone.
  • Wait until the “Idle” screen is visible.
  • Hold down the “OK” or “REDIAL” (if Android phone) or “Mute Indicator” button until the message “Reset to factory settings?” appears.
  • Press “OK” or “Yes” depending on the model.
  • Your phone has been successfully reset.
PreReq C:

  1. Network Administrator need to make sure that the following ports are open on the firewall and port-forward them to the 3CX IP PBX Phone System IP address :
  • TCP Port 5000 (used for the provisioning of remote extensions).
  • TCP and UDP port 5090 (used for inbound Tunnel connections).
  • UDP port 5060 – used for SIP traffic.
  • UDP ports 9000–9255 – used for RTP traffic – audio
PreReq D:

  • In the Management Console each Remote STUN Extensions must have a unique Local SIP Port and Unique RTP Port range and the RTP Port range must be 10 ports (for Yealink phones 12 ports) per remote site. This means that if we only had Yealink phones that would be e.g.:
- Extension 100 should have Local SIP Port: 5068 and RTP Port Range: 14020-14031 (12 ports)
- Extension 200 should have Local SIP Port: 5069 and RTP Port Range: 14032-14044 (12 ports)
- Extension 300 should have Local SIP Port: 5070 and RTP Port Range: 14045-14057 (12 ports)

  • Once you have done this, then on the Remote Location Router/Firewall behind which the phones are residing, you must:
- Disable SIP ALG or any similar port remapping feature.
- Create NAT/Port Forwarding Rules so that, as per the above example:
--- Ports 5068 TCP/UDP and 14020-14031 UDP are forwarded to the IP of Extension 100
--- Ports 5069 TCP/UDP and 14032-14044 UDP are forwarded to the IP of Extension 200
--- Ports 5070 TCP/UDP and 14045-14057 UDP are forwarded to the IP of Extension 300
--- etc...

Implementation Steps for Phone Registration

Now let us deep dive into the registration steps, basically today we will discuss on how to register
the phone over internet, this is called Direct RPS (STUN) - Remote method

This is widely used method when the phone is on remote location, or any other site on different network.Also, this is used when we do the cloud deployment of the 3CX phone system and we need to register the IP phone over the internet. So now you got aware about the need and requirement of STUN registration method, so lets move into the configuration part. Just a few notes for you, in regards to remote STUN using RPS:

* Most common issues as you have already identified are network issues. Port forwarding and firewall rules can be a real problem especially if you use more than a single extension on the remote site.

* It should not be required (but worth mentioning) that to overcome a few issues with remote provisioning of these phones it used to be required that you login to the phone itself and disable the setting "Allow trusted SSL certificates" in the interface of the phone under security.

* All audio needs to traverse back to the PBX from the main site which is why "PBX delivers audio" needs to be enabled on extensions.

* For security reasons and remote setup and provisioning I would always recommend the 3CX SBC.

* Untick the "Disallow use of extension outside the LAN (Remote extensions using Direct SIP or STUN will be blocked)" option.

* For the no audio between extensions I had to enable "PBX delivers audio"

Remote phones: Provision via RPS server

First of all , you need to take note of the Yealink-phone’s MAC-address, It is ideally found written at the back of the IP phone with model and serial number details. Once you get the Mac Address then login to the IP PBX GUI console

Go into the #3CX_Management_Console and navigate to  “Phones” section and then press the button on top right i.e “+ Add Phone”.

Once you click on the Add phone button, a page will open and from the dropdown list you need to select the extension to which this phone must be assigned.
If you already configured the extension it will show there, otherwise you have the option to create new extension number on the same page.

Once you done with that , In the next dialogbox, you need to then select the Vendor/Model of the ip phone (in our case Vendor should be selected as Yealink and Model should be T21 P E2)

After that you also need to enter the device’s MAC address that you obtained already from the step 1.

Switch the “Provisioning Method” to “Direct SIP (Stun - Remote)” and click “OK”.

Then you need to make sure that the new extension that you configure is ready to be configured via RPS (STUN) by checking the “Event Log” from the dashboard, ideally it should show something like below;
"RPS Request for the Yealink T21 P E2 phone has been delievered successfully "
This means that everything is fine , and we are good to move to Phone config on phone web portal.

But in some cases, If the message appears as a “Warning” then you need to follow the instructions outlined in the message and fix any config issue accordingly.

The phone is then ready to be provisioned - so you can reboot the remote site phone by accessing the IP address of the phone , enter it in the web browser and issue reboot command under "Settings" => "Upgrade" => "Reboot phone"

The phone will prompt for username and password: Enter the extension number as the username, and password specified in the Phone provisioning tab on 3CX.

Phone is now ready to make outbound calls and will recieve inbound calls.

This is the complete step by step guide on how to configure the Yealink phone with 3CX server over the internet. I hope you liked the article and make sure for more updates do subscribe our blog and facebook page.

If you have any doubt or need assistance with your phone system , do write me your views in the comment section.

Have a good one !!!