EPM with Polycom Phones - Multiple Questions

I have some VVX 300 Polycom phones I want to provision with EPM and have run into a bunch of issues I need to solve:

  1. My FreePBX runs in Amazon EC2, so it can’t automatically discover the phones as they’re not on the same subnet. I can’t forward layer 2 traffic all the way there, but is there something I can do on my local router, such as setting a DHCP option, that will point them to the hostname of FreePBX as provisioning server so that if I plug in a factory-stock phone it’ll find it’s way?

  2. EPM only gives options for TFTP and FTP as provisioning server. I was wondering if support was planned for HTTPS or any other encrypted option? The Polycom phones themselves support HTTPS provisioning.

  3. I can’t get Auto-Answer for Intercom to work on the Polycom phones to save my life. It works perfectly fine with the default settings in iSymphony, but not with the *80 code in FreePBX.

Is it because I’m trying to use stock Polycoms without having them download their config from the FreePBX server first?

I’ve seen a lot of threads about the Polycoms not doing paging due to Polycom using a “ring answer” command instead of an “auto answer” command. There’s no shortage of threads about it but it doesn’t look like anyone has ever reached a consensus on the “proper” way to get it working. Am I supposed to edit the phone’s internal config? Or the paging database? Or a FreePBX custom config file? Here’s some of the threads in question:


Digium Phones - ring-answer instead of Ring Answer

I guess one thing I should hope to clarify first before I get into everything else…

Does EPM require finding phone MAC addresses with the network scan to be able to function in the first place? Or can I use a DHCP option or something to point the phones to the cloud PBX and still use the rest of the EPM provisioning features?

I figured out how to set the custom option 160 in my DHCP server so that the stock Polycom phones look to the FreePBX server for provisioning over TFTP.

But, I can’t complete a GET command from my PC. I also ran YUM INSTALL TFTP on the FreePBX server CLI, and I can’t complete a GET from there either; trying to download a MAC.cfg file inside the “/tftpboot” directory failed with a timeout.

Does anyone know why TFTP might be disabled out of the gate? I tried switching the EPM to provision with FTP, and I can’t connect with that either. The FreePBX firewall is allowing TFTP and FTP to Internal, which is the same as SIP, and if I manually connect phones they can make SIP calls fine.

TFTP is a reasonably huge security risk, so it is always disabled out of the box.

Once you get it set up, the /tftpboot directory needs to be set to read/write everyone everywhere, as does just about every file in the directory.

Part of the TFTP protocol is a check to make sure the reader and write back to the file to preserve updates made by the client.

Thank you, I made some progress, I noticed that even though I turned on FTP Provisioning in the EPM and set a user name and password, I still had to go into the System Admin and enable FTP in there.

It was weird because TFTP was enabled, and is still enabled, but still doesn’t work, apparently for the reasons you explained. For a “turnkey” GUI this thing seems to assume a lot of prior knowledge on my part.

Ah well, in any case I’m sure it’s better I’m using FTP over TFTP so I’ll just stick with FTP and disable TFTP formally in the GUI.

Now I can get into the FreePBX from the office with an FTP client, and it brings me right into the configs directory, but the stock Polycoms are doing a boot loop when I point them there. I’m a lot closer to figuring it out now at least.

That sounds like a mis-configuration or error in the config file.

Also, be sure you correctly specify the path for the file in the FTP configuration. If your FTP user and pass drop you into the dir correctly, the files will come from ./whatever. Permissions here are also critical. Be sure your user and read and write the files (download them to your machine and upload them back).

EPM does show Polycom Firmware 1.09 in it’s list, so I had put it into Firmware Slot 1…

Just to make sure, is that firmware preloaded into FreePBX or do I have to still download and install it into the server myself? I assumed it was built in because I only get a notification to install the software myself if I slot in a “custom firmware” like “0.00”

Quick question on your post… why would the user need write permissions to the cfg files? I believe you but I don’t understand what circumstance would require writeback, as opposed to always making changes from EPM then propagating them to the phones as read-only.

I always use TFTP, so I always make sure my user and read and write permissions. If I have those, I just don’t have problems after that.

For FTP, write access to firmware is probably not important, but I recall that the settings/config files do get written back to the server if changes are made on the phone. Of course, it’s been years since I’ve used a Polycom phone, so I could be remembering something completely different.

I got my Polycoms to provision, it was tricky but I figured out some stuff.

  1. FreePBX doesn’t seem to have firmware for VVX 300 phones built in.

  2. Normally to upgrade a Polycom’s firmware from Polycom’s own provisioning site, you point the phone to the voipt2.polycom.com site and path it to the right firmware directory (as of this writing, for VVX 300’s the path to the newest firmware is “voipt2.polycom.com/543”)

  3. But, since I had set DHCP Option 160 to point to my FreePBX, and the phone has to reboot to initiate the download, it made it essentially impossible to reach the Polycom servers because the DHCP would just point it back to the FreePBX server. I had to interrupt the phone’s boot process and tell it to use “Option 66” as the Provisioning server, instead of “Custom + Opt66”. There is no option 66 in my case, in other words I was causing the phone to “dodge” getting the DHCP Option for one time only, so that it gets a chance to grab the firmware from the Polycom path without getting redirected.

  4. After the Polycom upgrade finishes, go back in the phone and set it from “Option 66” back to “Custom + Opt66”, so that it gets the custom string from DHCP Option 160 and proceeds to nab the FreePBX supplied config for its MAC Address.

So that’s that. I guess I’ll look into actually getting the 543 firmware for the VVX 300 installed into my FreePBX so I can skip all that madness :slight_smile:

Correction, EPM can download the (almost newest) firmware, it was just failing to do so because I needed to run “amportal chown” for whatever reason.

On my SoundPoints, out of the box they seemed to like “AA” as the auto answer string. It was easier for me to adjust the config on the phones than it was to try adjust the PBX.

Some background education. The auto answer “command” is sent to the phone in the INVITE. Spin up tcpdump or ngrep and watch the SIP dialog when you attempt an intercom. You will see a field called Alert-Info, and the phone will read this string then take action depending on what it’s configured to do with said string.

Intercom and Paging by default, are set to stick “Auto Answer” into Alert-Info. I adjusted the Polycom configs accordingly, in sip.cfg;

<alertInfo voIpProt.SIP.alertInfo.15.value="Auto Answer" voIpProt.SIP.alertInfo.15.class="3"/>

As far as using EPM to download the latest firmware, I always choose 0.00. This allows you to use your own version of firmware. You will need to create a directory in the root of your FTP directory, /polycom/0/

For intercom, I believe the only thing I’ve had to edit is under the ringAutoAnswer.type to answer. For whatever reason, even though *80 sends “Auto Answer” for alert info, polycoms use the ringAutoAnswer, and setting that to answer should fix your intercom issues. You can find these values in Basefile Edits under SIP-Interop.cfg. Just make sure your values match below, and you should not have any issues.

       voIpProt.SIP.alertInfo.1.value="Auto Answer"

       se.rt.autoAnswer.name="Auto Answer"

   se.rt.ringAutoAnswer.name="Ring Auto Answer"

Keep in mind, Soundpoints and VVX use different versions of firmware so their configuration files are not compatible. Everything changed from 3.X to 4.X, and then again from 4.X to 5.X. Make 100% you are on the latest firmware before attempting what I have suggested. I am currently running 5.4.3 on all my installations. I use VVX400/410/600 exclusively.

Andrew Nagy @tm1000

I see you just fixed a bug directly relating to my question 3 with the Polycom paging auto-answer. Glad I checked the updates because I thought I was losing my mind trying to get that to work. Now the paging extension works with stock Polycom baseline config (as opposed to requiring what Moodinsk above posted).

I’m all set since the paging extension in FreePBX works, but I thought I’d let you know the *80 codes are still messed up:

If I dial *80 and an extension together (for instance *801242) I get “Your call cannot be completed as dialed” in the Asterisk voice. If I dial *80 on it’s own I get a fast busy signal, and if I dial *802222 I get a slow busy.

Asterisk CLI or it didn’t happen.

Coffee hasn’t kicked in yet; just messaged you the logs.

What is extension “2222” is it D&U mode? Is it sip? PJSIP? The part that is wrong is that DEVICES= is empty. Meaning there are no devices.


asterisk -rx ‘database show AMPUSER/2222’

Paste output here or in the PM you sent me. Also can I post your PM here for people to see in the future?

That’s the paging extension, sorry, I didn’t mean to confuse you with that. I was just explaining the different behavior. I think the only thing *80 “should” work with is with the normal extension, 1242, which it doesn’t.

Like I know *80 on it’s own doesn’t do anything nor would it make sense with 2222 being an intercom extension already I think. I just thought it notable that it was a fasy busy vs. slow busy. The *801242 doing “Your call cannot be completed as dialed” is the only problem, I just figured the other behavior might add some insight. You’re right that the logs are much better than my explaining busy signals :slight_smile:

Ah thanks. Yes it has a pattern match of “_80.” so it’ll catch anything. Even if it doesn’t exist. This reduces reload time and is nicer for asterisk. You can open a bug report on the fact that *80 should do something else for non extensions (what I am not sure, maybe “that is not a valid extension”)

However you are still having problems with extension 1242? *801242

So maybe let’s run: asterisk -rx ‘database show AMPUSER/1242’

asterisk -rx ‘database show AMPUSER/1242’

/AMPUSER/1242/answermode : disabled
/AMPUSER/1242/cfringtimer : 0
/AMPUSER/1242/cidname : Megapath Phone Test
/AMPUSER/1242/cidnum : 1242
/AMPUSER/1242/concurrency_limit : 3
/AMPUSER/1242/device : 1242
/AMPUSER/1242/dictate/email :
/AMPUSER/1242/dictate/enabled : disabled
/AMPUSER/1242/dictate/format : ogg
/AMPUSER/1242/dictate/from : [redacted]
/AMPUSER/1242/followme/changecid : default
/AMPUSER/1242/followme/ddial : EXTENSION
/AMPUSER/1242/followme/fixedcid :
/AMPUSER/1242/followme/grpconf : DISABLED
/AMPUSER/1242/followme/grplist : 1242
/AMPUSER/1242/followme/grptime : 20
/AMPUSER/1242/followme/prering : 7
/AMPUSER/1242/hint : PJSIP/1242&Custom:DND1242,Cu stomPresence:1242
/AMPUSER/1242/intercom : enabled
/AMPUSER/1242/intercom/override : reject
/AMPUSER/1242/language :
/AMPUSER/1242/noanswer :
/AMPUSER/1242/novmpw : yes
/AMPUSER/1242/novmstar : yes
/AMPUSER/1242/outboundcid :
/AMPUSER/1242/password :
/AMPUSER/1242/queues/qnostate : usestate
/AMPUSER/1242/recording :
/AMPUSER/1242/recording/in/external : dontcare
/AMPUSER/1242/recording/in/internal : dontcare
/AMPUSER/1242/recording/ondemand : disabled
/AMPUSER/1242/recording/out/external : dontcare
/AMPUSER/1242/recording/out/internal : dontcare
/AMPUSER/1242/recording/priority : 10
/AMPUSER/1242/ringtimer : 0
/AMPUSER/1242/tc/hint :
/AMPUSER/1242/tc/indexes :
/AMPUSER/1242/voicemail : default
38 results found.