Cisco 7960 Phones - No Text CID on Internal Extensions

So management had me use our old Cisco 7960 phones for the majority of our users. They work fine - flashed them to SIP & they take right off. Today (2 months after installing them) a user vented on me about how much the new phone system sucks; turns out that her biggest gripe is that when she calls another extension internally, the text name associated with the extension does not come up on her phone, only the extension. Caller ID works calls coming in from our SIP trunk. (To me, this doesn’t seem like it’s all that big of a deal, but it’s extremely annoying to her.) I’ve been unable to find any setting to control this and wonder if it’s a limitation of the Cisco phone, though they showed the name when used with SCCP & CUCM. Anyone have any ideas?

My Chan-SCCP-B implementations have full caller ID for both internal and external numbers. I just installed a new one last weekend, including a FreePBX management module. Search for chan-sccp-b on GitHub (or look for some of my other posts) as well as the SCCP Manager from PhantomVI.

The SIP image for these phones uses every bit of the CPU to deliver an 80% experience. Moving back to SCCP could make your life easier, although that process will not be painless or easy. Once there, however, I think your users will be happier with the experience.

I remember trying to get SCCP working when I first got the system, but never did figure out how to do so. (Would have saved a LOT of time/effort had I been able to simply use the SCCP phones already in place rather than flash new phones & then run around like crazy swapping phones when we migrated.) Do you know if it works with the PBXact system/hardware? If so, are there any HOWTOs or detailed directions on how to do so? Finally, would there be any issues with installing it on the system and running both in parallel? (We do have a bunch of Sangoma phones in our system as well, which only work with SIP AFAIK.)

*edit - Running SCCP would allow me to edit the softkeys on the phone as well, right? *

I wrote an entire installation process for the SCCP Wiki on GitHub. Search “FreePBX Chan-SCCP-B @GitHub” and you should get to the FreePBX installation instructions on about 1 click.

There is a GUI module for SCCP phones now that works with versions after FreePBX 1.8.

The GUI module includes custom softkey mapping - you can’t edit the ‘default’ list, but you can create as many as you want.

I had a little trouble when I installed the Manager over the weekend - there were a lot of “duplicate definitions” in an Include file that was getting added twice, but I think that might be fixed. If you run into trouble, let me know through a DM and I’ll walk you through the fix. There was also a change that I decided to make to the Makefile for the Chan-SCCP module, but that’s minor. Let me know through DM if you run into any problems. They aren’t Sangoma modules, but they’re not much harder to install than anything else in Linux.

Is there any way to fix this flaw without changing the protocol the phones use?

Thanks for the links @cynjut - I’ve got a couple questions if you don’t mind. They’re probably going to be specific to the PBXact 100 appliance/distro I bought/use.

In the dashboard, the GUI reports that it’s running PBXact 13.0.197.7 yet the /usr/src directory has freepbx-13.0.192.16 in it and /usr/src/freepbx is symbolically linked to this directory. Searching online, I found the following page has what seems to be the source code for 13.0.197.7 in it. In order to build the chan_sccp module, should I download/extract the source code that matches what’s reported in the dashboard or use what was installed with the system? (It seems odd to me that updating the system wouldn’t copy the related source code with the update.)

https://git.freepbx.org/projects/FREEPBX/repos/framework/browse?at=release%2F13.0.197.7

If I install this module, should I be concerned about building/installing/configuring it during the day while calls are being processed or would it be better to work on it after we’re closed?

Are there any special considerations for building/installing/using it on a system with HA active?

Shouldn’t be required. The Asterisk “asterisk-devel” package has everything the module needs to be built. I don’t have the source for FreePBX or Asterisk loaded and I’ve built a half dozen systems in the past year. I even updated the Build instructions to say this. See FreePBX_Installation · chan-sccp/chan-sccp Wiki · GitHub for more info.

You will probably need to restart asterisk to get the module to catch, but you can use the “module load chan_sccp.so” command to load it “on the fly”. Still, I’d be more confident with a reboot of the server and getting it loaded on the final reboot. Loading the module by hand the first time (to test the module) is a good idea (and I’ve done that a couple of times).

As far as HA is concerned - you’ll need to build it and then install it on both instances. I don’t know of anything that allows for the sharing (etc.) of the module across platforms.

Any idea what’s wrong? Followed the steps on the last page you linked & ./configure reported no errors, but the initial build reports:

<snip many lines>
forward_declarations.h:65: note: previous declaration of ‘boolean_t’ was here
forward_declarations.h:89: error: redefinition of typedef ‘sk_func’
forward_declarations.h:89: note: previous declaration of ‘sk_func’ was here
forward_declarations.h:90: error: redefinition of typedef ‘sccp_sched_cb’
forward_declarations.h:90: note: previous declaration of ‘sccp_sched_cb’ was here
cc1: warning: unrecognized command line option "-Wno-format-truncation"
make[3]: *** [libsccp_la-sccp_xml.lo] Error 1
make[3]: Leaving directory `/usr/src/chan-sccp/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/src/chan-sccp/src'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/chan-sccp/src'
make: *** [all-recursive] Error 1

There’s nothing to indicate what the problem is other than error numbers…

I found that was a problem too. I went into the source files that errored and commented the line that redefines the include with a // like this:

// #include <forward_declarations.h>

Edit the two files that errored. That cleared the duplicate declarations. Sorry - I thought he’d fixed that already.

Thank you for your help getting that error resolved. I had to edit the sccp_webservice.h and sccp_xml.h files, commenting out the include in both of them. After that, it compiled & installed perfectly! :slight_smile:

I’m on to the sccp_manager module so that I can configure SCCP extensions in the GUI. I ran the SQL file to add the tables/triggers to the asterisk database, executed the git clone & amportal chown commands - everything was going well, up until I ran the amportal a ma install sccp_manager command… got the following:

# amportal a ma install sccp_manager

Please wait...

!!!!amportal is depreciated. Please use fwconsole!!!!
forwarding all commands to 'fwconsole'
<li>Checking for Sccp_manager database tables..</li><li>Checking Asterisk Version : </li><li>Sccp model Compatible code : 0</li><br><font color='red'>Chan Sccp not Found. Install it before continuing !</font>

I thought that perhaps this was due to the chan_sccp module not being loaded in asterisk, so I did as you suggested earlier - connected to asterisk and did a module load chan_sccp.so to load it manually. It came back with an error that chan_skinny was loaded, so I did module unload chan_skinny.so. My hunch is that asterisk is smart enough to automatically unload chan_skinny when I tried loading chan_sccp as this reported that chan_skinny was not loaded. Repeating the module load chan_sccp.so reported that chan_sccp.so was loaded and running, but the above still is the result when I try installing the sccp_manager module.

My hunch is that it’s unable to find the chan_scco.so module because my system is running in HA & it’s not following one of the symbolic links correctly, but this is only a hunch. Have you seen this before or have any ideas on how to circumvent the error?

edit - I’ve also tried updating the command to fwconsole ma install sccp_manager , but get the same message.

Once you get the module loaded, you can use the Module Admin page to enable the module. You should be good to go after that.

I need to get with PhantomVI and have him update his instructions. While ‘amportal’ will work sometimes, it is not a straight one-for-one replacement. Once the files are in the module directory tree, the MA page from the GUI should make the rest of the links work.

Note - you can still use the chan_sccp.so without the manager. The installation documentation should give you everything you need to know to build the base sccp.conf file, which BTW the SCCP Manager will read to populate the database once you get the manager running. Setting up the phones in the files is dead simple and with the SCCP module loaded, you should have SCCP Extension types ready to use - at least, I think that’s correct. If it isn’t, you can create them using the documentation I wrote and hand create the extensions. Use the Bulk Handler for that step if you end up doing that.

The dial string for the phones is SCCP/ext (where ext is the extension number on the Line entry on the phone). Once installed and working, they respond to the normal LOCAL/ext syntax so programs and features will still work reasonably reliably.

I do not have a Module Admin item in my menu… I have ‘Asterisk Modules’, but nothing else related to modules that I’ve been able to find. Could it be that the PBXact distro has this option hidden while FreePBX does not???

Even when using the fwconsole ma install sccp_manager command, it still spits out that chan_sccp isn’t found and to install it, even though it’s installed. I did poke around and saw an install.php file in the sccp_manager directory and found the conditional statement where it tests… I could easily disable the check, but don’t know if this will work or cause other issues down the line.

After I get done fixing a different server whose database decided to get corrupted, I’ll dig into how to make this work through the CLI and begin testing. I’d much rather have a GUI, but will take what I can get at this point.

Thank you again for all your help @cynjut - you’re awesome. :slight_smile:

Module Admin is down about four items from the bottom of the same menu as the Asterisk Module manager, which (by the way) you need to use too.

In Asterisk Module manager, you can turn off the chan_skinny.so driver (if it’s enabled) and turn on the chan_sccp.so module in the “turning on” screen.

Once you get into the Module Admin, you need to check the “locally managed” button to make sure the module gets set up.

Sorry for the delay in getting back with you @cynjut - been out of commission with a very bad cold. :frowning: :mask:

Here’s the menu I have - there’s no Module Admin that I can see. The Asterisk Module item has the enabling/disabling of the asterisk modules in it, but that was already set by my following the directions on setting it in the plain text configuration file.

This is the first time I’ve ever seen that particular display. There’s something going on here that exceeds my experience.

Now, having said that, there should be fwconsole ma something_goes_here chan_sccp and fwconsole ma something_goes_here sccp_manager commands that we can employ to get it wired in.

By the way you were walking me through things @cynjut, I didn’t think there was much beyond your experience in regards to FreePBX! :wink:

I did a fwconsole ma list and saw this in the output:
| sccp_manager | | Not Installed (Locally available) | GPL |

Based on your last message and that the system sees the module there - it’s just not installed in the system, I poked around in the help for fwconsole and tried fwconsole ma install sccp_manager. It spit out:

  • Checking for Sccp_manager database tables..
  • Checking Asterisk Version :
  • Sccp model Compatible code : 433
  • Checking for previw version Sccp_manager..
  • Can't find previw version :
  • Create Config BackUp
  • Create Config BackUp: /etc/asterisk/sccp_instal_backup20191029.zip
  • Move Old Config
  • Creating sccpuser table...
  • Creating buttons table...
  • Creating sccpsettings table...
  • Creating sccpdevmodel table...
  • Modify Database schema
  • Update table row :35
  • Create New table
  • Modify table
  • Update table row :33
  • Create New table
  • Modify table
  • Modify table
  • Update table row :6
  • Modify table
  • Total modify count :43
  • Fill sccpdevmodel
  • Update sccpdevice
  • (Re)Create buttonconfig trigger
  • (Re)Create trigger Ok
  • (Re)Create sccpdeviceconfig view
  • Update DB Ver
  • Pre config RealTime

  • Install Complite !
    Generating CSS...Done
    Module sccp_manager successfully installed
    Updating Hooks...Done

    (Man, does that ever look a LOT nicer when pasted into a web browser… I got the hypertext all spit out in a single line.)

    Thinking it couldn’t possibly be that simple, I checked the list of modules and sure enough:
    | sccp_manager | 13.0.0.4M | Enabled | GPL |

    Went back to the GUI and it’s now complaining about having ‘Unsigned Module(s)’ and the one it doesn’t seem to like is sccp_manager. I ran fwconsole ma refreshsignatures and all of them came back Good except ‘builtin’ and ‘sccp_manager’ - they come out with:

    Signature Invalid
    Could not find signed module on remote server!

    Still says ‘Module “SCCP Manager” is unsigned and should be re-downloaded’ in the GUI. My hunch is that this is simply because the module wasn’t put out by Sangoma. Do you know if this will cause problems? (If I get things working, I’ll look at ways to make the GUI shut up, but this is going to be for down the road.)

    Also, I finally found the module pages in the menu - it put them at the end under ‘Other’. However, whenever I go into any of the 3, I get a Whoops error:

    copy(/tftpboot/templates/dialplan.xml_template): failed to open stream: Permission denied

    Haven’t dug into it any further… unrelated server just went down. :frowning_face: Maybe just permissions needing to be relaxed???

    Making progress though! Slow & getting knocked back as I go, but progress none-the-less! :slight_smile: :smiley:

    Other server is now fine. :slight_smile:

    The Whoops error wasn’t a permissions problem, it was an ownership problem. Apparently the /tftpboot/templates directory was created as root:root - changed it to asterisk:asterisk and I’m now able to access the sccp_manager module GUI! :grinning: I look forward to playing with it over the next few days to see if we can get a better experience for our users instead of using the SIP firmware for the older phones. (If it works out, I’ll need to figure out how to suppress the signing error, but I’m not going to bother with that now.)

    Thank you again @cynjut for all your help & advice.

    i just suck that one up. The signing thing is actually pretty straight-forward, we just need to get it done.

    For the benefit of future people who find this thread, I also had to change ownership of /etc/asterisk/sccp.conf to be asterisk:asterisk as the install script had it owned as root.

    I’ve been playing with this module and must say that it’s very impressive! The context help needs work, but something like this is what I was expecting when I bought the 3rd party phone support module. :smiley:

    Don’t know if this is the right place for it, but I’ve been trying to define the softkeys displayed during different call states. The phone doesn’t seem to obey those defined in the module. Are you familiar with this or have any suggestions @cynjut ?

    There are a couple of things that need to be done for the softkey (the four across the bottom of the screen) to work right.

    The first is an information thing: the “default” keyset can’t be changed. Now, the software may let you change it, but it doesn’t effect the keyset on the phone. If you want to mess with the keys, you need to create (or modify) an additional keyset, and then define that keyset for the phone.

    Also, this is an open-source project, so if you have suggestions or problems, you can put in a ticket or issue a PULL request and make updates.