Cisco 7970 SIP registration error

[2026-01-19 15:09:37] NOTICE[49809]: res_pjsip/pjsip_distributor.c:682 log_failed_request: Request ‘REGISTER’ from ‘sip:[email protected]’ failed for ‘192.168.1.38:49308’ (callid: [email protected]) - No matching endpoint found after 5 tries in 0.066 ms

Please post the following:

  1. What DHCP options you are sending to the phone

  2. The log entries for your TFTP server showing the files the phone is attempting to load

1 Like

I don’t think it’s the TFTP issue but here’s my TFTP option on the DHCP server dhcp-option=66,“192.168.1.39”

When I do hard rest, the phone downloads the files from the tftp servers and applies them. The time is synced correctly with NTP, I can get the dial tone but will not connect to my FreePBX pjsip extension. I can connect to the extension from my 3CX software and call jsut fine.

<?xml version="1.0" encoding="UTF-8"?> true SIP cisco cisco 0 true 0 2012c tzupdater.jar 000000 Off Disabled false 0 Default CMLocal M/D/YA Central Standard/Daylight Time America/Chicago 129.6.15.30 Unicast Default true Asterisk Asterisk 2000 5060 5061 2427 2428 192.168.1.39 120 true x-cisco-serviceuri-cfwdall x-cisco-serviceuri-pickup x-cisco-serviceuri-opickup x-cisco-serviceuri-gpickup x-cisco-serviceuri-meetme x-cisco-serviceuri-abbrdial false 2 1 true true 2 2 0 true false 6 10 180 3600 5 120 120 5 500 4000 70 true None 1 false true false false none 101 3 avt 3 JamesKyaw 2 true 15000 15000 10 true false 16384 20000 9 742 USECALLMANAGER 5060 742 742 2 3 742 NotMyRealPassword false 3 0 *97 4 5 742 true false false true 4 2 5060 184 180 176 164 168 168 156 148 140 132 132 136 128 0 dialplan.xml false false 11100000000000000000000000000 true 2 SIP70.9-3-1SR4-1S false false 0 1 1 0 0 0 08:30 09:30 01:01 1 1 1 5 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1404821106-161d7dc7-8b26-4ff5-8489-dd9e431627ab English_United_States 1 en_US 9.0.0.0(1) iso-8859-1 United_States United_States 64 9.0.0.0(1) 1 0 96 0 96 2 5 1 0 0 0 false 1 1 0 3804 192.168.1.39 false 1 *81 *82 *83 *84 *85

Here’s my SEP.xml file

<?xml version="1.0" encoding="UTF-8"?> true SIP cisco cisco 0 true 0 2012c tzupdater.jar 000000 Off Disabled false 0 Default CMLocal M/D/YA Central Standard/Daylight Time America/Chicago 129.6.15.30 Unicast Default true Asterisk Asterisk 2000 5060 5061 2427 2428 192.168.1.39 120 true x-cisco-serviceuri-cfwdall x-cisco-serviceuri-pickup x-cisco-serviceuri-opickup x-cisco-serviceuri-gpickup x-cisco-serviceuri-meetme x-cisco-serviceuri-abbrdial false 2 1 true true 2 2 0 true false 6 10 180 3600 5 120 120 5 500 4000 70 true None 1 false true false false none 101 3 avt 3 JamesKyaw 2 true 15000 15000 10 true false 16384 20000 9 742 USECALLMANAGER 5060 742 742 2 3 742 NotMyRealPassword false 3 0 *97 4 5 742 true false false true 4 2 5060 184 180 176 164 168 168 156 148 140 132 132 136 128 0 dialplan.xml false false 11100000000000000000000000000 true 2 SIP70.9-3-1SR4-1S false false 0 1 1 0 0 0 08:30 09:30 01:01 1 1 1 5 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 1 1 1 0 1 1404821106-161d7dc7-8b26-4ff5-8489-dd9e431627ab English_United_States 1 en_US 9.0.0.0(1) iso-8859-1 United_States United_States 64 9.0.0.0(1) 1 0 96 0 96 2 5 1 0 0 0 false 1 1 0 3804 192.168.1.39 false 1 *81 *82 *83 *84 *85

A typical SEP.xml-file looks like this (be careful, these are german settings)

<?xml version="1.0" encoding="UTF-8"?>
<device>
    <fullConfig>true</fullConfig>
    <deviceProtocol>SIP</deviceProtocol>
    <sshUserId>admin</sshUserId>
    <sshPassword>cisco</sshPassword>
    <devicePool>
        <dateTimeSetting>
            <dateTemplate>D.M.Y</dateTemplate>
            <timeZone>W. Europe Standard/Daylight Time</timeZone>
            <ntps>
                <ntp>
                    <name>131.234.137.23</name>
      				<ntpMode>unicast</ntpMode>
    			</ntp>
    			<ntp>
      				<name>192.53.103.108</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>192.168.0.34</processNodeName>
              </callManager>
                </member>
            </members>
        </callManagerGroup>
		<srstInfo  uuid="{cd241e11-4a58-4d3d-9661-f06c912a18a3}">
			<srstOption>Disable</srstOption>
			<ipAddr1></ipAddr1>
			<port1>2000</port1>
			<ipAddr2></ipAddr2>
			<port2>2000</port2>
			<ipAddr3></ipAddr3>
			<port3>2000</port3>
			<sipIpAddr1></sipIpAddr1>
			<sipPort1>5060</sipPort1>
			<sipIpAddr2></sipIpAddr2>
			<sipPort2>5060</sipPort2>
			<sipIpAddr3></sipIpAddr3>
			<sipPort3>5060</sipPort3>
			<isSecure>false</isSecure>
		</srstInfo>
		<connectionMonitorDuration>120</connectionMonitorDuration>
	</devicePool>
    <commonProfile>
        <phonePassword></phonePassword>
        <backgroundImageAccess>true</backgroundImageAccess>
        <callLogBlfEnabled>0</callLogBlfEnabled>
    </commonProfile>
    <loadInformation>SIP75.9-4-2SR4-3S</loadInformation>
    <vendorConfig>
        <disableSpeaker>false</disableSpeaker>
        <disableSpeakerAndHeadset>false</disableSpeakerAndHeadset>
        <pcPort>0</pcPort>
        <settingsAccess>1</settingsAccess>
        <garp>0</garp>
        <voiceVlanAccess>0</voiceVlanAccess>
        <g722CodecSupport>2</g722CodecSupport>
        <handsetWidebandEnable>1</handsetWidebandEnable>
        <headsetWidebandEnable>0</headsetWidebandEnable>
        <headsetWidebandUIControl>1</headsetWidebandUIControl>
        <handsetWidebandUIControl>1</handsetWidebandUIControl>
        <videoCapability>0</videoCapability>
        <autoSelectLineEnable>0</autoSelectLineEnable>
        <daysDisplayNotActive>1,2,3,4,5,6,7</daysDisplayNotActive>
        <displayOnTime></displayOnTime>
        <displayOnDuration></displayOnDuration>
        <displayIdleTimeout>00:05</displayIdleTimeout>
        <webAccess>0</webAccess>
        <spanToPCPort>0</spanToPCPort>
        <loggingDisplay>1</loggingDisplay>
        <displayOnWhenIncomingCall>1</displayOnWhenIncomingCall>
        <loadServer></loadServer>
    </vendorConfig>
    <userLocale>
        <name>German_Germany</name>
        <uid></uid>
        <langCode>de</langCode>
        <version></version>
        <winCharSet>ISO-8859-1</winCharSet>
    </userLocale>
    <networkLocale>Austria</networkLocale>
    <networkLocaleInfo>
        <name>Austria</name>
        <version></version>
    </networkLocaleInfo>
    <deviceSecurityMode>1</deviceSecurityMode>
    <authenticationURL>http://192.168.0.34/cisco/services/authentication.php</authenticationURL>
    <directoryURL>http://192.168.0.34/xmlservices/index2.php</directoryURL>
    <idleTimeout>0</idleTimeout>
    <idleURL></idleURL>
    <informationURL>http://192.168.0.34/xmlservices/help.php</informationURL>
    <messagesURL></messagesURL>
    <proxyServerURL></proxyServerURL>
    <servicesURL>http://192.168.0.34/xmlservices/index.php</servicesURL>
    <dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig>
    <dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
    <dscpForCm2Dvce>96</dscpForCm2Dvce>
    <transportLayerProtocol>1</transportLayerProtocol>
    <dndCallAlert>5</dndCallAlert>
    <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>true</rfc2543Hold>
            <callHoldRingback>2</callHoldRingback>
            <localCfwdEnable>false</localCfwdEnable>
            <semiAttendedTransfer>true</semiAttendedTransfer>
            <anonymousCallBlock>2</anonymousCallBlock>
            <callerIdBlocking>0</callerIdBlocking>
            <dndControl>0</dndControl>
            <remoteCcEnable>true</remoteCcEnable>
        </sipCallFeatures>
        <sipStack>
            <sipInviteRetx>6</sipInviteRetx>
            <sipRetx>10</sipRetx>
            <timerInviteExpires>180</timerInviteExpires>
            <timerRegisterExpires>1200</timerRegisterExpires>
            <timerRegisterDelta>5</timerRegisterDelta>
            <timerKeepAliveExpires>120</timerKeepAliveExpires>
            <timerSubscribeExpires>120</timerSubscribeExpires>
            <timerSubscribeDelta>5</timerSubscribeDelta>
            <timerT1>500</timerT1>
            <timerT2>4000</timerT2>
            <maxRedirects>70</maxRedirects>
            <remotePartyID>true</remotePartyID>
            <userInfo>None</userInfo>
        </sipStack>
        <autoAnswerTimer>1</autoAnswerTimer>
        <autoAnswerAltBehavior>false</autoAnswerAltBehavior>
        <autoAnswerOverride>true</autoAnswerOverride>
        <transferOnhookEnabled>true</transferOnhookEnabled>
        <enableVad>false</enableVad>
        <preferredCodec>g722</preferredCodec>
        <advertiseG722Codec>1</advertiseG722Codec>
        <dtmfAvtPayload>101</dtmfAvtPayload>
        <dtmfDbLevel>3</dtmfDbLevel>
        <dtmfOutofBand>avt</dtmfOutofBand>
        <alwaysUsePrimeLine>true</alwaysUsePrimeLine>
        <alwaysUsePrimeLineVoiceMail>true</alwaysUsePrimeLineVoiceMail>
        <kpml>3</kpml>
        <stutterMsgWaiting>0</stutterMsgWaiting>
        <callStats>false</callStats>
        <silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
        <disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig>
        <startMediaPort>16384</startMediaPort>
        <stopMediaPort>32766</stopMediaPort>
        <voipControlPort>5060</voipControlPort>
        <dscpForAudio>184</dscpForAudio>
        <ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
        <dialTemplate>dialplan.xml</dialTemplate>
        <softKeyFile>softkeys1.xml</softKeyFile>
        <phoneLabel>xxx-2</phoneLabel>
        <natEnabled></natEnabled>
        <sipLines>
            <line button="1">
                <featureID>9</featureID>
                <featureLabel>21</featureLabel>
                <name>21</name>
                <displayName>21</displayName>
                <contact>21</contact>
                <proxy>USECALLMANAGER</proxy>
                <port>5060</port>
                <autoAnswer>
                    <autoAnswerEnabled>2</autoAnswerEnabled>
                </autoAnswer>
                <callWaiting>1</callWaiting>
                <authName>21</authName>
                <authPassword>xxx</authPassword>
                <sharedLine>false</sharedLine>
                <messageWaitingLampPolicy>3</messageWaitingLampPolicy>
                <messagesNumber>*9811</messagesNumber>
                <ringSettingIdle>4</ringSettingIdle>
                <ringSettingActive>5</ringSettingActive>
                <forwardCallInfoDisplay>
                    <callerName>true</callerName>
                    <callerNumber>false</callerNumber>
                    <redirectedNumber>false</redirectedNumber>
                    <dialedNumber>true</dialedNumber>
                </forwardCallInfoDisplay>
            </line>
            <line button="2">
			<featureID>21</featureID>
        	<featureLabel>phone-11</featureLabel>
        	<speedDialNumber>11</speedDialNumber>
        	<featureOptionMask>1</featureOptionMask>
        	</line>
        	<line button="3">
			<featureID>21</featureID>
        	<featureLabel>EG</featureLabel>
        	<speedDialNumber>12</speedDialNumber>
        	<featureOptionMask>1</featureOptionMask>
        	</line>
			<line button="4">
			<featureID>21</featureID>
        	<featureLabel>TV</featureLabel>
        	<speedDialNumber>13</speedDialNumber>
        	<featureOptionMask>1</featureOptionMask>
        	</line>
			<line button="5">
			<featureID>21</featureID>
        	<featureLabel>BÜRO</featureLabel>
        	<speedDialNumber>14</speedDialNumber>
        	<featureOptionMask>1</featureOptionMask>
        	</line>
        	<line button="6">
			<featureID>21</featureID>
        	<featureLabel>xxx</featureLabel>
        	<speedDialNumber>17</speedDialNumber>
        	<featureOptionMask>1</featureOptionMask>
          	</line>
          	<line button="7">
         	<featureID>20</featureID>
         	<featureLabel>KAMERA</featureLabel>
         	<serviceURI>http://192.168.0.34/xmlservices/cam.php</serviceURI>
         	</line>
         	<line button="8">
			<featureID>20</featureID>
        	<featureLabel>HAUSTOR ÖFFNEN</featureLabel>
			<serviceURI>http://192.168.0.34/xmlservices/open-door-15.php</serviceURI>
        	</line>
            </sipLines>
    </sipProfile>

</device>

I reckon you need to provide the IP of the SIP Server, that is your FreePBX server,via DHCP option 66 or 150, I’m not certain. You may also be able to define several CM-servers (First , fallback, 2nd fallback etc.) using the XML file. But I’m not sure how 7970 wants that configured.

But I did…

9 742 USECALLMANAGER 5060 742 742 2 3 742 NotMyRealPassword false

Log when using Cisco 7970 to authenticate to pjsip on Freepbx
508[2026-02-03 02:15:22] VERBOSE[97339] res_pjsip_logger.c: <— Transmitting SIP response (514 bytes) to UDP:192.168.1.41:52236 —>

509SIP/2.0 401 Unauthorized

510Via: SIP/2.0/UDP 192.168.1.41:5060;rport=52236;received=192.168.1.41;branch=z9hG4bK99e131b8

511Call-ID: [email protected]

512From: “742” sip:[email protected];tag=001956bd30b80002c9224948-d7bba73c

513To: sip:[email protected];tag=z9hG4bK99e131b8

514CSeq: 101 INVITE

515WWW-Authenticate: Digest realm=“asterisk”,nonce=“1770084922/2ac9d2b5f95bbaf32fb3ea23150d0e60”,opaque=“2773fc653e23ae44”,algorithm=MD5,qop=“auth”

516Server: FPBX-17.0.25(22.7.0)

517Content-Length: 0


Log when using 3CX soft phone on my laptop. It works.
47[2026-02-03 02:14:12] VERBOSE[97339] res_pjsip_logger.c: <— Transmitting SIP response (526 bytes) to UDP:192.168.1.173:54622 —>

48SIP/2.0 200 OK

49Via: SIP/2.0/UDP 192.168.1.173:54622;rport=54622;received=192.168.1.173;branch=z9hG4bK-d8754z-bc480b0db02ebc3d-1—d8754z-

50Call-ID: ZTkyMTc3YzdhZTM3YzhjMWVkM2ZhZDA1NWUyY2UzOGM.

51From: “741” sip:[email protected];tag=d810de0b

52To: “741” sip:[email protected];tag=z9hG4bK-d8754z-bc480b0db02ebc3d-1—d8754z-

53CSeq: 2 REGISTER

54Date: Tue, 03 Feb 2026 02:14:12 GMT

55Contact: sip:[email protected]:54622;rinstance=e709f3f348e9f34f;expires=119

56Expires: 120

57Server: FPBX-17.0.25(22.7.0)

58Content-Length: 0

That 7 should probably be 742. Does the number 7 appear anywhere in the phone config?

531[2026-02-03 07:38:44] VERBOSE[1291] res_pjsip_logger.c: <— Received SIP request (1350 bytes) from UDP:192.168.1.41:49241 —>

532INVITE sip:[email protected];user=phone SIP/2.0

533Via: SIP/2.0/UDP 192.168.1.41:5060;branch=z9hG4bKb16b55e0

534From: “742” sip:[email protected];tag=001956bd30b800036169bd68-0e975ab6

535To: sip:[email protected]

536Call-ID: [email protected]

537Max-Forwards: 70

538Date: Tue, 03 Feb 2026 07:38:13 GMT

539CSeq: 101 INVITE

540User-Agent: Cisco-CP7970G/9.3.1

541Contact: sip:[email protected]:5060;transport=udp

542Expires: 180

543Accept: application/sdp

544Allow: ACK,BYE,CANCEL,INVITE,NOTIFY,OPTIONS,REFER,REGISTER,UPDATE,SUBSCRIBE,INFO

545Remote-Party-ID: “742” sip:[email protected];party=calling;id-type=subscriber;privacy=off;screen=yes

546Supported: replaces,join,sdp-anat,norefersub,resource-priority,extended-refer,X-cisco-callinfo,X-cisco-serviceuri,X-cisco-escapecodes,X-cisco-service-control,X-cisco-srtp-fallback,X-cisco-monrec,X-cisco-config,X-cisco-sis-6.0.0,X-cisco-xsi-8.5.1

547Allow-Events: kpml,dialog

548Content-Length: 328

549Content-Type: application/sdp

550Content-Disposition: session;handling=optional

551

552v=0

553o=Cisco-SIPUA 12944 0 IN IP4 192.168.1.41

554s=SIP Call

555t=0 0

556m=audio 16596 RTP/AVP 0 8 18 102 9 101

557c=IN IP4 192.168.1.41

558a=rtpmap:0 PCMU/8000

559a=rtpmap:8 PCMA/8000

560a=rtpmap:18 G729/8000

561a=fmtp:18 annexb=no

562a=rtpmap:102 L16/16000

563a=rtpmap:9 G722/8000

564a=rtpmap:101 telephone-event/8000

565a=fmtp:101 0-15

566a=sendrecv

567

568[2026-02-03 07:38:44] VERBOSE[2117] res_pjsip_logger.c: <— Transmitting SIP response (514 bytes) to UDP:192.168.1.41:49241 —>

569SIP/2.0 401 Unauthorized

570Via: SIP/2.0/UDP 192.168.1.41:5060;rport=49241;received=192.168.1.41;branch=z9hG4bKb16b55e0

571Call-ID: [email protected]

572From: “742” sip:[email protected];tag=001956bd30b800036169bd68-0e975ab6

573To: sip:[email protected];tag=z9hG4bKb16b55e0

574CSeq: 101 INVITE

575WWW-Authenticate: Digest realm=“asterisk”,nonce=“1770104324/62b4901328504d92b6c39dd93f19d248”,opaque=“68fd2d895a90c825”,algorithm=MD5,qop=“auth”

576Server: FPBX-17.0.25(22.7.0)

577Content-Length: 0

Not sure. Searched in SEP(MAC).xml file but found nothing with only 7. Everything else is 742

OMG! Finally got it working after months of trying. Followed the instructions here
https://github.com/buba0/Cisco-7900-and-8800-series-freepbx-setup

Would be cool if you could summarize it for people who look it up later on.

99.9% of the time the problem with getting these to register is errors in the SEPMAC file.

The SEP.mxl file he posted was not encased in code brackets so it was completely munched by the blog software but even looking at the mess that showed up in the blog it appears that there were important things missing.

The phones are enormously intolerant of typographical errors in this file a single brace missing will screw them up.

Remember these XML files are generated by the Cisco UCMs on the fly. And, since around version 10 of UCM they are all generated encrypted so all of our SEPMAC file examples today are from older UCMs. Cisco has never published an authoritative guide to the SEPMAC file format for Enterprise phones because they do not want people doing exactly what we are doing - using Enterprise-licensed phones on 3rd party PBXes. Everything you see on the Internet today is from old unencrypted SEPMAC files, and trial and error with those. And a lot of what is posted is just ripped off from earlier posts by people who don’t even have the skill to trial and error what they have dug up.

The github link that was posted and the usecallmanager site are the best sources at this moment for these config files

3 Likes