[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:
-
What DHCP options you are sending to the phone
-
The log entries for your TFTP server showing the files the phone is attempting to load
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 *85Here’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 *85A 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 falseLog 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

