Getting paging to work with a Cisco 8851

I’m really starting to realise why these phones are so cheap!

I’ve been trying to get paging working with these phones. I have successfully set up a paging group. It works perfectly with my Grandstream phone, not so much with the Cisco phones. They do seem to “recognise” that it is a different type of call as they ring twice and then stop ringing. The normal behaviour is to ring about 5 times before going to voicemail.

I’ve tried setting up a separate line on the phone that has auto answer set to 0, but it appears that the phones can only support one line. I keep getting authentication errors in the FreePBX logs when I try to assign two different extensions to the same phone, which eventually leads to a fail2ban trigger.

These are CUCM phones, not the MPP versions. I am using SEPMAC files (thanks Ted Mittelstaedt!) to configure the phones.

Thanks!

What do you mean by CUCM phones. I’d understand that to mean SCCP ones, and the FreePBX paging support relies on de facto SIP header usage.

1 Like

Hi Greensha,

For starters, you may have to run the usecallmanger patch for that, see:

Dialplan Extensions

However, here’s what I have found for paging info for FreePBX and these phones using chan_pjsip. Good luck!

For starters:

Paging works perfectly on my employer’s system with the 88xx phones - using the actual Cisco UCM version 10.5 code and the free “up to 50 devices per paging group” module that Cisco briefly had available in the10.x era (it’s a 3rd party commercial module that handed out a “teaser” free module then withdrew it once they realized it was useful without having to pay for the commercial version, lol)

However, it REQUIRES multicasting to work on the network. The Enterprise Cisco phone firmware does not seem to support Unicast paging - which I’m not 100% sure about since to me, unicast paging should work basically like Intercoming a bunch of phones - and intercoming does work on these phones. Anyway, wonder of wonders (naturally!) we have a Cisco Catalyst 2xxx and 3xxx switch fabric - and Cisco has multicasting disabled on that switch line, (at least, for routing), you have to buy a license for at least 1 of the switches in the fabric. I was able to find a used Catalyst with that license on it for cheap so after crossing my fingers and swapping the switch in, we got it running with the UCM. So I know for sure, that Multicast paging does work with the Enterprise firmware with the UCM. The next step is getting it working with Asterisk.

So first, you need to make sure that whatever switch you are using to plug in your phones that it supports multicasting. When I researched this a few years ago, it appeared that ONLY the Cisco Catalyst line was like this - all other enterprise switches I looked at just automatically included multicasting support. Only Ci$co would have thought to charge extra for what everyone else includes, naturally. Anyway, that’s step #1 (Let me know if you are running Catalysts and I’ll post configs on those)

Now, looking at FreePBX and Asterisk for Multicast Paging - step #2:

I can’t find any “official” FreePBX documentation for paging but I did find a few posts on it, that explain the difference between unicast paging and multicast paging:

Enable Paging on Grandstream GXP2160 with FREEPBX - Collaboration - Spiceworks Community

Multicast Paging Woes : r/freepbx

These strongly hint that Multicast paging does work in Asterisk - if it’s properly configured. (I DON’T know if the Grandstream phones only support Multicast, Unicast, or both kinds of paging nor what type you are using) The FreePBX interface apparently does not have a lot of configuration for unicast or multicast paging, so very likely, to get either of them to work with the Cisco phones you will have to go direct to the configuration files in Asterisk and modify them. FreePBX contains callouts for special config files that the GUI does not mess with, that are processed both prior and after the GUI-generated configuration files are processed by Asterisk. You may have to do what configuration you can do in the FreePBX GUI, view the result, then add in what the GUI does not supply.

I did run across an interesting source here for FreePBX:

GitHub - FreePBX/paging: Module of FreePBX (Paging) :: Allows creation of paging groups to make announcements using the speaker built into most SIP phones. Also creates an Intercom feature code that can be used as a prefix to talk directly to one person, as well as optional feature codes to block/allow intercom calls to all users as well as blocking specific users or only allowing specific users.

This is old, and I don’t know if it got folded into the main FreePBX distro, or whether it’s multicast or unicast paging.

So that means going to the Asterisk documentation and looking up Multicast paging. And this is what I found.

Multicast paging apparently first got added to Asterisk back in the 1.8 days per the following:

Asterisk Paging and Intercom System - All in One

Asterisk MulticastRTP channels - VoIP-Info

Asterisk cmd Page - VoIP-Info

It appears that originally this was named chan_multicast. There’s a vestige of that name in an early, now obsolete, Asterisk fork:

asterisk-opus/channels/chan_multicast_rtp.c at master · rillian/asterisk-opus · GitHub

There’s also mention in an early code review that apparently added unicast paging to chan_multicast here:

[asterisk-dev] [Code Review] 3981: chan_rtp: Add unicast RTP support to chan_multicast_rtp.

At some point in time, though, it appears chan_multicast got folded into chan_rtp, as it’s mentioned here:

Overview - Asterisk Documentation

Current RTP state of Asterisk - Asterisk Documentation

asterisk/res/res_rtp_multicast.c at master · asterisk/asterisk · GitHub

It SEEMS to still be actively developed, here’s a recent patch for example:

chan_rtp.c: MulticastRTP missing refcount without codec option · asterisk/asterisk@5216a11 · GitHub

I’m assuming that nowadays, whether or not a phone is setup for multicast paging or unicast paging is under the control of the FreePBX endpoint manager, according to the model of phone used. You didn’t say if you used Endpointmanager to provision your Grandstream phones. And, when a phone is provisioned for it, it Just Works with the FreePBX paging - meaning, the FreePBX end user really doesn’t need to understand anything about what’s going on under the hood with paging in FreePBX - it Just Works.

But with the Cisco phones running Enterprise firmware, well you DO need to know what’s going on under the hood - there’s an interesting and possibly useful explanation of this here:

Overhead and “Underchin” Paging (a.k.a. Public Address)

another example here:

Asterisk - Conferencing MulticastRTP and SIP channel together AFTER commands on run on the SIP channel

That talks a lot about the configuration needed for phones other than Cisco - one of those is the Linksys SPA phone - and I know that the SPA phones were used as the reference phones when Cisco was originally developing the 3PCC firmware for the Cisco phones. So, it may be that for the Cisco 8851 to Just Work with FreePBX paging, like your Grandstream, that you might have to buy the MPP firmware license, replace the Enterprise firmware on the phone with 3PCC, and then use the webinterface on the 3PCC firmware on the phone to set up paging outside of usecallmanager patch. Here’s a mention of setting auto-answer on the 79xx series:

Cisco 7940-7960 auto-answer config - VoIP-Info

Unfortunately, this requires the ability to telnet into the phone - which Cisco removed in the 7941 and later phones. But at least, it does show that “back in the day” someone DID do it successfully.

Hopefully there’s enough here to piece together what’s needed to get multicast paging working with these phones. I personally have NOT setup paging on my usecallmanager patched FreePBX 17 system - but if you want to post what you did in FreePBX to get your Grandstream phones working in a paging group, I’ll try duplicating it on my system and add in the XML configs mentioned on the usecallmanager patch website, and see if it works.

The 8851 model does not support SCCP there’s no SCCP firmware from Cisco for it. With the x8xx series Cisco sells a Multiprotocol Firmware license for around $40 that allows you to run the 3PCC firmware on the phone - which essentially turns it into a de-facto VoIP SIP phone, similar to Polycom, Grandstream, Yealink, Linksys, etc. Normally, the most common version of this phone seen in the wild runs Enterprise firmware which he is referring to as CUCM phones.

The x8xx models of Cisco phones that run Enterprise are very cheap on Ebay. The 3PCC variants of that model are very expensive. Someone could make a hobby income by buying batches of the Enterprise firmware phones, buying the licenses from Cisco, upgrading the phones, then reselling them back on Ebay - undercutting all the dumb bunnies on Ebay selling “3PCC/MPP Cisco phones”

I’m going try converting one of the phones over to MPP firmware and see if that makes it easier. One of the things I liked about doing with SEPMAC files, is that once I had got by configuration sorted out, I could just copy the SEPMAC file for each extension and change the extension and password fields. As you have already pointed out, the documentation is pretty sparse and I don’t really know enough about VOIP, SIP and FreePBX to start mucking around with the code… yet! I only started with this last week, and I’ve learned quite a bit - mostly how much I still have to learn!

I didn’t actually have to do anything to get the Grandstream phone to work with paging. I just entered in the FreePBX server info and extension credentials and it just worked. I haven’t had much time to play around too much with that phone yet.

That is actually the wisest course you will save yourself a lot of trouble. The only thing that isn’t supported is the DND button but that’s because Asterisk itself does not support the concept of a DND. For a “DND” you can just forward the phone to the voicemail extension that’s how DND is implemented in a lot of phones. Note that it is also possible to configure the MPP phones with an XML file but the XML is radically different than the Enterprise/callmanager firmware XML file.

The usecallmanager patch is the sort of thing you mess with if you have hundreds of phones, particularly if you want to basically say “up yours” to Cisco and particularly if you want to support videophones. Or, if you have antique model x9xx model Cisco phones because the only SIP firmware they supported was Enterprise. But, if you were a commercial outfit with a small number of phones, you can buy plenty of Polycom phones off Ebay pretty cheap, so if someone was doing a conversion from UCM to FreePBX or Switchvox, or a cloud system like PBXact, they would either convert Cisco x8xx model phones to 3PCC or they would replace phones with Ebay phones.

Any of the major online distributors such as CDW can sell you a 3PCC license. Cisco has the SKUs online

Note the following:

Unicast paging is 1-to-1. Meaning I hit the page extension and the system will page each individual device which can be resource intensive on the system.

So you couldn’t find Paging & Intercom or Page Pro guides?

As far as I know Asterisk doesn’t have Unicast support the closest you’re going to is Page which dials individual devices and adds them to a dynamic conference. As for the multicast configuration, it’s a one liner. You add the multicast IP and port in the proper field in the GUI and now you’re using multicast. Multicast paging is only supported in Page Pro for FreePBX GUI, otherwise you have to use custom dialplan.

Dial(MulticastRTP/basic/224.160.160.160:34560) << There’s your Asterisk configuration for multicast paging.

That is the official FreePBX Github repo for the Paging & Intercom module in FreePBX. It has been folded into FreePBX since it was introduced over a decade ago. That is the open source version you find in every FreePBX system and it supports basic paging. It will dial the individual devices you add to the group and pushes them into a dynamically created conference bridge.

Page Pro will expose and allow the use of multicast for the page group.

Yes, you can setup a phone to use Multicast (even without the PBX involved) if you have the EPM. However, you can still setup a phone to do multicast without the EPM. Many phones allow this setup within their built in GUI or via config files. You do not need the EPM to make multicast paging work on the phones.

Which phones would this be? Because I’ve used a variety of phones and they allow you to turn on DND at the phone level which then makes the phone return a 486 Busy or a 480 Temporarily Unavailable. The phone system then handles that reply (which Asterisk sees both as BUSY) and with FreePBX that could trigger various responses. By default it will attempt to send the call to the voicemail using the Busy greeting but only if a voicemail account exists. No voicemail, call is terminated. However, a BUSY response from the phone could trigger other actions depending on how the extension is actually programmed. It could route to Follow-Me, it could trigger Call Forward Busy, it could route to any destination set in the Busy Optional Destination.

Now some phones will have options for using Server side DND. In those cases there could be options for various systems like Broadsoft or Ribbon as well as a generic SIP server option. In these cases you can tell the phone that when the DND hard/soft key is press that it will send a feature code to the system to enable/disable DND at the server level.

1 Like

Then what was all that about in the Code Review 3981 I linked to which explicitly stated Add unicast RTP support to chan_multicast_rtp? The review said the diff was added to Asterisk.

That wiki entry says right on the top it’s only valid for FreePBX version 13 so I kind of slid it into the same history books that the other links came out of. Although, I do see it was “updated” in 2025 so possibly the statement it applies to FPBX13 is bogus - although the screenshots don’t look FPBX17ish. My bad.

Ah, that’s the secret sauce I was missing. Thanks! The other links I supplied some also contain the info for writing a dialplan entry for basic paging.

Like I said I don’t think the Cisco x8xx series will act as paging speakers any other way than multicast paging, so unicast paging is probably a non-op for them. At least on Enterprise firmware. 3PCC firmware, they probably do support it since I think they would need to for cloud PBXes.

Generally, when responding to questions on a FOSS project I try to give answers that don’t involve buying a commercial module. With FreePBX I really HAVEN’T investigated any of the commercial modules. Page Pro looks like a similar approach to how Cisco does it with their UCM - include basic restricted paging then you buy the commercial module for enhanced paging.

The 8851 only has 4 programmable softkeys. In fact the 6921, 7841 and most of Ciscos product lineup is this way. The common button arrangement is:

[redial][newcall][fwd all][recentcalls]

across the bottom although you can change any of them to [dnd] if you want or reorganize them. I also have some older rather basic Polycoms that are the same way - no separate DND button, you have to program it on a soft button. It’s not uncommon to replace DND soft button with forward all, and instruct users if they want a DND to just forward their phone to voicemail.

However the way I’ve seen it done in the wild by users is they just knock the volume of the ringer down to nothing when they are in meetings and so on and calls will ring until timeout then go to VM. “poor man’s DND” you might say. I’ve seen this even when they HAVE a phone with a DND button on it.

Paging on the Cisco instruments is one of those things on my bucket list to investigate, so I’m very interested to see what the OP gets working.

I bought a license to migrate from the Enterprise to the MPP firmware from Insight yesterday ($42). The order seems to have vanished into the ether, but I’ll give them a call on Monday and see what’s going on with that.

I did go through most of your links, but it seems that the real issue is that the 8851 doesn’t do auto-answer on demand. Here are a few lines from the FreePBX log:

[2025-03-30 13:57:58] VERBOSE[2422146][C-0000011f] app_stack.c: PJSIP/2006-00000141 Internal Gosub(autoanswer,s,1(Ring Answer,<uri>;answer-after=0)) complete GOSUB_RETVAL=

[2025-03-30 13:57:58] VERBOSE[2422146][C-0000011f] app_dial.c: PJSIP/2006-00000141 is ringing

[2025-03-30 13:58:03] VERBOSE[2422146][C-0000011f] app_dial.c: Nobody picked up in 5000 ms [2025-03-30 13:58:03] VERBOSE[2422146][C-0000011f] app_stack.c: PJSIP/2006-00000141 Internal Gosub(app-missedcall-hangup,2006,1) start

So it looks like the 8851 is recognizing that it’s a paging (or at least different than a regular call) because it hangs up after 5 seconds. Normally it rings for 15 seconds. Here is a log snippet from that a normal call:

[2025-03-30 14:13:32] VERBOSE[2425464][C-00000122] app_dial.c: PJSIP/2006-00000144 is ringing
[2025-03-30 14:13:47] VERBOSE[2425464][C-00000122] app_dial.c: Nobody picked up in 15000 ms
[2025-03-30 14:13:47] VERBOSE[2425464][C-00000122] app_stack.c: PJSIP/2006-00000144 Internal Gosub(app-missedcall-hangup,2006,1) start

The problem appears to be that the 8851 doesn’t correctly recognize the “answer-after=0” part of the SIP header (I’m new at this, so forgive me if I using the wrong terminology) but it does recognize that it’s not a regular call. In other words, the problem resides on the phone side of things rather than the FreePBX side.

There might be two solutions:

  1. If the 8851 has a different syntax for auto-answer, have FreePBX send that instead for those phones.
  2. If there is someway of getting into the phone code of config then have that change the phone’s behavior for that call so that auto-answer is set to 0 rings.

Hopefully, the MPP firmware with fix this. Even with the additional cost per phone, I think they are still pretty good value for money. The programmer/tinkerer in me wants to fix it the hard way though!

1 Like

I think that’s one of the things the usecallmanager patch does.

I have converted one of the phones to MPP software (which was a bit of an adventure in itself because of the convoluted way Cisco wants to do things - and because the Cisco cloud converter site was intermittently down last night).

Paging now works, but the phone is pretty much a blank canvas. I’m working my way through the settings and trying to create line and soft key functionality that the Enterprise phones had. There’s a good bit of documentation, but it’s all written for people who already know what they are doing!

I’m also trying to figure what setting is to change the display when an incoming call comes in.

This is what the Enterprise phone looks like, which I think is a nicer look…

vs the MPP phone

At some point during the process, I think I came across an XML configuration file for these MPP phones but I have been unable to re-find it. If anyone has a link to a config file, I would greatly appreciate it.

Thanks!

XML file here:
How to provision Cisco 8800 series 3PCC phones on FreePBX/PBXAct Endpoint Manager (EPM) - FreePBX Community Documentation - Sangoma Documentation

Note that the 3PCC firmware has a webinterface that can be used to configure the phone.

It might allow you to export the phone config via XML which will give you more info on the XML

Supposedly the Linksys SPA phone configs were used as a model for the MPP XML

According to the following:

7841-3PCC Auto Provision or Auto Registration from Config File - Cisco Community

"… you can go to http://ipaddress/admin/cfg.xml

Here you will see the available options for all tags and configure accordingly…"

And there is this:

XML Reference Guide for Cisco IP Phone Multiplatform Phones - Cisco

Cisco IP Phone 8800 Series Multiplatform Phone Administration Guide for Release 11.3(1) and Later - Access Control Configuration [Cisco IP Phone 8800 Series with Multiplatform Firmware] - Cisco

That was extremely helpful, thank you! I’ve now got all the phones working as I want them.

Great! Did you configure the phone with an XML file or via the webinterface. If XML would you post it?

I did it all with the web interface. I only have four phones, so once I figured out what all the correct settings were it was pretty easy.