Cisco 7940 Call Parking

Hello. I’ve set up a FreePBX system with several Cisco 7940 phones. Everything is great, apart from one basic feature. On the current system that I intend to replace (15+ years old), we often place calls on hold, and then retrieve them on another extension by pressing the button for the line that the call is on.

I’ve searched everywhere but I cannot find a way to do this, other than by transferring the call to extension 70, then dialling 71 on the phone we intend to pick it up from. Is there ANY way whatsoever to park and retrieve calls at the touch of a button and/or display on the phones that a call is currently parked?

I fear that I am going to end up getting rid of all the 7940s and replacing them with a different model if not.

Thanks in advance guys.

If you are using chan-sccp-b you can emulate this using the shared line facility in the Skinny protocol. I don’t think you have that option with SIP.

Also, if you don’t switch to SIP, you can do all kinds of cool stuff like control your programmable buttons.

Thanks Dave. I thought as much, regarding the lack of SIP features on these phones. However I didn’t previously realise there was an SCCP option available for FreePBX, so I’ll have a look into it. Would the SIP and SCCP phones be useable together, or would it be a case of having all SIP / all SCCP?

Can anyone recommend a SIP phone that supports parked call notifications by means of a lamp, LCD message or otherwise?

The way I recommend setting up your Cisco phones with Chan-SCCP-B (go to the sourceforge wiki section and look for FreePBX setup instructions) is to set everything up as SIP with the exception of the Cisco phones. I usually install a mix of DAHDI, SCCP, and SIP phones for people I install systems for.

You can mix SIP and SCCP within the Cisco family, but I don’t recommend it. It’s like half your family having Porsches and half having Volkswagens. The ones with the SIP versions will wonder why you don’t like them.

1 Like

Any idea on how to solve this error when trying to load the SCCP phones page?

Whoops \ Exception \ ErrorException (E_WARNING)
mysql_fetch_row() expects parameter 1 to be resource, boolean given
function get_buttons_devtype($type) {
	global $db;
	$res = mysql_query("SELECT dns, buttons
						FROM sccpdevmodel
						WHERE model='$type' ");
	while ($row = mysql_fetch_row($res)) {
		$modelData['dns'] = $row[0];
		$modelData['buttons'] = $row[1];

^ This was :sweat_smile:

@cynjut is the one who is suppose to be working on that module… :wink:

OK looks like I’ve got it sorted. Just trying to register the phones now. Config is all sorted on the server. Just need to sort out the phones config files. At the moment I’ve got the phones stuck at “configuring CM list” and rebooting constantly. Also I can’t see to figure out what to put in the SEP(mac).cnf.xml file to point it towards the FreePBX server. Any help would be much appreciated. Thanks.

Yeah - I need to update the SCCP FreePBX module. I’ve have made a bunch of changes to get it working both under the newest version of FreePBX/Asterisk AND from a clean install (the old code assumed that everything was up and running and that the code was just managing the database and config files). There are still a few problems with the XML file generation that I need to spend some time cleaning up.

As far as the sccp.conf file goes - the Chan-SCCP-B FreePBX page has some information on creating a working sccp.conf file that can be read into the database using the program from the contrib directory. I don’t remember the exact name of the program, but I wrote it to simplify the “upgrade” from the conf file to MySQL.

There should be a sample SEPmacmacmacmac.cnf.xml file in the Chan-SCCP-B contrib directory.

There are actually three pieces to this:

  1. The OS79XX.txt file which should match the firmware version you specify in the SEPmacmacmacmac.xml.cnf file.
  2. The actual firmware files for your phone(s) to get them all on the same version.
  3. The DHCP settings that point the phone to the right TFTP server and the right PBX.

If you “brick” your phones (using the Factory Reset sequence), you should get back into SCCP mode, which should get you closer.

To simplify configuration, the FreePBX module assumes that the /tftpboot directory is on the same server as your PBX software. The DHCP config really wants to be specific to your phones. When I get back to the office, I’ll post a couple of examples for these files and “snippets”.

If it helps, the chan-sccp-b Wiki has all of this stuff. I know - I wrote most of it.

Thanks Dave. It’s all very much appreciated.

I’m slowly making progress anyway. At the moment I’m stuck on File Auth Fail: CTLFile.tlv

Make sure the permissions in your /tftpboot directory are correct.

Firewall.CX Image File List

Make sure you have the correct version of the firmware for your phone from the Firewall CX image file list. You want the SEP files, not SIP.

Most of the information on this post is available at the Chan-SCCP-B FreePBX Wiki page. To close out this thread (which we took to private messages so as not to embarrass anyone) I’ve got a few notes that I thought should go here for completeness:

  1. Make sure your module is getting loaded. This includes addition to the “modules.conf” file (or in FreePBX 13, in the Asterisk Modules page). In the modules.conf file, be sure to “noload” and “load”.

  2. Make sure the chan_sccp module is loading. A common error here is to load a previously compiled “so” file and have it miss a symbol. Test the module (before you start any phone work) with a quick “sccp show devices”. If you get an error saying something about “sccp command not found” you need to figure out why is not loading. Note that the Chan-SCCP-B Wiki page for FreePBX recommends that you build the module from scratch using the sources for your current version of Asterisk.

  3. It is a good idea to set up a special section in DHCP for your phones. My recommendation is to build a special group in dhcpd.conf for your phones.

    group {
    next-server 192.168.x.2;
    option voip-tftp-server 192.168.x.2;
    option tftp-server 192.168.x.2;
    option routers 192.168.x.2;

         host 7940-SW-520 {
                 hardware ethernet 00:07:EB:FF:FF:FF;
                 fixed-address 192.168.x.22;


  4. If you phone stops at the “Loading CM List” step, you are either missing a file the phone needs (like a “SEPmacmacmacmac.cnf.xml” file or that file has an error in it. Use the program ‘xmllint’ to find the problem. Any error in any XML file will cause the CM List step to fail.

  5. Make sure your /tftpboot directory and file within have the right permissions.

  6. If you downgraded your phones to SIP, you need to make sure the phone is getting reflashed back to the Skinny image. Follow the commonly available instructions for flashing the phone to the SCCP image (available at the link above). The image information is embedded in the /tftpboot XML config files.

While it seems like a lot of work, it really is only three steps:

  1. Install the software.
  2. Configure the tftpboot directory files.
  3. Configure the sccp.conf file in /etc/asterisk.