Can't Register Remote Polycom Phone / Internal Music on Hld

Folks,

I have the latest FreePBX and I can use a softphone just fine remotely registering, either on my PC or IPhone and all works fine. I can’t seem to register the polycom phone. I have the SIP and LINES setup to my PBX IP - but I constantly get back Registration User failed (Extension) Error Code: 480 Temporarily not available. I have turned off the firewall totally and still get this error. Even if I do this in Endpoints, it does not register. It will register fine locally, but not externally.

Is there also a way to change the “Internal Extension to Extension” Music on Hold? We all hate the canned asterisks music and I have a few streams running that have better MOH !!

Any help would be appreciated and thank you!

how are you configuring your polycom phones? is the registration server set to the external ip address? a basic question but i have to ask since you shared no data

Hi,

Yes, the registration in the polycom phone is setup to the external IP address. I have it setup the same way on the softphones and they are able to register from outside as well using the external IP.

do you see the polycom phones attempting to register (/var/log/asterisk/full)?

I do not see the polycom attempting to register at all on the pbx.

Hi,

When I am using a Softphone such as Bria, I punch in the External IP address, Username and Password and the phone registers just fine.

I can use a Polycom internal with no issues, but can not get it register externally. I do not see any thing when it is attempting to register externally. I have the phone with the External IP address and also on Port 5060.

I have both the CLI and also Telnet open and do not see any activity over Port 5060. Is there any other command I can use besides tcpdump port 5060?

I keep on getting “registration failed user: 6962 , error code 480 Temporarily not available”

Thank you!

i assume the error you see is in the phone app log? here are a couple of things to check/try

  1. if the polycom has been used internally, reset it to factory default - as crazy as it sounds, we have seen situations where the phone appears to be configured correctly but just will not register. resetting to factory and then reconfiguring it works. use the key sequence (google it if you don’t know it) .
  2. check the firmware levels on the phone and upgrade them if necessary. if you are using the paid endpoint manager to configure the phone, the be sure to install the firmware. you will have to use FTP to provision the phone, especially if it has to upgrade either the bootrom or the application. if you are manually configuring the phone, you only should have to enter the same data you use for Bria - user id, password and server address.

Reset Polycom to default and just put in userid, password and server IP. Still shows the 480 error.

Any suggestions on how to test FTP/TFTP from another PC to the the PBX to see if is responding?

first, use the console or putty and enter service vsftpd status this will tell you if the ftp service is running

then open a browser (this does not work in Edge so use Chrome) and type ftp://ip address of your pbx
it should request a user id and password. enter the user id and password you setup for ftp and the phones and it should then open tftpboot on the screen. if you also have the console (or putty) open, do tail -f /var/log/xferlog and then in your ftp window double click on one of the config files. it should open the file in an editor and you should see the transfer on your console/putty window.

you also need to check the iptables config and make sure the helpers are installed. /etc/sysconfig/iptables-config near the top of the file you should see a line IPTABLES_MODULES=“ip_conntrack_ftp ip_nat_ftp nf_conntrack_ftp nf_nat_ftp” if that is not there or the is nothing after the IPTABLES_MODULES="" the update the line and restart iptables

and if you are using the freepbx firewall, make sure your NIC(s) are shown as external, that the ftp service is set to internal and that you have the public ip address(s) of your phone and test pc are on the trusted network page and that they are whitelisted in fail2ban

if you have a decent dhcp server where your phone is located set option 160 to ftp://ftpuserid:ftppassword@ip address of your pbx. this will cause the polycom phone to use ftp to pull its configs. if you can’t do this, then you will manually have to set the ftp server address, user id and password into the phone. i usually do not bother setting option 66.

having said all of that, if the extension is properly configured and you are entering the proper ip address of your pbx, and setting the user id (ext #) and password (sip secret in the extension setting) manually into the phone and it is not registering, then there is another issue.

Bob,

I did find that the FTP server works both internal and external. I setup a phone in endpoints, but do not see it being written to the tftpboot directory. Is this where it is supposed to be?

You said: “if you are using the freepbx firewall, make sure your NIC(s) are shown
as external, that the ftp service is set to internal and that you have
the public ip address(s) of your phone and test pc are on the trusted
network page and that they are whitelisted in fail2ban” - Where is this? I can not find this.

Thanks for your help !!

since ftp is working, try manually configuring the polycom phone to use your ftp server to load its config. where you set this on the phone is dependent on what bootrom is loaded on the phone, but it is under advanced settings, and then network. set the provisioning server to be your pbx ip and enter the ftp user id and password. monitor /var/log/xferlog via the pbx console/putty. you should see as a minimum the phone attempt to pull some files.

are you using the paid end point manager? if yes, then you should have had to select a brand, update the global config, create a template for your phone (if you have both internal and external phones, you will need to create a template for each). you need to install firmware, the polycom firmware is a large download so be patient. once all that is done, go into the extension setting for the phone and click on the “Other” tab, and pick the brand of phone, enter the mac address and pick the template and save the page. this should then add the phone to the endpoint manager (look at extension mapping). it should have also generated a config, but to be on the safe side, in the end point manager extension settings, check the box next to your phone and then at the bottom of the screen select save and rebuild. you should now see some polycom files in tftpboot. by the way, there will also be a subdirectory in tftpboot called polycom where you will find the polycom firmware.if you are not getting any config files built, then you have another problem.

as to the firewall, you find it under the Connectivity tab in the GUI. fail2ban is listed as intrusion detection on the system admin screen. the system admin screen is found under the Admin tab.

Bob,

Pulling all the information internally is working great. It’s External that will not.
I have even tried to create in Endpoints (paid module) that external IP of the PBX
and still I can not get a polycom phone to download or register, I still get the 480 temp not available error.

I turned off all firewalls even as an attempt to see what happens and still nothing. I can use a web browser and log in to FTP externally and see the files, so i know that FTP is working.

What could be left? Thanks again for your help.

um strange. a few more questions if i might

  1. are you using different templates for internal and external? the major difference between the two templates will be one will have the internal address and the other will use the external address
  2. when testing externally, did you switch the template in use for the phone in the EPM and rebuild the configs
  3. if you look in /var/log/xferlog so you see any ftp activity from the phone it will look as follows where xx.xx.xx.xx is the external ip address of where the phone is registering from. what i am looking for is any attempt by the phone to use ftp.

Wed Aug 17 07:28:06 2016 1 xx.xx.xx.xx 0 /tftpboot/0004f2306059-app.log a _ i g phone ftp 0 * i
Wed Aug 17 07:29:02 2016 1 xx.xx.xx.xx 473 /tftpboot/0004f2306059.cfg b _ o g phone ftp 0 * c
Wed Aug 17 07:29:02 2016 1 xx.xx.xx.xx 42340 /tftpboot/polycom/1/2345-12670-001.sip.ld b _ o g phone ftp 0 * i
Wed Aug 17 07:29:03 2016 1 xx.xx.xx.xx 32382 /tftpboot/0004f2306059-features.cfg b _ o g phone ftp 0 * c
Wed Aug 17 07:29:03 2016 1 xx.xx.xx.xx 3897 /tftpboot/0004f2306059-2010.cfg b _ o g phone ftp 0 * c
Wed Aug 17 07:29:03 2016 1 xx.xx.xx.xx 23585 /tftpboot/0004f2306059-sip-interop.cfg b _ o g phone ftp 0 * c
Wed Aug 17 07:29:05 2016 1 xx.xx.xx.xx 473 /tftpboot/0004f2306059.cfg b _ o g phone ftp 0 * c
Wed Aug 17 07:29:05 2016 1 24.23.72.67 42340 /tftpboot/polycom/1/2345-12670-001.sip.ld b _ o g phone ftp 0 * i
Wed Aug 17 07:29:06 2016 1 24.23.72.67 32382 /tftpboot/0004f2306059-features.cfg b _ o g phone ftp 0 * c
Wed Aug 17 07:29:06 2016 1 24.23.72.67 3897 /tftpboot/0004f2306059-2010.cfg b _ o g phone ftp 0 * c
Wed Aug 17 07:29:06 2016 1 24.23.72.67 23585 /tftpboot/0004f2306059-sip-interop.cfg b _ o g phone ftp 0 * c
Wed Aug 17 07:29:07 2016 1 24.23.72.67 0 /tftpboot/0004f2306059-boot.log b _ i g phone ftp 0 * i
Wed Aug 17 07:29:08 2016 1 24.23.72.67 0 /tftpboot/0004f2306059-app.log a _ i g phone ftp 0 * i

I think the phone is not pulling an IP when it’s remote. I see it pulling down all the files, but it will not register.

that can’t be. it can’t pull files via ftp without an ip address. after the phone has pulled all its files, have you looked at the config in the phone?
do you use vlans on your local config? or at the remote end?
are you sure you have setup a template for the remote phone properly.
why do you think the phone does not have an ip address?