[Cisco cp7841] Help me register a Cisco-only phone to Asterisk

Hello everyone , nice to meet ya all . This is my first post here i hope i dont screw up any rules,lets get to it.

Lets start with saying i have some experiance with using asterisk & FreePBX i have it deployed to my homelab to my office and i consider my self comfortable with the S/W. Also i have had succsesfull experiance registering Cisco phones to FreePBX Both the 7912 that i was able to register just from the phone’s keypad . Up to the more tricky 7945 that was a bit pain with its xml and tftp shenanigans …but i got it “tamed” :smile:

Now I got my hands on a new-in-box “CP-7841-NC-K9” that i though i can give a try make it operational since it was in such a great condition … My hopes got up when i saw the “loads” firmware version being sip78xx.12-5-1SR3-74 Since it said “SIP” in the f/w version i thougt that it was loaded with a version that could work with Asterisk/freepbx

Starting experimenting & did my research i found the XML files needed for this one and using the great site usecallmanager.nz i assembled the SEPMAC.cnf.xml file and the dialplan but i got to the point that the phone pulled the SEPMAC.cnf.xml file and requests activation code or domain . At this point my hopes were crashed since that error leadme to find that the phone -propably- is cucm only . but there was a mention about a MPP licenence that i could load into it and make it register with asterisk but it also said

MPP firmware enables the Cisco IP Phone to work with approved third-party call control systems

Surly asterisk/Freepbx is noware near approved ! Furthermore i found sites that had this licence for like 50€ and others that had it at 900 surly i miss somthing here …
if someone can help clarify what its goin on with this phone id be glad … its a pitty to hav this gather dust at my storage or even worse end up in a landfill should it has any way to make it work…

Using Cisco SIP phones is always tricky. Generally, they lack some features other phones (like Yealink or Grandstream) offer but they can be made to work in basic ways. The best phones are the ones whose model number ends it “3PCC” for third party call control. As to the “multi-platform” 7841, I don’t know, but there appears to be info on the web to make them work with Asterisk.

Here is a link I found that may assist you: Configuring Asterisk to use Cisco Unified CP-7841, CP-8841, CP-9971, CP-8961 IP Phones – Managed IT Services

It addresses setting up Asterisk by modifying the .conf files but for FreePBX, you’ll need to look at places like the Settings > Asterisk SIP Settings screens.

The software version of the phone matters as well. The license fees you see are typical fees to license a Cisco phone on a Cisco Call Manager system based on system size and features. When you use them on a competing phone system, the fees do not apply for the phones.

1 Like

Hello @kenn10 , thanks for the reply.

This link was In fact what i found first when i did my research.

and i used his config , it got pulled from the TFTP server but we cant get beyond the " Enter activation code or service domain" … and i had packet capture on the phone … it never tried to contact the voip server…

So we are not even close to tweek asterisk’s setings , the phone is not even configured!

Searching the FreePBX forum for chatter about the 7841, I don’t see any successful implementations noted but rather a lot of frustration being expressed. There is some discussion that they can be provisioned with the FreePBX commercial endpoint provisioning module.

Overall, I think you have an expensive paperweight. Even the 3PCC phones are a pain to make work. You’re a lot safer using pure SIP phones unless you have time and a desire to beat your head against the wall. Any of the phones from companies with a proprietary PBX typically are not going to work well on other systems (Cisco, Avaya, Nortel, Siemens, Toshiba, etc.)

Maren Mahoney

VIP Maren Mahoney

VIP

In response to Jc Mtz

Options

‎04-25-2018 04:47 PM - edited ‎04-25-2018 04:48 PM

The CP-7841-K9= phone model is for use with Cisco call control, like CUCM. For 3rd party call control systems like Asterisk, the correct model is CP-7841-3PCC-K9=.

Compare this (CP-7841-K9=):

With this (CP-7841-3PCC-K9=):

Sorry… You have the wrong phone model for what you want to do.

0 Helpful

Reply

1 Like

Older versions of Asterisk have chan_skinny, which implements CUCM native protocols. This wasn’t being supported, so has, I believe, been removed from the very latest version of Asterisk.

chan_skinny might not be supported by FreePBX.

So there was a reason that the phone was listed “local pickup or just pay the cost of shiping” :smile: i was susspicius from the get-go that this might not be compatibe but having worked with 7945 and 7912 that i could flash them with sip f/w i thought id give it a try … aslo seeing “sip78xx.12-5-1SR3-74” on the loaded firmware & the site that was quoted in the 2nd post realy got my hopes up that this could work …but sadly thats not the case … and its a pitty that i will collect dust here … propably could make a deco out of it :


:slightly_smiling_face:

thank you all for replying !

well … Let me correct all of you :innocent: :sunglasses:

The phone is now registerd on my Asterisk !
I found A xml config from here [I cannot post links] , i provisioned the phone with TFTP and it …just worked !

<?xml version="1.0" encoding="UTF-8"?>
<device>
<deviceProtocol>SIP</deviceProtocol>
  <sshUserId>cisco</sshUserId>
  <sshPassword>cisco</sshPassword>
	<tzdata>
		<tzolsonversion>2015a</tzolsonversion>
		<tzupdater>tzupdater.jar</tzupdater>
	</tzdata>
  <devicePool>
		<dateTimeSetting> 
		<name>CMLocal</name>
			<dateTemplate>D/M/YYa</dateTemplate> 
			<timeZone>AUS Eastern Standard/Daylight Time</timeZone>
			<olsonTimeZone>Australia/Sydney</olsonTimeZone>
			<ntps> 
				<ntp>
					<name>NTP SERVER IP ADDRESS</name> 
					<ntpMode>Unicast</ntpMode> 
				</ntp>
			</ntps>
		</dateTimeSetting> 
     <callManagerGroup>
        <members>
           <member priority="0">
              <callManager>
                 <ports>
                    <ethernetPhonePort>2000</ethernetPhonePort>
                    <sipPort>5060</sipPort>
                    <securedSipPort>5061</securedSipPort>
                 </ports>
                 <processNodeName>ASTERISK SERVER IP ADDRESS</processNodeName>
              </callManager>
           </member>
        </members>
     </callManagerGroup>
  </devicePool>
  <commonProfile>
     <phonePassword></phonePassword>
     <backgroundImageAccess>true</backgroundImageAccess>
     <callLogBlfEnabled>2</callLogBlfEnabled>
  </commonProfile>
  <loadInformation>sip9971.9-4-2SR1-2</loadInformation>
  <featurePolicyFile>DefaultFP.xml</featurePolicyFile>
  <vendorConfig>
     <disableSpeaker>false</disableSpeaker>
     <disableSpeakerAndHeadset>false</disableSpeakerAndHeadset>
     <pcPort>0</pcPort>
     <settingsAccess>1</settingsAccess>
     <garp>0</garp>
     <voiceVlanAccess>0</voiceVlanAccess>
     <ciscoCamera>1</ciscoCamera>
     <videoCapability>1</videoCapability>
     <usbClasses>0,1,2</usbClasses>
     <sdio>1</sdio>
     <wifi>0</wifi>
     <bluetoothProfile>0,1</bluetoothProfile>
     <powerNegotiation>0</powerNegotiation>
     <autoSelectLineEnable>0</autoSelectLineEnable> 
     <webAccess>0</webAccess>
     <sshAccess>0</sshAccess>
	 <sshPort>22</sshPort>
     <g722CodecSupport>2</g722CodecSupport>
     <daysDisplayNotActive>1,7</daysDisplayNotActive> 
     <displayOnTime>07:00</displayOnTime> 
     <displayOnDuration>12:00</displayOnDuration> 
     <displayIdleTimeout>00:15</displayIdleTimeout> 
	 <displayOnWhenIncomingCall>1</displayOnWhenIncomingCall>
     <spanToPCPort>1</spanToPCPort>
     <loggingDisplay>1</loggingDisplay>
     <loadServer></loadServer>
  </vendorConfig>
  <commonConfig>
     <usb1>1</usb1>
     <usb2>1</usb2>
     <ciscoCamera>1</ciscoCamera>
     <usbClasses>0,1,2</usbClasses>
     <sdio>1</sdio>
     <bluetooth>1</bluetooth>
     <wifi>0</wifi>
     <bluetoothProfile>0,1</bluetoothProfile>
     <joinAndDirectTransferPolicy>0</joinAndDirectTransferPolicy>
  </commonConfig>
  <enterpriseConfig>
     <usb1>1</usb1>
     <usb2>1</usb2>
     <ciscoCamera>1</ciscoCamera>
     <usbClasses>0,1,2</usbClasses>
     <sdio>1</sdio>
     <bluetooth>1</bluetooth>
     <wifi>0</wifi>
     <bluetoothProfile>0,1</bluetoothProfile>
     <joinAndDirectTransferPolicy>0</joinAndDirectTransferPolicy>
     <videoCapability>0</videoCapability>
     <webAccess>0</webAccess>
     <eapAuthentication>2</eapAuthentication>
     <webProtocol>0</webProtocol>
  </enterpriseConfig>
  <advertiseG722Codec>1</advertiseG722Codec>
  <networkLocale>United_States</networkLocale>
	<networkLocaleInfo> 
		<name>United_States</name> 
		<uid>64</uid> 
		<version>1.0.0.0-1</version> 
	</networkLocaleInfo>
  <deviceSecurityMode>1</deviceSecurityMode>
  <idleTimeout>0</idleTimeout>
  <authenticationURL></authenticationURL>
  <directoryURL></directoryURL>
  <idleURL></idleURL>
  <informationURL></informationURL>
  <messagesNumber></messagesNumber>  
  <messagesURL></messagesURL>
  <proxyServerURL></proxyServerURL>
  <servicesURL>http://cisco.internect.net/</servicesURL>
  <dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig>
  <dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
  <dscpForCm2Dvce>96</dscpForCm2Dvce>
  <transportLayerProtocol>2</transportLayerProtocol>
  <dndCallAlert>5</dndCallAlert>
  <phonePersonalization>1</phonePersonalization>
  <rollover>0</rollover>
  <singleButtonBarge>0</singleButtonBarge>
  <joinAcrossLines>1</joinAcrossLines>
  <autoCallPickupEnable>false</autoCallPickupEnable>
  <blfAudibleAlertSettingOfIdleStation>0</blfAudibleAlertSettingOfIdleStation>
  <blfAudibleAlertSettingOfBusyStation>0</blfAudibleAlertSettingOfBusyStation>
  <capfAuthMode>0</capfAuthMode>
  <capfList>
     <capf>
        <phonePort>3804</phonePort>
     </capf>
  </capfList>
  <certHash></certHash>
  <encrConfig>false</encrConfig>
  <sipProfile>
     <sipProxies>
        <backupProxy>USECALLMANAGER</backupProxy>
        <backupProxyPort>5060</backupProxyPort>
        <emergencyProxy>USECALLMANAGER</emergencyProxy>
        <emergencyProxyPort>5060</emergencyProxyPort>
        <outboundProxy></outboundProxy>
        <outboundProxyPort></outboundProxyPort>
        <registerWithProxy>true</registerWithProxy>
     </sipProxies>
     <sipCallFeatures>
        <cnfJoinEnabled>true</cnfJoinEnabled>
        <callForwardURI>x-cisco-serviceuri-cfwdall</callForwardURI>
        <callPickupURI>x-cisco-serviceuri-pickup</callPickupURI>
        <callPickupListURI>x-cisco-serviceuri-opickup</callPickupListURI>
        <callPickupGroupURI>x-cisco-serviceuri-gpickup</callPickupGroupURI>
        <meetMeServiceURI>x-cisco-serviceuri-meetme</meetMeServiceURI>
        <abbreviatedDialURI>x-cisco-serviceuri-abbrdial</abbreviatedDialURI>
        <rfc2543Hold>false</rfc2543Hold>
        <callHoldRingback>2</callHoldRingback>
        <localCfwdEnable>true</localCfwdEnable>
        <semiAttendedTransfer>true</semiAttendedTransfer>
        <anonymousCallBlock>2</anonymousCallBlock>
        <callerIdBlocking>2</callerIdBlocking>
        <dndControl>1</dndControl>
        <remoteCcEnable>true</remoteCcEnable>
	<retainForwardInformation>true</retainForwardInformation>
     </sipCallFeatures>
     <sipStack>
        <sipInviteRetx>6</sipInviteRetx>
        <sipRetx>10</sipRetx>
        <timerInviteExpires>180</timerInviteExpires>
        <timerRegisterExpires>3600</timerRegisterExpires>
        <timerRegisterDelta>5</timerRegisterDelta>
        <timerKeepAliveExpires>120</timerKeepAliveExpires>
        <timerSubscribeExpires>120</timerSubscribeExpires>
        <timerSubscribeDelta>5</timerSubscribeDelta>
        <timerT1>500</timerT1>
        <timerT2>4000</timerT2>
        <maxRedirects>70</maxRedirects>
        <remotePartyID>false</remotePartyID>
        <userInfo>None</userInfo>
     </sipStack>
     <autoAnswerTimer>0</autoAnswerTimer>
     <autoAnswerAltBehavior>false</autoAnswerAltBehavior>
     <autoAnswerOverride>true</autoAnswerOverride>
     <transferOnhookEnabled>false</transferOnhookEnabled>
     <enableVad>false</enableVad>
     <preferredCodec>none</preferredCodec>
     <dtmfAvtPayload>101</dtmfAvtPayload>
     <dtmfDbLevel>3</dtmfDbLevel>
     <dtmfOutofBand>avt</dtmfOutofBand>
     <alwaysUsePrimeLine>true</alwaysUsePrimeLine>
     <alwaysUsePrimeLineVoiceMail>true</alwaysUsePrimeLineVoiceMail>
     <kpml>3</kpml>
     <natEnabled>false</natEnabled>
     <natAddress></natAddress>
     <stutterMsgWaiting>2</stutterMsgWaiting>
     <callStats>false</callStats>
     <silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
     <disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig>
     <startMediaPort>10000</startMediaPort>
     <stopMediaPort>20000</stopMediaPort>
     <voipControlPort>5060</voipControlPort>
     <dscpForAudio>184</dscpForAudio>
	 <dscpVideo>136</dscpVideo>
	 <dscpForTelepresence>128</dscpForTelepresence>
     <ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
	 <softKeyFile>softKey9971.xml</softKeyFile>
     <dialTemplate>dialplan.xml</dialTemplate>
     <phoneLabel>PHONE LABEL</phoneLabel>
     <sipLines>
        <line button="1" lineIndex="1">
           <featureID>9</featureID>
           <featureLabel>LABEL</featureLabel>
           <name>NAME</name>
           <displayName>DISPLAY NAME</displayName>
           <contact>CONTACT</contact>
           <proxy>USECALLMANAGER</proxy>
           <port>5060</port>
           <autoAnswer>
              <autoAnswerEnabled>2</autoAnswerEnabled>
           </autoAnswer>
           <callWaiting>3</callWaiting>
           <authName>USERNAME</authName>
           <authPassword>PASSWORD</authPassword>
           <sharedLine>false</sharedLine>
           <messageWaitingLampPolicy>3</messageWaitingLampPolicy>
		   <messageWaitingAMWI>1</messageWaitingAMWI>
           <messagesNumber>VOICE MAIL NUMBER</messagesNumber>
           <ringSettingIdle>4</ringSettingIdle>
           <ringSettingActive>5</ringSettingActive>
           <forwardCallInfoDisplay>
              <callerName>true</callerName>
              <callerNumber>false</callerNumber>
              <redirectedNumber>false</redirectedNumber>
              <dialedNumber>true</dialedNumber>
           </forwardCallInfoDisplay>
			<maxNumCalls>4</maxNumCalls>
			<busyTrigger>2</busyTrigger>
        </line>
		<line  button="3">
                        <featureID>21</featureID>
                        <featureLabel>LABEL BUTTON 2</featureLabel>
                        <speedDialNumber>NUMBER</speedDialNumber>
                        <featureOptionMask>1</featureOptionMask>
        </line>
        <line  button="3">
                        <featureID>21</featureID>
                        <featureLabel>LABEL BUTTON 3</featureLabel>
                        <speedDialNumber>NUMBER</speedDialNumber>
                        <featureOptionMask>1</featureOptionMask>
        </line>
		<line  button="4">
                        <featureID>21</featureID>
                        <featureLabel>LABEL BUTTON 4</featureLabel>
                        <speedDialNumber>NUMBER</speedDialNumber>
                        <featureOptionMask>1</featureOptionMask>
        </line>
		<line  button="5">
                        <featureID>21</featureID>
                        <featureLabel>LABEL BUTTON 5</featureLabel>
                        <speedDialNumber>NUMBER</speedDialNumber>
                        <featureOptionMask>1</featureOptionMask>
        </line>
		<line  button="6">
                        <featureID>21</featureID>
                        <featureLabel>LABEL BUTTON 6</featureLabel>
                        <speedDialNumber>NUMBER</speedDialNumber>
        </line>
	</sipLines>
  </sipProfile>
	<phoneServices>
     <provisioning>0</provisioning>
     	<phoneService  type="1" category="0">
     		<name>Missed Calls</name>
     		<url>Application:Cisco/MissedCalls</url>
        	<vendor></vendor>
     		<version></version>
     	</phoneService>
	<phoneService  type="2" category="0">
		<name>Voicemail</name>
		<url>Application:Cisco/Voicemail</url>
		<vendor></vendor>
		<version></version>
	</phoneService>
	<phoneService  type="1" category="0">
		<name>Received Calls</name>
		<url>Application:Cisco/ReceivedCalls</url>
		<vendor></vendor>
		<version></version>
	</phoneService>
	<phoneService  type="1" category="0">
		<name>Placed Calls</name>
		<url>Application:Cisco/PlacedCalls</url>
		<vendor></vendor>
		<version></version>
		</phoneService>
			<phoneService  type="0" category="0">
				<name>Australian Services</name>
                <url>http://cisco.internect.net/</url>
                <vendor></vendor>
                <version></version>
        </phoneService>
	</phoneServices>
</device>

I now just have to find firmware for it …just in case

@david55 @kenn10 thanks for your reply

1 Like

Congratulations! Your persistence paid off. Let us know how it works out when you program the phone.

1 Like

The phone is now registered to freepbx with the config i marked as solution. I can dial from it, dial to it with perfect sound, SIP signaling works at it should i can transfer, hold calls with no problem.
Once im done with Semester exams ill focus on getting directory services working & forwarding

Only thing i dont like is that i cannot find a firmware for it.
it reports having

App Load ID	rootfs78xx.12-5-1SR3-74
Boot Load ID	sboot78xx.12-5-1SR3-74
Version	sip78xx.12-5-1SR3-74

but im not sure where to get it. OFC i will not try flashing anything to it now i got it working… but it adds to me a extra layer of safety having the f/w files.

Cisco phones are meant to go along with a valid support contract. You only get firmware updates to their hardware if you have a contract with them. They are not the best option for SIP hardware out there outside of an org that uses Cisco in general and has Cisco support contracts.

You only get firmware updates to their hardware if you have a contract with them.

I know that these devices are not ment to be owned from a dude playing in his homelab. i know that they are not ment for SIP, but personally (since im doing it for edu purposes, plus i like the professional look i can justify the time, effort and headaches fiddling with them) In fact from the experience i had with the 7912 & 7945s I dealt in the past, was able to download f/w from Cisco`s website. (In fact, it was mandatory to download this f/w so they can work with SIP.) i thought that there should be smt out there for the 7841 even if it comes without any support whatsoever…

This 7841 was given to me with F/w that already said “SIP…” (see above) and i would really like to have some firmware in hand so should I come across another similar phone i could make it as operational as it can be on an asterisk PBX.

They are not the best option for SIP hardware

If you have ever visit r/Homelab youll see a tone of " not the best option for [ x ] hardware for the job "
similar case here…

rest assured id never deploy a cisco phone accompanied by a Asterisk PBX someware important , where downtime is not justified (for example a office or a company)

Anyway. i hope the config i posted as a solution helps someone and thank you guies for takin the time to reply!

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.