Cisco 7975G / 7925 on FreePBX

I’m trying to migrate from a Cisco UC520 system to FreePBX. I’ve setup FreePBX on a VMware server to test out the functionality and have it working ok with a softphone client on my iPhone. My next task it to try to get my Cisco phones working, preferably with SCCP. I found the following guide which I’ve seen referenced here before:

I keep getting stuck at Quick Installation step 3. Every time I run “./configure --enable-conference” it ends up giving me the following error:

configure:23504: result: 'ASTERISK_VERSION could not be established

looking further up the log I also found errors such as:

 FORTIFY_SOURCE -I.  -isystem /usr/include -DHAVE_ASTERISK conftest.c >&5
conftest.c: In function 'main':
conftest.c:98: error: 'ASTERISK_VERSION' undeclared (first use in this function)
conftest.c:98: error: (Each undeclared identifier is reported only once
conftest.c:98: error: for each function it appears in.)
conftest.c:98: warning: unused variable 'test_src'
configure:23306: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "Chan_SCCP"
| #define PACKAGE_TARNAME "Chan_SCCP"
| #define PACKAGE_VERSION "4.3.0"
| #define PACKAGE_STRING "Chan_SCCP 4.3.0"
| #define PACKAGE_BUGREPORT "https://sourceforge.net/projects/chan-sccp-b/"

Does anyone know what could be causing these errors?

Thanks

1 Like

The development and support community for Chan-SCCP-B is very active and usually very helpful.

Did you follow my guide for integrating Chan-SCCP-B into FreePBX?

1 Like

Hi Dave,

I saw a post of yours from last year referencing your guide at the following link:

https://sourceforge.net/p/chan-sccp-b/wiki/FreePBX/

For some reason, I’m just seeing Error 403 Read access required when I try to access that page.

Can you provide a link to the guide that I should be following.

Thanks!

FreePBX Install Guide for Chan-SCCP-B (updated for GitHub)

The development moved to GitHub a couple of years ago. Updated without typo.

1 Like

That link is also giving a 404 error. Is this one I should be following:

This was the link I was following that resulted in the errors in the first post.

Thanks

Worked. I just tried it.

1 Like

Hi Dave,

Thanks for the link. I followed the instructions and managed to get it installed. I’m having difficulty getting my Cisco 7975G to register. The following is what I used for the SCCP files:

;=========================================================================================
;
; general definitions
;
;=========================================================================================
[general]
servername = FreePBX
keepalive = 60
debug = 1
context = from-internal-xfer
dateformat = D.M.Y
bindaddr = 0.0.0.0
port = 2000
disallow=all
allow=alaw
allow=ulaw
firstdigittimeout = 16
digittimeout = 8
autoanswer_ring_time = 1
autoanswer_tone = 0x32
remotehangup_tone = 0x32
transfer_tone = 0
callwaiting_tone = 0x2d
musicclass=default
language=en
deny=0.0.0.0/0.0.0.0
permit=192.168.10.0/255.255.255.0
dndFeature = on
sccp_tos = 0x68
sccp_cos = 4
audio_tos = 0xB8
audio_cos = 6
video_tos = 0x88
video_cos = 5
echocancel = on
silencesuppression = off
private = on
callanswerorder=oldestfirst
hotline_enabled=yes                                     ; can devices without configuration register
hotline_context=default                                 ; context for hotline
hotline_extension=111                                   ; extension will be dialed on offHook

;=========================================================================================
;
; include files
;
;=========================================================================================
#include sccp_hardware.conf
#include sccp_extensions.conf

Extensions:

[203]
id = 203
type = line
pin = 1234
label = My Name
description = Line 203
mailbox = 203
cid_name = My Name
cid_num = 203
accountcode=203
callgroup=1,3-4
pickupgroup=1,3-5
;amaflags =
context = from-internal-xfer
incominglimit = 2
transfer = on
vmnum = 600
meetme = on
meetmeopts = qxd
meetmenum = 700
trnsfvm = 1000
secondary_dialtone_digits = 9
secondary_dialtone_tone = 0x22
musicclass=default
language=en
audio_tos = 0xB8
audio_cos = 6
video_tos = 0x88
video_cos = 5
echocancel = on
silencesuppression = off
setvar=testvar2=my value
dnd = reject

Hardware:

    [SEPPHONEMACDDRESS] ;Actual MAC address omitted
description = My Name
devicetype = 7975
park = off
button = speeddial,Helpdesk, 98112, [email protected]         ; Add SpeedDial to Helpdesk
button = line, 203: Line1                               ; Assign Line 98011 to Device
button = empty                                          ; Assign an Empty Button
button = line, 98012                                    ; Assign Line 98012 to Device
button = speeddial,Phone 2 Line 1, 98021, [email protected]   ; Add SpeedDial to Phone Number Two Line 1 (button labels can contain s$
cfwdall = off
type = device
keepalive = 60
;tzoffset = -4
transfer = on
park = on
cfwdall = off
cfwdbusy = off
cfwdnoanswer = off
directed_pickup = on
directed_pickup_context = from-internal-xfer
directed_pickup_modeanswer = on
deny=0.0.0.0/0.0.0.0
permit=192.168.10.200/255.255.255.0 ; this is the FreePBX server ip
dndFeature = on
nat=auto
directrtp=off
earlyrtp = progress
private = on
mwilamp = on
mwioncall = off
setvar=testvar=value
cfwdall = on

Do you see anything that could be causing the error?

I recall mention in another thread of a GUI interface that would allow me to set this up in FreePBX. Is this available?

Thanks!

With the implementation of the new BDO database interface, the old GUI manager is woefully inadequate and actually puts your system at risk. My customers haven’t wanted it recoded and I’ve had other things going, so I haven’t rewritten it.

1 Like

Fair enough. Will keep trying to get the phones going through the conf file. If you see anything obvious that could be causing the phone not to register, please let me know. Thanks

There are a couple of things that aren’t quite right, but nothing insurmountable.

  • There are lots of phases of not registering. If you could be a little more specific about what isn’t connecting, I have give you some places to look. For example, your DHCP needs to point to the right server using the right DHCP setting (Option 66, as I recall). If the phone is looping, try running “xmlint” (I think) to make sure there are no XML errors in your config files. I literally spent a week with the phone not registering for a missing > symbol in one of the files.

  • Make sure your SEPmacmacmacm files are all in the right place and are configured correctly. XMLLint (or is it “xmlint”) your config files to make sure they are clean.

  • Check your /var/log/messages file to see if the phone is requesting the right XML configuration files. Note that almost all of these files are exactly the same (for your implementation) so once one works, you can hard-link them together and they will all just work.

  • In the example you provided, your extension number (in your code above, line 203) should be the Asterisk Extension number. Having said that, it is possible for you to do what you did by setting the DIAL code in the Custom Extension setup (SCCP/203) associated with extension 98023, or whatever, but I really don’t recommend it - it just gets confusing. Your SCCP Lines should all match up with Custom Extensions. That will help.

  • Unless you want to use secondary dial-tones (“Press 9 for an outside line”) I would lose the secondary_dialtone_* stuff. With Asterisk, it’s just a hold-over from days when we couldn’t control the outbound routes based on the actual extension.

  • The phone registers by MAC address from the driver, so once the phone contacts
    port 2000 (in your XML files) it should try to connect to the server. You should be seeing this in the /var/log/asterisk/full logs and on the CLI as it’s running.

  • There’s a place where you turn off and on Asterisk Modules. Since this isn’t a FreePBX module, but is an Asterisk module, you’ll need to go in and turn off “chan_skinny” and turn on “chan_sccp”. You can’t have both - chan_skinny doesn’t get you where you want to go.

1 Like

Right now the phone boots and just gets stuck at the main screen with the word Registering at the bottom.

I didn’t have DHCP setup properly, so I went into our Meraki router and pointed DHCP option 66 to our FreePBX router.

The SEP file is likely the issue as I haven’t created one and am not sure where to put it. I will see if I can find the instructions for this tonight.

I checked /varl/log/messages and saw the following:
Mar 24 17:19:11 localhost xinetd[1335]: START: tftp pid=8767 from=192.168.10.246

That is the 7975G’s IP address.

I will delete the secondary dial-tone settings. I’ve been leaving most of the config as default just to see if I can get the phone to load.

Thanks!

OK - xinetd is starting when the phone tries grab the config files from the /tftpboot directory. Make sure you’ve actually enabled your tftp daemon in the /etc/xinetd.d/tftp file. It’s kind of counterintuitive - you set “disable” to “no”.

Time to set up your TFTP directory.

The first thing it’s going to look for is your firmware load files, especially if they are different than what’s currently in the phone. This check happens every time, but the actual download should only happen once. This information is usually found in your OS79XX.TXT file. This file is used by the phones to double check your firmware version. Some phones use it, some don’t. There are a bunch of older phones that have their own.

Next, it will try to download the XMLdefault.cnf.xml file. This is the file that identifies the server and the port, as well as the default software version for your phone.

Next is the SEPmacmacmacmac.cnf.xml. This is a “per phone” config file that is actually the same across your entire enterprise.

Remember the “hardware” config file. The SEPmacmacmacmac entry (with the SEP) is matched against this file.

At this point, remember that none of this is related to FreePBX. This is all straight Asterisk stuff.

1 Like

Thanks. I setup the TFTP directory and uploaded the latest firmware files. For some reason the phone didn’t want to pull the newer version, so I changed the config to use the version already on the phone.

The phone now boots and displays the buttons as per the test sccp_extensions file I uploaded.

Two remaining questions:

  1. Inbound calls are going straight to voicemail instead of ringing the phone. Is there something I need to do in FreePBX to ensure the call goes to the phone. I’ve created an extension in FreePBX under Extensions --> Add New Custom Extension. I used extension 203 and then used extension 203 in sccp_extensions.conf. I saw reference in the guide to use the “This device uses custom technology” option, but I couldn’t find that option in FreePBX.

EDIT I may have found the solution to this one. Under advanced, edit extension, dial, should I change CUSTOM/203 to SCCP/203. EDIT Yes this worked.

  1. I’m trying to customize the buttons on my 7975G. In the past, the first button would be my line. The next 3 buttons would be speed-dials to other co-workers with line monitoring using the light on the button. The final three buttons were speed dials to the park slot (701,702,703) with line monitoring. Is this setup possible. I have then currently setup as speed dials, but I get no BLF functionality.

Thanks

Try that.

1 Like

Awesome, got the buttons working and BLF works fine. The only weird thing is that the speed dial logo always shows, and then a phone logo shows over-top of the speed dial logo making the display look a little more cluttered. Then again, saved me buying a bunch of new phones so if its not fixable we’ll live with it.

Thanks for your help!

A picture would help.

For the three Speeddial buttons (the extension ones), remove the last entry. You should only get one icon based (in part) on the number of arguments. If you remove the last entry, if might clear up your display.

Sure. I did a little more testing and found that if I used the following code for speed dials and park slots, then I would have BLF functionality working, but also the two logos overlaying.

button = speeddial,John Doe, 201, 201

If I used the following code, then I wouldn’t have the overlay issue, the speed dial function still worked, but I wasn’t able to monitor the line.

button = speeddial,John Doe, 201

I also noticed that with the first set of code the other phones show who I am on the phone with. I would like BLF functionality, but not for telephone numbers to be displayed to other coworkers. I tried the privacy,callpresent function, but it seems to turn off all BLF functionality again.

This is deep Chan-SCCP_B magic. We need to move this discussion to that forum. The rest of the FreePBX guys don’t care about this really Chan-SCCP-B specific thing.

Diedrik should be able to work out the specifics of what you’re trying to do in a couple seconds - this is what he does for a living.