Configuring Cisco 7975 IP Phone Help!

Hello Everyone,
I am new to the FreePBX system and I plan on using it to replace a Cisco 2811 that I’ve been only using now as my pbx around my office. I would like to use a few on my existing 7975 phones in my shop area because they are pretty durable and cheap. I plan on getting some nicer (and probably way easy to configure) phones once I’m able to make sure the system works for me.

Anyways, I have sort of been able to get one of the 7975 phones talking to FreePBX but it is still not working correctly. I have followed the guide posted here: github (dot) com/chan-sccp/chan-sccp/wiki/FreePBX

The issue I am having is that the display keeps alternating a message that states “Configuring Unified CM List” and then goes back to “Asterisk Connect.” It does this over and over and it makes the phone completely unusable. I have no idea what to do from here. I did have to manually input the TFTP IP address on the phone to get it to connect to the FreePBX. I’m not sure if that’s normal or not since with the Cisco 2811, the phones just connect automatically.

Below I will post my message log and the SCCP. Thank you

Here is a few of the message logs I am getting:

Feb 6 04:27:14 freepbx systemd-logind: New session 66 of user root.
Feb 6 04:27:14 freepbx in.tftpd[5589]: RRQ from 10.10.20.102 filename SEP0023EB51E80E.cnf.xml
Feb 6 04:27:14 freepbx in.tftpd[5589]: Client 10.10.20.102 finished SEP0023EB51E80E.cnf.xml
Feb 6 04:27:24 freepbx in.tftpd[5638]: RRQ from 10.10.20.102 filename CTLSEP0023EB51E80E.tlv
Feb 6 04:27:24 freepbx in.tftpd[5638]: Client 10.10.20.102 File not found CTLSEP0023EB51E80E.tlv
Feb 6 04:27:24 freepbx in.tftpd[5639]: RRQ from 10.10.20.102 filename ITLSEP0023EB51E80E.tlv
Feb 6 04:27:24 freepbx in.tftpd[5639]: Client 10.10.20.102 File not found ITLSEP0023EB51E80E.tlv
Feb 6 04:27:24 freepbx in.tftpd[5640]: RRQ from 10.10.20.102 filename ITLFile.tlv
Feb 6 04:27:24 freepbx in.tftpd[5640]: Client 10.10.20.102 File not found ITLFile.tlv
Feb 6 04:27:25 freepbx in.tftpd[5642]: RRQ from 10.10.20.102 filename SEP0023EB51E80E.cnf.xml
Feb 6 04:27:25 freepbx in.tftpd[5642]: Client 10.10.20.102 finished SEP0023EB51E80E.cnf.xml

SCCP Config:

;=========================================================================================
;
; general definitions
;
;=========================================================================================
[general]
debug = core, config, action, socket, device, line, channel
servername = Asterisk
keepalive = 60
context = default
dateformat = D.M.Y
bindaddr = 0.0.0.0
port = 2000
disallow=all
allow=alaw
allow=ulaw
allow=g729
firstdigittimeout = 16
digittimeout = 8
autoanswer_ring_time = 1
autoanswer_tone = Zip
remotehangup_tone = Zip
transfer=on
transfer_tone = 0
transfer_on_hangup = off
dnd_tone = 0x0
callwaiting_tone = Call Waiting Tone
musicclass=default
language=en
deny=0.0.0.0/0.0.0.0
permit=internal ; ‘internal’ is automatically converted to these private cidr address:
; 127.0.0.0/255.0.0.0, 10.0.0.0/255.0.0.0,
; 172.0.0.0/255.224.0.0, 192.168.0.0/255.255.0.0
;permit=10.10.20.0/255.255.255.0
localnet = internal ; (MULTI-ENTRY) All RFC 1918 addresses are local networks, example ‘192.168.1.0/255.255.255.0’
;externip = 77.44.22.33 ; External IP Address of the firewall, required in case the PBX is running on a seperate host behind it. IP Address that we’re going to notify in RTP media stream as the pbx source address.
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
pickup_modeanswer = on
hotline_enabled=yes ;can devices without configuration register
hotline_context=default ; context for hotline
hotline_extension=111 ; extension will be dialed on offHook

;=========================================================================================
;
; actual definitions
;
;=========================================================================================
[SEP0023EB51E80E]
description = Phone Number One
addon = 7914
devicetype = 7975
park = off
button = speeddial,Helpdesk, 98112, 98112@hints ; Add SpeedDial to Helpdesk
button = line, 98011,default ; Assign Line 98011 to Device and use this as default line
button = empty ; Assign an Empty Button
button = line, 98012 ; Assign Line 98012 to Device
button = speeddial,Phone 2 Line 1, 98021, 98021@hints ; Add SpeedDial to Phone Number Two Line 1 (button labels allow special characters like ‘é’)
cfwdall = off
type = device
keepalive = 60
;tzoffset = +2
transfer = on
park = on
cfwdall = off
cfwdbusy = off
cfwdnoanswer = off
deny=0.0.0.0/0.0.0.0
permit=10.10.20.102/255.255.255.255
dndFeature = on
dnd = off
directrtp=off
earlyrtp = progress
private = on
mwilamp = on
mwioncall = off
setvar=testvar=value
cfwdall = on

[98011]
id = 2102
type = line
pin = 2102
label = Phone 1 Line 1
description = Line 98011
mailbox = 2102
cid_name = MY CID
cid_num = 98011
accountcode=79011
callgroup=1,3-4
pickupgroup=1,3-5
directed_pickup = on
directed_pickup_context = “”
pickup_modeanswer = on
;amaflags =
context = default
incominglimit = 2
transfer = on
vmnum = 600
meetme = on
meetmeopts = qxd
meetmenum = 700
trnsfvm = 1000
secondary_dialtone_digits = 9
secondary_dialtone_tone = Outside Dial Tone
musicclass=default
language=en
echocancel = on
silencesuppression = off
setvar=testvar2=my value
dnd = reject
parkinglot = myparkspace

[98012]
id = 1001
type = line
pin = 4356
label = Phone 1 Line 2
description = Line 98012
mailbox = 10012
cid_name = MY LINE 2
cid_num = 98012
accountcode=79002
callgroup=1,4-9
pickupgroup=1,3-9
directed_pickup = on
directed_pickup_context = “another”
pickup_modeanswer = on
echocancel = off
context = default
incominglimit = 2
transfer = on
vmnum = 600
trnsfvm = 1000
secondary_dialtone_digits = 9
secondary_dialtone_tone = Outside Dial Tone
musicclass=default
language=en
echocancel = on
silencesuppression = off
silencesuppression = on
dnd = silent

There is an alternative solution, which requires patching Asterisk and using chan-sip.

http://usecallmanager.nz/document-overview.html

If you really want to do it, apply the patch to a rpm…otherwise you will break freePBX. If you want high quality phones, buy the Digium/Sangoma D65 phones and use the Digium phones module in combination with the advanced DPMA method.

This alternative solution is far less facile than using the phones in SCCP mode, since the SIP load cripples many of the advanced features of the phone. Also, the chan-sccp-b solution that he’s using is perfectly capable of doing what he needs to do and doesn’t involve patching Asterisk, or trying to cripple the 79xx phones with the SIP load.

The most common cause of the reboot you’re describing is a problem in your XML file. Did you start with the XML files that I provided in the samples directory or did you start with something from the Internet?

If you follow the instructions I wrote for getting the sccp.conf file working, a few of the things you’ve set in your config file will change. Also, the config file is only read once - it is pulled into the MySQL database that the chan-sccp-b modules uses for it’s support of real-time phone updates.

I suggest you start with the samples from the chan-sccp-b distribution and let’s see what we can get going.

Thanks cynjut for your reply. I’ve seen you post a lot about this topic and so I’m glad you responded. The XML files I’m using are the one off my cisco router flash. I just copied the one me old router was using. I seem to have actually fixed the issue I described by downgrading the phone firmware from 9-4 to 8-5. I think what I’m gonna do is start all over with a fresh install of freepbx use your xml file that you provided and go through your tutorial again. The IP address of my freepbx will be 10.10.20.12. The phone I’m testing with right now will have an IP address of 10.10.20.102. Should my cisco 7975 phone pick up the tftp server on its own or is it normal for me to have to manually put in an alternate server on each phone? Would you also mind advising what some of the errors are in my config? Once I’m done reinstalling everything, I’ll report back the results. Would you mind providing me a link to where your XML files are so I can make sure I’m getting what you’re talking about. Thanks again!

Use the DHCP option (150, IIRC) to point the phones at the server. That way, you don’t have to mess with it. The paid Sysadmin Module has the stuff you need to set this in the DNSMASQ DHCP server.

In the Chan-SCCP-B distribution is a directory of configuration samples called (IIRC) “Samples”. The 7940 XML File should be in there. Use it as the baseline. In the tutorial, there are notes about the other options you can change to get it to work.

Once you’ve got it all set up, we’ll talk about PhantomVI’s SCCP Phone Manager. It makes managing the phones a snap and builds into the FreePBX GUI.

Ok so I’ve completed the install exactly how you described and I believe I understand how to configure the configs now. My hangup right now is getting the phones to see my TFTP server using option 150. I purchased the Sysadmin Module but I don’t know where to configure option 150 from there. I’ve reset my cisco 7975 and it is stuck trying to find the TFTP. Can you advise?

Under the DHCP server settings in the sysadmin step, there should be a place for setting option 150. Set it to your tftp server IP address (IIRC).

So good news! I was able to get the phone to find the FreePBX TFTP server. I had to configure my pfSense router to point to it. Now I am at the phone’s “Registering” which of course it is not doing. Do I need to change the ip address in the XML to freePBX ip?

Here is a screen shot of pfSense to help anyone else if they are having issues.

I have the following files in my etc/asterisk folder:

sccp.conf
sccp_extensions.conf
sccp_hardware.conf

Is this correct?

Yeah. The XML file (which you should only need one of, linked to all of the SIPmac.XML files) should have the server’s IP address.

The sccp_hardware file should have your MAC addresses associated with each of the phones, and the sccp_extensions file should have the line definitions. Look at the examples from the Wiki for how to make meat-definitions.

I think you need to look at the /var/log/asterisk/full log files to see what’s up with the registrations.

Ok so I’m getting through this slowly…I changed the IP’s in the xml to the server and the phones register (I have two going now). I haven’t changed anything in regards to the labels and the softkeys (on the right and bottom) so there’s all kinds of stuff on the screens. Now my issue is that I cannot call the other phone. I get a “Temp Fail” on the phone when I try to call the other extension.

I followed the instructions reference setting the dial to SCCP/1000 (phone one) and SCCP/1002 (phone two).

So I was able to install SCCP Phone Manager successfully (I think). I’m trying to add my 7975 phone but it’s not showing it in the “Type” list under Device Configuration.

You can use the closest one. 79xx series are almost all the same, except for the line buttos

Ok I’ll give it a try

That’s almost always true, but the 7975 is just a little different enough that it might jam you up. I have a 7975 in my kitchen that I hooked up through the Manager and it’s being a b*tch.

This is the part when you check to see what the phones look like from the FreePBX side. From the console, log in to FreePBX (‘asterisk -vr’) and use your ‘sccp ?’ commands to look at the devices. If the extensions are set up correctly, you’ll see them in the ‘sccp show devices’ command.

Also, make sure your context is set correctly. The “default” context doesn’t work - it needs to be either ‘from-internal-xfer’ or ‘from-internal’. Using the latter, you can check your connectivity by dialing “*65” from the phone to get your extension’s number.

Thank you sir for your help once again. Here is the return for the commands your suggested above:

±-- Devices --------------------------------------------------------------------------------------------------------------------------------------------+
| Descr Address Mac RegState Token RegTime Act Lines Nat |

  • ========================= ============================================ ================ ========== ===== ========================= === ===== ========= +
    | 2102 10.10.20.102:50463 SEP0023EB51E80E OK None Fri Feb 7 00:29:32 2020 No 2 Auto |
    | 2103 10.10.20.104:52992 SEP0023EB51F3C9 OK None Fri Feb 7 00:29:37 2020 No 2 Auto |
    | 2101 10.10.20.103:51595 SEP00260BD92744 OK None Fri Feb 7 01:38:01 2020 No 2 (Auto)Off |
    ±-------------------------------------------------------------------------------------------------------------------------------------------------------+

It appears I have things working as they should. I also managed to get the “SCCP Connectivity” module installed and I must say, it makes things WAY easier to configure. *65 also returns the correct extension. The only issue that has come up is a “SCCP Manager Warning” under the SCCP server settings, “SCCP info.” Here’s a screenshot:

If I follow the instructions and try to correct the error, mysql crashes and the hold thing goes down. I then have to ssh back in to reverse the correction to get things going again. Any suggestions? It has been working fine just leaving it along. It is bothering me though and I’m not sure if it will cause problems in the future.

All you need to add is that one line, and it should be

group_concat_max_length = 8192

Just add it in the [mysqld] stanza and it should be fine.

Restart the MariaDB service and off you go.

Here’s what happened after I made that change when I try to log back into the pbx. The phone also do not register.

MariaDB didn’t restart.

There is an error log in your database directory that will tell you what the error is on the DB restart.

Ok I will check the log. Is rebooting the server the same as restarting MariaDB?