3CX v15.5 Phonebook Not Updating

Status
Not open for further replies.

[email protected]

Premier Customer
Joined
Jun 17, 2015
Messages
84
Reaction score
21
Helpdesk recently did some cleanup of extensions on Monday and Tuesday of this week and none of the new extensions are showing up in the Phone Book. After looking into the problem it appears it hasn't worked right for a few weeks. When I browse to my phone book directory at http://$hostname/provisioning/$provdir/yealink_phonebook.xml I can verify that the xml file has not been updated. I'm unable to find directions on how to update the address book. How do I manually update the address book on 3CX so it populates the xml file that the yealink phones downloads?

The only thing I've done with this server is install a new SSL cert a couple of weeks back. Everything else is working properly so I'm not sure if this is part of the issue. I stopped/started NGINX when I installed the new cert.

As an example this is a user who was configured last week. The phone is configured, registered, and working in 3CX. But the phone book just says OPEN where the username should be.

<DirectoryEntry>
<Name>OPEN</Name>
<Telephone>1140</Telephone>
</DirectoryEntry>
 
Last edited:
Thank you for the response but that doesn't appear to be my issue. The phones appear to be getting the phone book. The issue I'm seeing is that the phone book on the server is out of date and I'm not sure how to force it to find the new extensions.

Edit: I have been doing some more troubleshooting and I can get a "Cannot download remote phonebook!" message from the phone. It's possible that the link you posted is the problem. I'll continue researching. Thank you again for your response.
 
Last edited:
I've worked my problem backwards and discovered I have 2 issues to fix.

1. I still don't know how to get the phone book to update on the server. It has out of date data.

2. Our server crashed in May. Then we had a ransomware attack that took us a while to completely recover from. I ended up restoring from a nightly backup of 3CX onto a new Windows 2016 VM. Our original server used ports 5000 and 5001. At some point during an update it became 5000, 50001, 80, and 443. During the restore 5000 and 5001 went away leaving everything to run on 80 and 443. Our phones are configured to talk to the provisioning server via port 5000. That means that for the past few months the phones have been checking into the provisioning url using the wrong port. All of the phones will need to be pointed to the new url to get them checking in properly.

If anyone knows of a good way to batch update the phones or how to update the phone book on the server please let me know.
 
I ended up rebooting the server last night just to make sure nothing was wrong with it. I also tried turning on ports 5000 and 5001 alongside 80 and 443. When I did this from NGINX I could not get the ports to turn on. The syntax below appears to be correct.


server {
add_header X-Frame-Options "SAMEORIGIN";
listen 80;
listen 5000;

server {
add_header X-Frame-Options "SAMEORIGIN";
listen 443 ssl;
listen 5001 ssl;

Does anyone know how to turn on more ports for NGINX in 3CX?

I still can't find good information on refreshing the phone book. Does anyone know how to do that?
 
I discovered that one of the issues with my phonebook is caused by the current version of NGINX coming with default IP blocks. Our phones are kept on a secondary network and the IP range is blocked from http only.

If you look at the nginx.conf file the current version from 3CX puts a deny entry only in the http section. https works fine. This is the reason I had so much confusion with with ssl was working and http was not.
The command comes with some defaults but ultimately I cleaned them up for our networks. The deny statement was my issue. For some odd reason NGINX has the access_log turned off by default. The command to turn it off is included in the nginx.conf info below. I was able to figure out this issue witthout the access log but it would of been extremely useful and I'm confused why its off by default.

server {
add_header X-Frame-Options "SAMEORIGIN";
listen 80;
listen 5000;
server_name 3cx.mydomain.com
server_tokens off;

access_log off;
error_log nul crit;

allow 172.20.0.0/22;
allow 10.0.0.0/16;
deny all;

I can't do this work till after hours so I've got everything verified and ready to cutover after hours. I'm hoping this will be the resolution to many of the problems that started in May when this server failed.
 
Last edited:
I have my issues resolved. Here's a run down for anyone who may find this thread in the future.

- If you want to update ports in NGINX you have to reboot the server. Not sure why resetting NGINX doesn't start it up.

- After the server crash the phones were stuck on trying to use port 5000. Enabling 5000 allowed them to check back in and get the updated port 80/443 configs.

- Sometime after we started having phones check back in the phone book updated. I'm not sure what triggers it but I can see that it updates at least once a day now.

- Now that we are using 80/443 we ran into a handful of problems with AV and web filtering. I had to put allowed networks into them to get everything working.
 
Curious to know what AV you were using?
 
Status
Not open for further replies.

Forum statistics

Threads
111,956
Messages
589,927
Members
164,858
Latest member
MichaelRussell3