Setting up CP-8945 to use Google Voice

I need a guide to help me setup my CP-8945 to work with Asterisk. I have been working on this for a couple weeks but coming up empty on detailed information on what needs to happen.

I’m currently at the point of trying to get the 8945 to connect to my TFTP server and retire the SIP firmware. I’m not even sure I have the correct files.

I’ve never registered one of these phones on Asterisk but I have registered 7940’s,61,62,70, and 75’s.

To get started, If you haven’t yet create a free account on cisco.com

After you have that, search for the Cisco 8945 and find the software downloads. Download the latest SIP firmware in .zip format. Unzip its contents to your TFTP directory. You do not need a support contract for that firmware version.

Aside from that here is a link with some more information:

http://forums.asterisk.org/viewtopic.php?f=13&t=91343

Good luck to you!

I’m unable to get the phone to contact the TFTP server. I’m using solarwinds TFTP server with the firewall off. The 8945 doesn’t go looking for the TFTP at all. Wireshark shows no attempt to look for any TFTP server.

Have you configured a DHCP address for the phone with the TFTP option?
Not sure if solarwinds has a built in DHCP server but if it does try using that. If you have another DHCP server on your network try configuring a reservation for the phone that has the TFTP server address defined.

So I have simplified my network.

I have installed DHCPsrv This is a TFTP/DHCP/DNS server. I then have a non-managed switch between my computer and phone. No other devices.

My phone still isn’t updating. I know I’m missing files and unable to locate/know what is needed.

Did you download the firmware zip file I mentioned above?

You’ll need that, which contains all the files needed to upgrade the firmware to the latest SIP version.

Note that in order to upgrade the firmware, you’ll have to reboot the phone and let it find the TFTP server. Be sure those firmware files are in your TFTP directory. In addition you’ll need the following files:

SEPMacAddressOfPhone.cnf.xml
XMLDefault.cnf.xml

There are some others like dialplan.xml that are used later.

I believe for getting the firmware to upgrade you’ll need the XMLDefault.cnf.xml and the firmware files in your TFTP directory.

The contents of my XMLDefault.cnf.xml file look like this:

<Default>
  <callManagerGroup>
     <members>
        <member priority="0">
           <callManager>
              <ports>
                 <ethernetPhonePort>2000</ethernetPhonePort>
                 <mgcpPorts>
                    <listen>2427</listen>
                    <keepAlive>2428</keepAlive>
                 </mgcpPorts>
              </ports>
              <processNodeName></processNodeName>
           </callManager>
        </member>
     </members>
  </callManagerGroup>
  <loadInformation30006  model="Cisco 7970">SIP70.9-4-2SR2-2S</loadInformation30006>
  <loadInformation30006  model="Cisco 7975">SIP75.9-4-2SR2-2S</loadInformation30006>
  <loadInformation30018  model="Cisco 7961">SIP41.9-4-2SR2-2S</loadInformation30018>
  <loadInformation30019  model="Cisco 7962">SIP42.9-4-2SR2-2S</loadInformation30019>
<authenticationURL></authenticationURL>
  <directoryURL></directoryURL>
  <idleURL></idleURL>
  <informationURL></informationURL>
  <messagesURL></messagesURL>
  <servicesURL></servicesURL>
</Default>

Notice I have a few types of phones in there under “loadInformation” You’d only have the one for yours. Yours might be like: SIP894x.9-4-2SR3-1

Reboot the phone and it should grab that XMLDefault.cnf.xml file and see which firmware it needs to download from the TFTP server. With any luck it’ll begin downloading that firmware and install it.

Once you’ve got the firmware installed, in order to register it with Asterisk you’ll have to create the SEPMAC.cnf.xml that I mentioned above. The file is pretty long and contains a lot of stuff. The link to the old forum post above contains an example of what the contents of that should be. If anything is out of order in that file the phone will not register.

Reminder: All of these files need to be in your root TFTP directory!

Don’t forget to create a sip peer in Asterisk under /etc/asterisk/sip.conf and a corresponding extension under /etc/asterisk/extensions.conf

So in summary:

Put these in TFTP root:

Firmware files
XMLDefault.cnf.xml

Reboot the phone, do your upgrade to SIP.

After that, add these to the TFTP root:

SEPMAC.cnf.xml with configuration for your phone
dialplan.xml

Create your sip peer and extension in asterisk.

Reboot your phone and have it attempt to register.

There’s a ton of info out there on registering Cisco phones in general and those can still be helpful in your situation even if it’s not your exact phone. This does not include a Cisco 7940 41, or 45 however.

Here is my XMLDefault.cnf.xml (updated from info with yours) and all my files are on the root of the TFTP. My problem is the phone is not connecting AT ALL to the TFTP. I’m not seeing any session data or any connection.

 <Default>
      <callManagerGroup>
         <members>
            <member priority="0">
               <callManager>
                  <ports>
                     <ethernetPhonePort>2000</ethernetPhonePort>
                     <mgcpPorts>
                        <listen>2427</listen>
                        <keepAlive>2428</keepAlive>
                     </mgcpPorts>
                  </ports>
                  <processNodeName></processNodeName>
               </callManager>
            </member>
         </members>
      </callManagerGroup>
        <loadInformation585	model="Cisco 8945">SCCP894x.9-4-2SR3-1</loadInformation585>
        <loadInformation586	model="Cisco 8941">SCCP8941_8945.9-4-1-9</loadInformation586>
    <authenticationURL></authenticationURL>
    	<directoryURL></directoryURL>
    	<idleURL></idleURL>
    	<informationURL></informationURL>
    	<messagesURL></messagesURL>
    	<servicesURL></servicesURL>
    </Default>

I also tried SIP files but during my research discovered chan_sccp-d would be better so I’m trying to stick with SCCP.

Ok I wiresharked the startup and the phone is requesting a CTL***MAC.tlv file and my TFTP is answering with “file not found”. I a little pissed that solarwinds doesn’t even show this request.

I remember reading something about this as being a certificate. Its needed as a security check before it will accept the files from my TFTP server.

I discovered the status messages on the phone. Its failing to transfer all of the files. Since I don’t know what is wrong with the files I’m out of ideas.

If you’re going the SCCP route, I have no idea. Never used SCCP on Asterisk and I honestly don’t recommend it.
SIP works just fine in most cases, especially with the Cisco patch that is available here: http://usecallmanager.nz/patching-asterisk.html

I have BLF working just fine on my phone with this patch.

SIP is what I recommend and will probably save you some time and headaches.

Update:

I was able to update using SCCP but now when I try to update to SIP its saying Invalid Configuration File (SEPMAC.cnf.xml).

I have spent about four hours working on that file. I already found the site http://usecallmanager.nz/ a couple of days ago and I’m using that information in updating the file.

another question.

I can’t find steps that show how to patch asterisk. Every site shows different steps and they expect you to understand basic steps going into the process.

Here is where I’m current with the patching:

(I clearly don’t know what I’m doing)…

root@raspbx:~# wget https://issues.asterisk.org/jira/secure/attachment/54615/cisco-usecallmanager-13.12.1.patch -O - | patch -p0
--2016-11-09 16:23:03--  https://issues.asterisk.org/jira/secure/attachment/54615/cisco-usecallmanager-13.12.1.patch
Resolving issues.asterisk.org (issues.asterisk.org)... 76.164.171.238, 2001:470:e0d4::ee
Connecting to issues.asterisk.org (issues.asterisk.org)|76.164.171.238|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 302694 (296K) [text/plain]
Saving to: ‘STDOUT’

-                                       100%[==============================================================================>] 295.60K  63.5KB/s   in 4.7s

2016-11-09 16:23:11 (63.5 KB/s) - written to stdout [302694/302694]

can't find file to patch at input line 4
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -durN asterisk-13.12.1.orig/channels/chan_sip.c asterisk-13.12.1/channels/chan_sip.c
|--- asterisk-13.12.1.orig/channels/chan_sip.c  2016-11-02 14:39:52.160689023 +1300
|+++ asterisk-13.12.1/channels/chan_sip.c       2016-11-02 14:40:27.432077899 +1300
--------------------------
File to patch: +++
+++: No such file or directory
Skip this patch? [y] n
File to patch: asterisk-13.12.1/channels/chan_sip.c
asterisk-13.12.1/channels/chan_sip.c: No such file or directory
Skip this patch? [y] chan_sip.c
Skipping patch.
167 out of 167 hunks ignored
can't find file to patch at input line 6931
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -durN asterisk-13.12.1.orig/channels/sip/config_parser.c asterisk-13.12.1/channels/sip/config_parser.c
|--- asterisk-13.12.1.orig/channels/sip/config_parser.c 2016-11-02 14:39:52.164688954 +1300
|+++ asterisk-13.12.1/channels/sip/config_parser.c      2016-11-02 14:40:27.432077899 +1300
--------------------------
File to patch: asterisk-13.12.1/channels/sip/config_parser.c
asterisk-13.12.1/channels/sip/config_parser.c: No such file or directory
Skip this patch? [y] n
File to patch: config_parser.c
config_parser.c: No such file or directory
Skip this patch? [y] n
File to patch: ---
---: No such file or directory

So the thing that sucks is the patch has to be applied BEFORE you install Asterisk.
If you start from scratch and apply the patch first, it should work.

The steps are described but they don’t really come right out and say it.

You have to get the version of Asterisk that matches the patch version, extract it, apply the patch, and then do the install.

Not to say the patch sucks. It’s awesome.
Just saying sometimes when you’ve already installed asterisk and configured it, you’re like “awww man!”

I’m working with RasPBX project that has everything compiled already for the Raspberry Pi. Starting over and trying to do this manually isn’t really a option or its something thats going to take sometime. Surely this can be patched afterward otherwise why else would I be seeing those errors. I’m just not sure how to select the correct files to be patched.

Not sure either. I’m just running Asterisk on Ubuntu, so I can’t really offer advice on that.

The patch is against the source code, you can’t apply it to a built Asterisk.

If you want a binary patch, you should contact the packager. However, packages are normally all or nothing things, so you would expect to receive a completely new package.