Yealink T46S won't register

I just got a brand new Yealink T46S which won’t register. Thinking it might be the phone, I also unpacked a separate set of Yealink DECT phone I got and these work immediately. Thinking it might be the fact I’m connecting to a server outside my network, I connect the T46 to the FreePBX on my local network, which is working fine.

I have checked the extension multiple times, reset the password, it keeps working on my iPhone and the SIP/Yealink phone on my local network, but not on the new Yealink.

Do I need to edit settings out of the box?

On your local network it works, but not in a remote location?

That is correct. Other phones including the SIP app on my iPhone on the other hand are able to connect to the remote server. I have tried another server, same result. So it seems this particular phone is not able to connect to remote servers.

Run (assuming you use PJSIP)

asterisk -rvvvvv
pjsip set logger on

Try to register, upload the output to and post the link here

The plot thickens… my DECT phones (Yealink W60) dus got updated and now they’re also not able to connect. Same “SIP/2.0 401 Unauthorized” log. Older phone and iPhone still no problems.

Buggy firmware?

401 unauthorized is part of the auth process. Your devices isn’t responding to the 401 response at all. You got NAT issues.

1 Like

If I were to go to my neighbour’s house, that could solve the issue? I’m behind a USG Pro btw.

Well you could test things at least

My T46S has now registered, but the handsets won’t. This could imply NAT issues?

Based on your other posts in this thread? Yes.

Use sngrep and look at the source information.

Is everything coming from 5060? or even are two phones coming from the same port not 5060?
Your router’s NAT tables are likely hosed. Rebooting everything in order from ISP modem to router to phones will likely clean it up.

Most hardware devices (and all Yealinks) attempt to use port 5060 as their “source” port for outbound connections by default.

But the first time they negotiate, the router will not allow it, if it has already mapped something using 5060, and the devices will pick random port and try again.

Because this can randomly be an issue if there is an outage, or the router reboots, or the router tables get wiped, etc., I have now started using a specified source port base don the extension

In a Yealink, it is this config line (extension 5142, see what I did there?)

sip.listen_port = 35142 

Or in the phone GUI

1 Like

Changing that did the trick! Thanks a lot!!

I’m going to be honest here, I have locations with numerous Yealink phones and I never touch the listening port of the phone. I don’t have NAT issues like this. So while this did fix the problem it is a workaround and not a proper fix to the networking issues present.

If everything was local then the listening port would be just fine as every device would be listening on IP:5060 and there would be no issues. The fact this is now hitting the router and NAT and the router is poorly mapping things listening on 5060 locally is not something that should be set per phone, this is a networking problem that needs to be resolved properly.

I have numerous locations that never had problems, and still don’t.

Yes, it is the router causing the issue.

But why wait for poor customer decisions to affect my offering? It is simpler to mitigate issues that are not in my control.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.