Provision Cisco CP8841 to FreePBX using Chan-SCCP

Sorry but again someone down the rabbithole, a question about setting up a Cisco CP-8841.

Goal: Connect a Cisco CP-8841 (with enterprise firmware) to FreePBX.
(and have regular features like, call, call_forward, Voicemail, BLF)

Background:
I have been running a freePBX server for a while with a bunch SPA504G in SIP mode
and thought to replace one or a few phones with the CP-8841.
As many before me I discovered that under the hood there are two versions of the CP-4481.
One with Cisco Enterprise firmware and the 3PPC. I have the Enterprise firmware.

So even though I’am aware I can convert them, and will if this is the only option.
I felt confident enough to try to get them to play nice with FreePBX and in Sccp mode.

So I installed a fresh FreePBX in a VM.

PBX Version:16.0.40.7
PBX Distro:12.7.8-2306-1.sng7
Asterisk Version:18.20.2
Core_sccp 4.3.5
Sccp Manager v14.5.0.4
Firmware phone: sip88xx.11-0-1-11

Enabled TCP transport in FreePBX

Installed Chan-sccp per the github wiki:
https://github.com/chan-sccp/chan-sccp/wiki/FreePBX_Installation

and then the sccp_manager plugin in the GUI.

Provisioning goes throught the FreePBX build-in TFTPServer, and the phone picks-up the
SEPmac file and carries it out. Because when I send it a SEPmac file with SIP registration.
It does work (although the CP-4481 on SCCP firmware is very limited in SIP mode).

What doesn’t work is getting it to register with Chan-SCCP.
The good news is I don’t see any error’s in the Asterisk logs,
but that’s also the bad news. I have no idea where/what to troubleshoot.
The phone just reports “Unprovisioned” after reading the SEPmac, AppDialRules and dialplan.

Could some of you guru’s “dicko”?, give me some leads how to proceed.
Or query me for some logs/screenshots for details

I have worked with chan_sccp some. I don’t know that I would recommend it for more modern endpoints that have 3pcc SIP capabilities. My use was with old 79xx enterprise phones and only for fun/pain.

First things first, make sure you have tcp port 2000 (sccp) open through the firewall.

1 Like

Thank you for you’re answer.
I thought about that too:
iptables-save | grep '2000 ’
-A fpbxsvc-acf8f2819af64f8e -p tcp -m tcp --dport 2000 -j ACCEPT
-A fpbxsvc-acf8f2819af64f8e -p udp -m udp --dport 2000 -j ACCEPT

The ports were already added to the exceptions. Ichecked anyway.
But you are right it seems the packets never make it to the server.
Someting is blocking traffic, or the phone is reaching out the wrong way.

I have used tcpdump:
tcpdump -nli eth0 host 192.168.1.47 and 192.168.1.205 -w /tmp/Caputure-1 -s 65535

And the capture file imported in WireShark.

Communication between FreePBX-sever and Phone.
This is the first time I look at someting like this. But from what I can tell about it.
The communication on the TFTP protocol is correct. Files are requested,
and when found transferred like the SEPmac file.

But all the request from the server TCP 6970 seem not to be answered by the phone.
8 20.739483 192.168.1.205 > 192.168.1.47 TCP 54 6970 → 51331 [RST, ACK] Seq=1 Ack=1 Win=0 Len=0
It seems the replay al have a packet with Lenth 0.
After what you see on the screenshot it just repeats.

What am I supposed to see on a SCCP Cliënt?
Thanks.

TCP 6970 is also used for provisioning. If you are using TFTP you can ignore it. You should see traffic from your phone to PBX on TCP port 2000. If you don’t, double check the config file to make sure it has the correct address.

Oh my goodness you have been sent down the mother of all rabbitholes.

The CP-8841’s do not run SCCP. Cisco has actually deprecated that protocol. They run SIP. I don’t even think there is SCCP firmware available for those phones.

Plug your phone into a PoE port and while it’s at the grey screen saying provisioning, press the gear button and then go to Phone Information and it will show what Enterprise firmware is loaded on it. You will likely see sip in the name, there.

The OLDER phones like the 8_NINE_41’s (8941) and the other x9xx model phones are the ones that run SCCP firmware. However, Cisco did release SIP firmware for them (now, unavailable since Cisco deprecated those phones - unavailable from Cisco that is but still available from your favorite Russian pirate site, lol)

But the 88xx’s and 78xx models run SIP and you can simply create a generic pjsip extension for them and go to town. However, I don’t think anything other than straight calling works on them because the SIP firmware on those phones is “Ciscoified” meaning the call control (forwarding, message lights, etc.) is completely alien to how Asterisk/FreePBX does it.

Now, how do you get the BLF functions working on those phones? Simple. You have 1 of 3 options.

Option #1 is to patch Asterisk in FreeBSD. There’s 2 ways. First is to setup a straight Asterisk system and apply the usecallmanager patch to that. Meaning, recompile asterisk. Then follow the advanced guide on the Sangoma help site to install the FreePBX GUI on top of that:

Installing FreePBX GUI Manually (Experts Only) - FreePBX Open Source - Sangoma Documentation (atlassian.net)

The second way is to install FreePBX and it’s version of Asterisk then download the FreePBX rpm’s and patch them then recompile FreePBX’s Asterisk. The current usecallmanager patch seems to patch chan_pjsip not the older antique sip so ignore the cautions you see in older posts on this forum. The instructions to do that are here:

[2023 FULL GUIDE] Applying UseCallManager Patch for FreePBX - YouTube

and here:

https://sangomakb.atlassian.net/wiki/spaces/FCD/pages/10551648/Patching+Asterisk+16+on+FreePBX+16+with+USECALLMANAGER.NZ+Presence+for+Cisco+SIP-Firmware+Phones

Option #2 is to buy the licenses for the 3PCC firmware from Cisco and replace the Enterprise firmware with 3PCC. The firmware license is inexpensive, under $50 if you get it from a large Cisco reseller like CDW. It puts a webserver on the phone and you can configure the phone with a web browser like any Polycom or other phone, no need to muck about with XML files. I will put some more info on this at the bottom of this post.

Option #3 is to use SCCP per the following:

Warning though - those instructions are older. They may not apply to current FreePBX. But supposedly that driver has now included SIP support and works with the x8xx phones. I have never tried it, as I think the focus has been to use it for the older SCCP phones.

An interesting comment in this thread here:

Register Cisco Phones after SCCP Manager Install - FreePBX / Endpoints - FreePBX Community Forums

is:

“The Asterisk folks I’ve talked to lately want to stress that Cisco (especially 79xx) phones using the SIP Image should be outlawed. I support that position. They are, without exception, the hardest phone to configure and working reliably, and even once installed still don’t work as well as the phones in Skinny mode.”

Sadly the issue with Option #3 is that the biggest supporter of the Chan-SCCP approach died a couple years ago. You are going to have to do some more digging to go that route with old phones. But, I think you are better off with the newer phone you have, anyway.

Assuming you got your 8841 off Fleabay, where right now the average cost of those is running under $30, that plus the license file for 3PCC is really NOT a bad deal for a videophone. And since Cisco just announced EOL for those phones, it’s likely that the price of them is going to crash on the Fleabays of the world and we will be awash in cheap videophones.

I have a site of over 300 Cisco phones of various x8xx models and I estimate cost of shifting them to 3PCC is likely going to run us somewhere in the neighborhood of $20k but I’m still favoring doing that if I can use the phones with PBXact instead of having to pay Ci$co for a new UCM or go to webex cloud calling (ick)

The sites that really should be seriously considering the usecallmanager patch are the ones who have a large number of older SCCP phones and the willingness to reflash those to Enterprise SIP because the older phones CANNOT run 3PCC firmware. You can buy refurb Cisco 8945’s off Fleabay in quantity for $11 a phone, so if you are willing to go that route, you can really have a slick FreePBX system for very little money. Or, with more work, consider the SCCP driver and leave the phones running the SCCP firmware.

The irony of it to me, personally, is that when I was younger and had no money but plenty of time, the cost of Cisco devices, even the older SCCP ones, was far beyond my reach to justify buying them and messing about with the callmanager patch. But today, I’m older, and have a big budget, and the newer and older Cisco phones are cheap as dirt, but now I can’t justify buying them because my time cost is too high to fool with them. Sometimes the Universe she likes to play jokes on us. Sigh.

But, if you DO want to go down the usecallmanager or chan-sccp patch road with dirt cheap Cisco videophones that cost $11 a phone, I’ll be green with envy. There’s even a provisioner someone wrote for the Enterprise phones that is much slicker than EPM for these phones:

Cisco Provisioning Manager - Create Device (FreePBX UseCallManager) - YouTube

Now, getting back to your phone - if you do go forward with buying the 3PCC license from Cisco for it, instructions are on Cisco’s website as to how to upgrade the phone - you take the license key, load it into Cisco’s website along with the mac address of your phone, and then log the phone into Cisco’s site where it downloads and installs the key and the firmware. I won’t go into that further, Cisco explains it well.

Once it’s upgraded, then getting it to work on FreePBX is easy. Sangoma DID have a document for doing this but sometime during the last couple days - it disappeared off their website. They are messing with that site. To find it, search Bing for:

“use cisco 3pcc phones on FreePBX”

the first listing is this link:

https://support.digium.com/s/article/FreePBX-Documentation-How-to-provision-Cisco-8800-series-3PCC-phones-on-FreePBX-PBXAct-Endpoint-Manager-EPM

But right now - it’s broken. You can pull the document out of Bing’s cache.

1 Like

Thank you very much for the detailed reaction:

Much of the info you supplied was in a way more or less known to me:
I also had reduced my options:

  1. Go for Usecallmanger patch.
    (I found it very invasive as it has to be reapplied every update of Asterisk).

  2. Buy the 3PPC license. treat the 8841 same as the SPA504G.
    (And feed them some language, and tone files for customization via TFTP)

  3. Go the Chan-SCCP way. All the functionality I am after is in there.
    (Just a driver change and the manual seems very doable. Included is a provisioning tool for the XML
    It was en still is my preferred way)

  4. Run the Enterprise firmware on a “Ciscoified” (love it :slight_smile: ) SIP extension.

Option #1 I did not know it patched the newer Chan_pjsip, thanks for letting me know.

Option #2 This is my backup plan.

Option #3 You are right, the current FreePBX and the (outdated?) install instructions do leave me
with a non working setup.

Option #4 NOT AN OPTION, very limited functionality.

I already spend more time on this then I want to admit. Somehow I feel by now I am entitled that is
should work. Since I tried so hard. Haha.

Maybe I convert the bunch and leave at least one on Enterprise firmware so I can once in a while return to this demon to scratch my head on it.

I have checked with Tcpdump specially for port 2000, and there is not a single form of communication on it.

If @tmittelstaedt 's information is correct then you cannot use SCCP. I haven’t looked into it. I’m just telling you what happens if you have an actual SCCP endpoint, which it appears you do not.

The current chan-sip driver is supposedly dual sccp/sip with cisco enterprise call control. It sounds like it’s author and the usecallmanager patch author are working towards the same thing I guess. But I have not tried messing with it on a current freepbx install.

You are correct then most current version of Chan-SCCP, has
support SCCP old style, SIP, and the Enterprise version of Cisco.

The Cisco 88xx series are “Officially” supported and listed by Chan-SCCP.

So I dug a deeper hole en setup a new VM with USECALLMAGER patch.

I applied the patch for Asterisk 18.20.0.

Quite a setup to compile Asterisk from source.
Even though tmmitlsteadt mentioned the patch now also applies to PJSIP.
I can assure you it doesn’t. It needs the Sip legacy and SIP 5160 port to
communicate.

The Youtube video says to set the Sip_channel driver exclusive to Sip_legacy.
(This would be unworkable, all newer phones and softphones wouldn’t work)
I run now both drivers enabled, and guess what:

The phone registerd and actually works with all it’s features.

  • Redial, Hold, Transfer, DND (Do not disturb)
  • Contact’s, Wallpapers, Ringtones
  • Voicemail

A Softphone on pjsip also works.
So after this much needed succes I’am still looking to Chan-SCCP,
I am confident the produced SEPmac from Chan-SCCP Manager is incorrect.
It’s looks mutilated however I don’t know how to create one from scratch.
Specially the authentification part.
Since the other methodes all uses SIP to authenticate, what does Chan-SCCP use.

Does anyone have a sample SEPmac for Chan-SCCP and preferable a Cisco 88xx one?

I also want to thank all the input from community so far.

Well that’s cool! I wonder how it differentiates between the 2 drivers on port 5160?

As for the dependency on chan_sip, your building Asterisk 18 which still included chan_sip and an older version of the usecallmanager patch. The latest version of Asterisk, version 20, has chan_sip removed and what I read was that the usecallmanager patch for version 20 was updated for pj_sip

Note that even if the version 20 patch did require chan_sip, it’s still here:

InterLinked1/chan_sip: Maintained version of the original chan_sip Asterisk SIP channel driver (github.com)

which is a fork of it from the master branch. That concerns me specifically since I use an old Cisco router with voice cards as a voice gateway - and that device and it’s firmware only works with chan_sip.

If you really want a thrill apparently the old OSS Endpoint manager was revived from Zombie sleep:

Introducing OSS Endpoint Manager for FreePBX 16 & Incredible PBX 2027 – Nerd Vittles

You could try installing it from the above instructions…it might even produce a working xml file! :slight_smile:

I DON’T know if that’s the original contributed FreePBX OSS Endpoint Manager code that ended up being ignored and suffering from bitrot, or if the IncrediblePBX guys took that code and brushed it up a bit. To use it you have to uninstall the commercial endpoint manager, Settings, module admin, click it so it drops down, then uninstall, process

There is also the Cisco Provisioning Server, here:
Wriar/Cisco-Provisioning-Server: An open-source node server to provision Cisco phones and devices. (github.com)

I put a link to the youtube video for it in the prior post.

The user who created that was unaware of the old OSS Endpoint Manager code and did his own thing. It’s actually very cool even though all menu items don’t work, the key ones do. It replaces the TFTP server, essentially. I put setup instructions for it into a post in “Issues” on that github archive.

My understanding is that on Cisco Enterprise phones all of the models use the same general format for the SEPmac. Here for your amusement is an actual file I’ve used to get a Cisco 6921 running SIP firmware registered in to a non-usecallmanagerpatched FreePBX system. I’ve even included the password because, of course, its fake:

$ cat SEPA41875F03F7D.cnf.xml
<device>
   <deviceProtocol>SIP</deviceProtocol>
   <sshUserId>cisco</sshUserId>
   <sshPassword>cisco</sshPassword>
   <devicePool>
      <dateTimeSetting>
         <dateTemplate>M/D/Ya</dateTemplate>
         <timeZone>Pacific Standard/Daylight Time</timeZone>
         <ntps>
              <ntp>
                  <name>pool.ntp.org</name>
                  <ntpMode>Unicast</ntpMode>
              </ntp>
         </ntps>
      </dateTimeSetting>
      <callManagerGroup>
         <members>
            <member priority="0">
               <callManager>
                  <ports>
                     <ethernetPhonePort>2000</ethernetPhonePort>
                     <sipPort>5060</sipPort>
                     <securedSipPort>5061</securedSipPort>
                  </ports>
                  <processNodeName>172.16.1.16</processNodeName>
               </callManager>
            </member>
         </members>
      </callManagerGroup>
   </devicePool>
   <sipProfile>
      <sipProxies>
         <backupProxy></backupProxy>
         <backupProxyPort></backupProxyPort>
         <emergencyProxy></emergencyProxy>
         <emergencyProxyPort></emergencyProxyPort>
         <outboundProxy></outboundProxy>
         <outboundProxyPort></outboundProxyPort>
         <registerWithProxy>true</registerWithProxy>
      </sipProxies>
      <sipCallFeatures>
         <cnfJoinEnabled>true</cnfJoinEnabled>
         <callForwardURI>x-serviceuri-cfwdall</callForwardURI>
         <callPickupURI>x-cisco-serviceuri-pickup</callPickupURI>
         <callPickupListURI>x-cisco-serviceuri-opickup</callPickupListURI>
         <callPickupGroupURI>x-cisco-serviceuri-gpickup</callPickupGroupURI>
         <meetMeServiceURI>x-cisco-serviceuri-meetme</meetMeServiceURI>
         <abbreviatedDialURI>x-cisco-serviceuri-abbrdial</abbreviatedDialURI>
         <rfc2543Hold>false</rfc2543Hold>
         <callHoldRingback>2</callHoldRingback>
         <localCfwdEnable>true</localCfwdEnable>
         <semiAttendedTransfer>true</semiAttendedTransfer>
         <anonymousCallBlock>2</anonymousCallBlock>
         <callerIdBlocking>2</callerIdBlocking>
         <dndControl>0</dndControl>
         <remoteCcEnable>true</remoteCcEnable>
      </sipCallFeatures>
      <sipStack>
         <sipInviteRetx>6</sipInviteRetx>
         <sipRetx>10</sipRetx>
         <timerInviteExpires>180</timerInviteExpires>
         <timerRegisterExpires>3600</timerRegisterExpires>
         <timerRegisterDelta>5</timerRegisterDelta>
         <timerKeepAliveExpires>120</timerKeepAliveExpires>
         <timerSubscribeExpires>120</timerSubscribeExpires>
         <timerSubscribeDelta>5</timerSubscribeDelta>
         <timerT1>500</timerT1>
         <timerT2>4000</timerT2>
         <maxRedirects>70</maxRedirects>
         <remotePartyID>true</remotePartyID>
         <userInfo>None</userInfo>
      </sipStack>
      <autoAnswerTimer>1</autoAnswerTimer>
      <autoAnswerAltBehavior>false</autoAnswerAltBehavior>
      <autoAnswerOverride>true</autoAnswerOverride>
      <transferOnhookEnabled>false</transferOnhookEnabled>
      <enableVad>false</enableVad>
      <preferredCodec>g711ulaw</preferredCodec>
      <dtmfAvtPayload>101</dtmfAvtPayload>
      <dtmfDbLevel>3</dtmfDbLevel>
      <dtmfOutofBand>avt</dtmfOutofBand>
      <alwaysUsePrimeLine>false</alwaysUsePrimeLine>
      <alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail>
      <kpml>3</kpml>
      <natEnabled>false</natEnabled>
      <natAddress></natAddress>
      <phoneLabel>828</phoneLabel>
      <stutterMsgWaiting>0</stutterMsgWaiting>
      <callStats>false</callStats>
      <silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
      <disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig>
      <startMediaPort>16384</startMediaPort>
      <stopMediaPort>32766</stopMediaPort>
      <sipLines>
         <line button="1">
            <featureID>9</featureID>
            <featureLabel>test</featureLabel>
            <proxy>172.16.1.16</proxy>
            <port>5060</port>
            <name>828</name>
            <displayName>828</displayName>
            <autoAnswer>
               <autoAnswerEnabled>2</autoAnswerEnabled>
            </autoAnswer>
            <callWaiting>3</callWaiting>
            <authName>828</authName>
            <authPassword>eatmegoo</authPassword>
            <sharedLine>false</sharedLine>
            <messageWaitingLampPolicy>1</messageWaitingLampPolicy>
            <messagesNumber>*97</messagesNumber>
            <ringSettingIdle>4</ringSettingIdle>
            <ringSettingActive>5</ringSettingActive>
            <contact>828</contact>
            <forwardCallInfoDisplay>
               <callerName>true</callerName>
               <callerNumber>true</callerNumber>
               <redirectedNumber>false</redirectedNumber>
               <dialedNumber>true</dialedNumber>
            </forwardCallInfoDisplay>
             </line>
      </sipLines>
      <voipControlPort>5060</voipControlPort>
      <dscpForAudio>184</dscpForAudio>
      <ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
      <dialTemplate>dialplan.xml</dialTemplate>
   </sipProfile>
   <commonProfile>
      <phonePassword></phonePassword>
      <backgroundImageAccess>true</backgroundImageAccess>
      <callLogBlfEnabled>1</callLogBlfEnabled>
   </commonProfile>
   <loadInformation>SIP69xx.9-4-1-3SR3</loadInformation>
   <vendorConfig>
      <disableSpeaker>false</disableSpeaker>
      <disableSpeakerAndHeadset>false</disableSpeakerAndHeadset>
      <pcPort>0</pcPort>
      <settingsAccess>1</settingsAccess>
      <garp>0</garp>
      <voiceVlanAccess>0</voiceVlanAccess>
      <videoCapability>0</videoCapability>
      <autoSelectLineEnable>0</autoSelectLineEnable>
      <webAccess>1</webAccess>
      <spanToPCPort>1</spanToPCPort>
      <loggingDisplay>1</loggingDisplay>
      <loadServer></loadServer>
   </vendorConfig>
   <versionStamp>1143565489-a3cbf294-7526-4c29-8791-c4fce4ce4c37</versionStamp>
   <networkLocale>United_States</networkLocale>
   <networkLocaleInfo>
      <name>United_States</name>
          <uid>64</uid>
          <version>1.0.0.0-1</version>
   </networkLocaleInfo>
   <deviceSecurityMode>1</deviceSecurityMode>
   <authenticationURL></authenticationURL>
   <directoryURL></directoryURL>
   <idleURL></idleURL>
   <informationURL></informationURL>
   <messagesURL></messagesURL>
   <proxyServerURL></proxyServerURL>
   <servicesURL></servicesURL>
   <dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig>
   <dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
   <dscpForCm2Dvce>96</dscpForCm2Dvce>
   <transportLayerProtocol>2</transportLayerProtocol>
   <capfAuthMode>0</capfAuthMode>
   <capfList>
      <capf>
         <phonePort>3804</phonePort>
      </capf>
   </capfList>
   <certHash></certHash>
   <encrConfig>false</encrConfig>
</device>
$

So was not buying the 3PCC update worth it? :slight_smile:
Let’s see, 10 hours of development time @ $250 an hour vs $50. Yup, definitely worth it! :slight_smile:
Don’t worry, as JRR Tokien said in The Hobbit, Dragons love wasting time with puzzles. And yes I am green with envy.

Sangoma did find the documentation for 3PCC

https://sangomakb.atlassian.net/wiki/spaces/FCD/pages/10420439/How+to+provision+Cisco+8800+series+3PCC+phones+on+FreePBX+PBXAct+Endpoint+Manager+EPM

There’s a couple sample 88xx SEP files here:

CP-8851 on Asterisk - Internet Connectivity & Telecom - Spiceworks Community

And one here with the formatting munged:

Help with converting a CP-8841-K9 to 3CPP to use with asterisk : r/Cisco (reddit.com)

Plus some other good links in that last post on creating the file by hand.

So was not buying the 3PCC update worth it? :slight_smile:

Let’s see from a money point of view you are so right it wasn’t.
But see it from this side: I had 10 hour (conservative estimate) :wink: of fun.
We gained a lot of new knowledge en experience, that wil last a lifetime.

And my core business is not IT, but I went through the same proces before.

  • VMware server systems
  • Windows Server editions
  • SIP phone systems.
  • VPN site-to-site LAN with Layer 3 software based switch.
    And for each of those tasks I could have hired a good IT guy for € 250,- an hour
    and I would have to call him each time someting needs to be done. Since we didn’t get the knowledge.
    That’s how I justify it to myself, (and my wife) LOL.

I might still go for the 3PCC license but this Cisco CP-8841 Enterprise thingy that was personal.

The Chan_SIP vs PJSIP driver
Chan_SIP is on 5060 and 5061 secure
PJSIP is on 5160 and 5161 secure
This I stumbled upon because the LOG kept saying “No matching endpoint found…” turned out the phone was trying the PJSIP driver. And at first glance in the SEPmac the ports are quite the same.

[2024-03-03 11:33:40] NOTICE[2401] res_pjsip/pjsip_distributor.c: Request ‘REGISTER’ from ‘sip:[email protected]’ failed for ‘192.168.1.47:51402’ (callid: [email protected]) - No matching endpoint found after 30 tries in 0.162 ms

Thank you very much for posting the SEPMac. Will try to see if Chan-SCCP want’s to respond.
Now since you showed me a future for USECALLMANAGER Patch it became more attractive,
Chan-SCCP seems currently unmaintained, and is in a buggy state.
You’re knowledge about these Pones is admiriable, you must be the $ 250,-/h guy. :smiley:

I wish every IT worker I hire thought like that. There’s no substitute for doing it in house. Not only do you get the institutional knowledge your people are actually interested in their jobs. It’s a larger up front cost (I just approved a $1500 training course last week for 2 of my people) and it takes them somewhat offline for a while but every dollar you invest in learning is paid back tenfold or more and ultimately the stuff isn’t crashing every day.

Besides, I’m at the point where most of the vendors I outsource anything to, can’t teach me anything. Their main use is getting something done faster since I can work them in parallel, but usually not better.

1 Like

So for future reference, and in short.

Ted is right. The way I see it you have 4 options with a Cisco 88xx series Phone on enterprise firmware.

  1. Leave it the way it is.
    (Phones will register fine with Asterisk/FreePBX. Basic calling works. Some of the line-keys and almost non of the Soft-keys work. But hey it looks great on you’re desk.)

  2. Buy the 3PCC license from Cisco
    (Not a bad deal. For about €/$ 50,- you buy yourself a lot of leisure time.
    (And it will be a recurring investment, if you look at other options)

  3. Use Chan-SCCP driver combined with SCCP-Manager in FreePBX.
    (I stopt troubleshooting this, and did not get it to work. It seems no longer maintained and notice more people run into the same issues. Following the full steps in the Wiki a vanilla FreePBX 15 and 16 will not get you a working setup).

  4. Apply USECALLMANAGER patch to Asterisk. It works right out of the box.
    (Caveats, every update that involves Asterisk. You needs to re-apply the patch and compile from source. That’s even with a script 15 mins of work. You have to manually provision phones with the XML files. There are some tools to help you with it, but it’s not integrated in FreePBX)

This is the opposite way round from the normal FreePBX defaults, e.g. see CHAN_SIP technology listening on Port 5160

Also note that having anything other than 5060 (5061) as a default only happens if you have more than one SIP protocol driver.

Oops you are correct, my mistake I mixed them.
pjsip_chan 5060 and 5061
and Legacy SIP 5160 and 5161

This was a clean install from freePBX. I did not change the ports,
might have been done by the USECALLMANAGER patch, it does add a extra driver.

From my point of view this makes it somewhat easier to troubleshoot.

If you do not want updates and patches from FreePBX to remove the usecallmanager patch you can exclude Asterisk from being patched:

nano /etc/yum.conf

and add the line:

exclude=asterisk1*

This will allow you up keep freepbx up to date without asterisk upgrading

I don’t know if anyone would be interested in the following but:

I installed the latest FreePBX 16 from it’s download ISO on to a virtual host under ESXi 5.5 then I followed the instructions in this video:

to apply the usecallmanager patch to it. Then I shut down the FreePBX guest, and made a copy of it. This was before activating it or doing any configuration to it (including excluding asterisk from updating by modifying the yum.conf file)

I don’t know how many people are stil using ESXi (after Broadcom bought VMWare and started bleeding the company) espically the older ESXI 5.5, but if anyone is interested I can put the copy up for downloading.

One rather amusing thing is that you can now buy genuine Cisco UCS200 chassis under Ebay for less than $100 and boot ESXI5 on those or Cisco UCS220 chassis for around the same amount, and boot ESXI 5.5 on those (those versions of ESXi have support for the hardware RAID cards in those machines) You could then install FreePBX as a guest OS on them, then install a SECOND Linux image on them and use that as a Cisco phone provisioning/tftp server by running the Cisco Provisioning Server (mentioned above) on them. The UCS200 chassis has a bug in it where the RAID card is positioned too close to the CPU heatsink which will overheat the card and after a number of years cause it to start getting flakey, (which you can tell by the brown spot that forms on the RAID card) but those cards are $5 or less off Ebay. Then you would have a drop-in replacement for a real Cisco UCM without all of the licensing nuisance. LOL. The UCS200 can use off-the-shelf 3.5 SATA hard drives and since those can’t run ESXi8 (required for the latest Cisco UCM) Cisco has EOLed them and the used market is flooded with them, along with the older 89xx videophones which I’ve seen as cheap as $11 a phone. Too funny.

Anyway, what I’d be interested in finding out is if people would rather have this available as a Docker image under Windows Services for Linux, or under HyperV.

One thing about building Asterisk with the usecallmanager patch - I built this on a bit of a slower machine that let me read the stuff as it was being compiled - and I swore that I saw skinny.c and various other files with “sccp” and “chan-sccp” in their names compiled into Asterisk. So that patch must have some more dependencies in it than a surface view reveals.

As for your option #3 of use Chan-SCCP, that driver, GitHub - chan-sccp/chan-sccp: Replacement for the SCCP channel driver in Asterisk. Extended features include Shared Lines, Presence / BLF, customizable Feature Buttons, and Custom Device State. Visit our discussion mailing list for help and join us as a developer if you like. certainly has staying power. There’s a post from 3 weeks ago from someone in the issues who successfully built it under Asterisk21 and provided some patches to get it to compile. It boggles my mind that people would still insist on using those older Cisco phones with the skinny protocol instead of changing the firmware over to SIP but some do.