Cisco 7970 and pjsip compatibility

I am trying to upgrade from a very old asterisk now installation running happily with a couple of Cisco 7970 phones in SIP mode to FreePBX (15.0.16.76). One of the factors driving this is the ability to connect to an extension using multiple devices (e.g. a phone and a softphone), which apparently requires pjsip rather than “standard” SIP.

However, I am unable to get my Cisco register on FreePBX/pjsip instead of Asterisk Now/sip. All I did was to replace the IP address the phone is supposed to connect to.
(Obviously account/extension and password are the same on both systems). However, the phone keeps looping through registration attempts with no success.

Browsing the forums, I get the impression that pjsip was (or is?) not suitable for Cisco phones. Is that still true?
If so, it basically defeats the main driver for switching. Any other options?

For the extensions in question, turn off Rewrite Contact and Force rport.

If no luck, at the Asterisk command prompt, type
pjsip set logger on
If REGISTER requests appear, post an attempted registration, including replies.
If not, report whether sngrep shows the requests.
If not, the attempts are not reaching the PBX and you need to troubleshoot the networking problem.

However, IMO putting multiple devices on the same extension is nearly useless; Follow Me or a Ring Group usually has better behavior.

Examples:

When I don’t answer the office phone quickly, after a delay a SIP app on my mobile starts to ring. The delay usually avoids the distraction of having the mobile ring (also heard by the caller because it takes ~1 second to stop when the desk phone is answered).

If I’m on the desk phone and another call comes in, I have the option to hold the existing call and answer the new one, but don’t want the mobile ringing.

It is useful for the CDRs to show which device made or took a call.

Usually, I use Ciscos (7975, 8961) with patched Asterisk/freePBX…and chan_sip…tcp.
Yet, I have one Cisco 7975 connected to a freePBX 15-Asterisk 16 server (non-patched). In the freePBX pjsip extension settings I set “transport” to 0.0.0.0-tcp. The port I set to 5062, but the Cisco doesnt care and uses a random port.
In the Asterisk SIP-PJSIP-settings activate tcp-0.0.0.0 and set the port to 5062.

This is my SEP-config-file, dont use it without editing. I use Austrian/German settings and some other custom stuff…but you get the idea!

<?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>5062</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>5062</sipPort1>
			<sipIpAddr2></sipIpAddr2>
			<sipPort2>5062</sipPort2>
			<sipIpAddr3></sipIpAddr3>
			<sipPort3>5062</sipPort3>
			<isSecure>false</isSecure>
		</srstInfo>
		<connectionMonitorDuration>120</connectionMonitorDuration>
	</devicePool>
    <commonProfile>
        <phonePassword></phonePassword>
        <backgroundImageAccess>true</backgroundImageAccess>
        <callLogBlfEnabled>0</callLogBlfEnabled>
    </commonProfile>
    <loadInformation>SIP75.9-4-2SR3-1S</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>1</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>5062</backupProxyPort>
        <emergencyProxy>USECALLMANAGER</emergencyProxy>
        <emergencyProxyPort>5062</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>false</alwaysUsePrimeLine>
        <alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail>
        <kpml>3</kpml>
        <stutterMsgWaiting>0</stutterMsgWaiting>
        <callStats>false</callStats>
        <silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
        <disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig>
        <startMediaPort>16384</startMediaPort>
        <stopMediaPort>32766</stopMediaPort>
        <voipControlPort>5062</voipControlPort>
        <dscpForAudio>184</dscpForAudio>
        <ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
        <dialTemplate>dialplan.xml</dialTemplate>
        <softKeyFile>softkeys1.xml</softKeyFile>
        <phoneLabel>Extension_name</phoneLabel>
        <natEnabled></natEnabled>
        <sipLines>
            <line button="1">
                <featureID>9</featureID>
                <featureLabel>15</featureLabel>
                <name>15</name>
                <displayName>15</displayName>
                <contact>15</contact>
                <proxy>USECALLMANAGER</proxy>
                <port>5062</port>
                <autoAnswer>
                    <autoAnswerEnabled>2</autoAnswerEnabled>
                </autoAnswer>
                <callWaiting>1</callWaiting>
                <authName>15</authName>
                <authPassword>password</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>ext_name</featureLabel>
        	<speedDialNumber>11</speedDialNumber>
        	<featureOptionMask>1</featureOptionMask>
        	</line>
        	<line button="3">
			<featureID>21</featureID>
        	<featureLabel>ext_name</featureLabel>
        	<speedDialNumber>12</speedDialNumber>
        	<featureOptionMask>1</featureOptionMask>
        	</line>
			<line button="4">
			<featureID>21</featureID>
        	<featureLabel>ext_name</featureLabel>
        	<speedDialNumber>13</speedDialNumber>
        	<featureOptionMask>1</featureOptionMask>
        	</line>
			<line button="5">
			<featureID>21</featureID>
        	<featureLabel>ext_name</featureLabel>
        	<speedDialNumber>14</speedDialNumber>
        	<featureOptionMask>1</featureOptionMask>
        	</line>
        	<line button="6">
			<featureID>21</featureID>
        	<featureLabel>ext_name</featureLabel>
        	<speedDialNumber>17</speedDialNumber>
        	<featureOptionMask>1</featureOptionMask>
          	</line>
          	<line button="7">
         	<featureID>20</featureID>
         	<featureLabel>CAMERA</featureLabel>
         	<serviceURI>http://192.168.0.34/xmlservices/cam.php</serviceURI>
         	</line>
         	<line button="8">
			<featureID>20</featureID>
        	<featureLabel>Open Door</featureLabel>
			<serviceURI>http://192.168.0.34/xmlservices/open-door-15.php</serviceURI>
        	</line>
            </sipLines>
    </sipProfile>

</device>

The TCP vs. UDP difference between PJ-SIP and Chan-SIP is important, IIRC. The SIP connection doesn’t work correctly with UDP on the Cisco SIP load.

As always, an obligatory recommendation to upgrade to Chan-SCCP-B and SCCP Manager and leave the phone in SCCP mode. This gives you all the advanced features of the SCCP phone without having to patch Asterisk.

1 Like

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