home Sonstiges Linux OpenBSD Links

If you think this information are helpful and you want to support me, I would be happy for a Dogecoin donation. DDGLg1dbwETiM8uSHjHy7tFQ7qZURoniok

Cisco 9971 mit einer Fritzbox 7390 nutzen

Es gibt dutzende Anleitungen im Web zur Konfiguration der Fritzbox und des 9971, daher hier nur eine Kurzanleitung.

Netzwerkaufbau: Cisco 9971 VoIP Telefon mit SIP Firmware 9.0.4 (kann man nach kostenloser Registrierung auf cisco.com runterladen, Dateiname cmterm-9971.9-0-4.zip), TFTP Server auf 192.168.44.119 gesetzt (leider hat die Fritzbox noch keinen TFTP Server, daher verwende ich einen RaspberryPi als TFTP Server).
Fritzbox mit der IP 192.168.44.2. RaspberryPi mit TFTP Server, IP: 192.168.44.119.

Es gibt auch neuere Firmwares, diese haben aber ein Problem mit NTP.

Im TFTP Verzeichnis liegen folgende Dateien:

ctu.raw                         Klingelton, bekannt aus der Serie 24
DefaultFP.xml                   Konfigurationsdatei, legt einige Defaultwerte fest
dialplan.xml                    Dialplan (siehe unten)
dkern9971.100609R2-9-0-4.sebn   Firmware
kern9971.9-0-4.sebn             Firmware
ringlist.xml                    Klingeltonliste (siehe unten)
rootfs9971.9-0-4.sebn           Firmware
sboot9971.111909R1-9-0-4.sebn   Firmware
SEP001F6C123444.cnf.xml         Konfigurationsdatei für das Telefon mit der MAC Adresse 001F6C123444 (siehe unten)
sip9971.9-0-4.loads             Firmware
skern9971.022809R2-9-0-4.sebn   Firmware
Germany/gd-sip.jar              im Verzeichnis Germany wird die deutsche Locale abgelegt (siehe unten)
Im htdocs Verzeichnis des Webservers liegen folgende Dateien:
ciscoauth.php		  Authorisierung für Screenshots, etc
directory.php		  Telefonbuch

Falls man die deutsche Locale will muss man von der Cisco Webseite die Datei po-locale-de_DE-10.1.1.1000-1.cop herunterladen. Aus diesen Archiv benötigt man die Datei gd-sip.jar. Es handelt sich bei der cop Datei um ein zweifach gepacktes tar Archiv:
pi@raspberry:~/germanycisco $ file po-locale-de_DE-10.1.1.1000-1.cop
po-locale-de_DE-10.1.1.1000-1.cop: POSIX tar archive (GNU)
pi@raspberry:~/germanycisco $ tar xf po-locale-de_DE-10.1.1.1000-1.cop
pi@raspberry:~/germanycisco $ tar xf po-locale-de_DE-10.1.1.1000-1.tar
pi@raspberry:~/germanycisco $ cd usr/local/cm/tftp/german_germany/
pi@raspberry:~/germanycisco/usr/local/cm/tftp/german_germany $ ls -l gd-sip.jar
-rw-r--r-- 1 pi pi 349110 Dez 10  2013 gd-sip.jar                   <--- diese Datei in das Verzeichnis Germany des TFTP Servers kopieren

Um eine manuelle Netzwerkkonfiguration einzugeben, muß man in die Settings gehen:
Cisco 9971 settings menu Cisco 9971 admin settings menu

Ethernet configuration select IPv4

activate DHCP enable alternative TFTP Server and enter the IP of it


Die Konfigurationsdatei SEP001F6CABCDEF.cnf.xml hat folgenden Inhalt:
<?xml version="1.0" encoding="UTF-8"?>
<device>
	<deviceProtocol>SIP</deviceProtocol>
	<sshUserId>admin</sshUserId>                                                              Username
	<sshPassword>admin</sshPassword>                                                          und Passwort für den SSH Zugang
	<devicePool>
		<dateTimeSetting>
			<dateTemplate>D.M.Y</dateTemplate>                                        Datumsformat
			<timeZone>W. Europe Standard/Daylight Time</timeZone>                     Zeitzone
			<ntps> 
				<ntp>
					<name>192.168.44.2</name>                                 NTP Server für Zeitsynchronisation
					<ntpMode>unicast</ntpMode> 
				</ntp>
			</ntps> 
		</dateTimeSetting>
		<callManagerGroup>
			<members>
				<member priority="0">
					<callManager>
						<processNodeName>fritz.box</processNodeName>      SIP Server - die Fritzbox
						<ports>
							<ethernetPhonePort>2000</ethernetPhonePort>                             
							<sipPort>5060</sipPort>                   5060 ist der Standard Port für SIP
							<securedSipPort>5061</securedSipPort>
						</ports>
					</callManager>
				</member>
			</members>
		</callManagerGroup>
	</devicePool>
	<advertiseG722Codec>1</advertiseG722Codec>
	<sipProfile>
		<sipProxies>
            <registerWithProxy>true</registerWithProxy>
		</sipProxies>
		<preferredCodec>g722</preferredCodec>
		<phoneLabel>marty44</phoneLabel>
		<sipLines>
			<line button="1" lineIndex="1">
           		<featureID>9</featureID>
           		<featureLabel>Fritzbox 620</featureLabel>
           		<proxy>USECALLMANAGER</proxy>                   	
				<port>5060</port>	
				<authName>620</authName>                                          SIP Username auf der Fritzbox
				<name>620</name>           		
				<authPassword>SIPpassword</authPassword>		          SIP Passwort für die Nebenstelle 620 auf der Fritzbox
           		        <messageWaitingLampPolicy>2</messageWaitingLampPolicy>
				<messagesNumber>**600</messagesNumber>
				<ringSettingIdle>4</ringSettingIdle>
				<ringSettingActive>5</ringSettingActive>
			</line>
			<line button="2">
				<featureID>21</featureID>
				<featureLabel>Sheldon Cooper</featureLabel>
				<speedDialNumber>0123456789</speedDialNumber>
				<featureOptionMask>1</featureOptionMask>
			</line>
			<line button="6">
				<featureID>20</featureID>
				<featureLabel>XML App</featureLabel>
				<serviceURI>http://www.example.com/link</serviceURI>
			</line>
		</sipLines>
		<dialTemplate>dialplan.xml</dialTemplate>
	</sipProfile>
	<userLocale>
		<name>Germany</name> 
		<uid>1</uid> 
		<langCode>de_DE</langCode> 
		<winCharSet>iso-8859-1</winCharSet> 
	</userLocale>
 	<networkLocale>Germany</networkLocale> 
		<networkLocaleInfo> 
		<name>Germany</name> 
		<version>8.8.2.5</version> 
	</networkLocaleInfo>
	<vendorConfig>
		<g722CodecSupport>2</g722CodecSupport>
		<displayOnWhenIncomingCall>1</displayOnWhenIncomingCall>
		<displayIdleTimeout>00:02</displayIdleTimeout>
		<daysDisplayNotActive>1,7</daysDisplayNotActive> 
		<displayOnTime>12:00</displayOnTime> 
		<displayOnDuration>00:01</displayOnDuration>  
		<settingsAccess>1</settingsAccess>
		<webAccess>0</webAccess>
	</vendorConfig>
	<addOnModules>
		<addOnModule  uuid="" idx="1">
			<deviceType>CKEM</deviceType>
			<deviceLine>36</deviceLine>
			<loadInformation></loadInformation>
			<phoneTemplateId></phoneTemplateId>
		</addOnModule>
	</addOnModules>
	<phoneServices useHTTPS="true">
		<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="1" category="0">
			<name>Telefonbuch</name>
			<url>http://192.168.44.1/directory.php</url>
			<vendor/>
			<version/>
		</phoneService>
		<phoneService type="0" category="0">
			<name>Australian Services</name>
			<url>http://cisco.internect.net/</url>
			<vendor></vendor>
			<version></version>
		</phoneService>
	</phoneServices>
	<featurePolicyFile>DefaultFP.xml</featurePolicyFile>
	<commonConfig>
		<usb1>1</usb1>
		<usb2>1</usb2>
		<ciscoCamera>1</ciscoCamera>
		<videoCapability>1</videoCapability>
		<usbClasses>0,1,2</usbClasses>
		<sdio>1</sdio>
		<bluetooth>1</bluetooth>
		<wifi>1</wifi>
		<bluetoothProfile>0,1</bluetoothProfile>
                <sshAccess>1</sshAccess>
                <sshPort>22</sshPort>
                <webAccess>0</webAccess>
	</commonConfig>
	<authenticationURL>http://192.168.44.1/ciscoauth.php</authenticationURL>
	<loadInformation>sip9971.9-0-4</loadInformation>                                          diese Firmware wird verwendet
</device>

Der Dialplan legt fest wie das Telefon wählen soll. Die Datei dialplan.xml auf dem TFTP Server:
<DIALTEMPLATE>
    <TEMPLATE MATCH="*" Timeout="5" />
</DIALTEMPLATE>

Die Datei DefaultFP.xml enthält einige Default Settings:
<?xml version="1.0" encoding="utf-8"?>
<featurePolicy name="Default Policy">
        <versionStamp>0000000000</versionStamp>
        <featureDef name="ForwardAll">
                <id>1</id>
                <enable>false</enable>
        </featureDef>
        <featureDef name="Park">
                <id>2</id>
                <enable>false</enable>
        </featureDef>
        <featureDef name="iDivert">
                <id>3</id>
                <enable>false</enable>
        </featureDef>
        <featureDef name="ConfList">
                <id>4</id>
                <enable>false</enable>
        </featureDef>
        <featureDef name="SpeedDial">
                <id>5</id>
                <enable>true</enable>
        </featureDef>
        <featureDef name="Callback">
                <id>6</id>
                <enable>false</enable>
        </featureDef>
        <featureDef name="Redial">
                <id>7</id>
                <enable>true</enable>
        </featureDef>
        <featureDef name="Barge">
                <id>8</id>
                <enable>false</enable>
        </featureDef>
</featurePolicy>

In der ringlist.xml kann man zusätzliche Klingeltöne angeben. Die Klingeltöne müssen ebenfalls auf dem TFTP Server liegen.
<CiscoIPPhoneRingList>
     <Ring>
           <DisplayName>CTU</DisplayName>
           <FileName>ctu.raw</FileName>
     </Ring>
</CiscoIPPhoneRingList>
Eine kleine Auswahl an Klingeltönen gibt es zu Beispiel hier.

Mit dem Programm SoX kann man auch eigene Klingeltöne erstellen. Zum Beispiel aus einer WAV Datei:

sox -t wav in.wav -t raw -r 8000 -U -b -c 1 - resample -ql out.raw
Laut Heiko hat sich die Syntax von SoX geändert:
sox in.mp3 -t raw -e u-law -b 8 -c 1 -r 8000 out.raw
sox in.wav -t raw -e u-law -b 8 -c 1 -r 8000 out.raw

Wenn man andere Hintergrundbilder haben will, muß man im TFTP Verzeichnis ein Unterverzeichnis Desktops erstellen, in diesem wiederum noch das Unterverzeichnis 640x480x24
pi@raspberry:/srv/tftp/Desktops/640x480x24 $ ls -l
-rwxr--r--  1 pi    pi       945 2011-10-16 12:25 List.xml
-rwxr--r--  1 pi    pi    380915 2011-10-16 11:42 pic1.png
-rwxr--r--  1 pi    pi     18062 2011-10-16 11:42 pic1-tn.png
Hintergrundbilder müssen im PNG Format sein, 640x480. Vorschaubilder müssen ebenfalls im PNG Format sein, 123x111.
Die Datei List.xml (Achtung, großes L !) definiert die möglichen Hintergrundbilder:
<CiscoIPPhoneImageList>
<!-- Please Add Images to the end of the list-->
<ImageItem Image="TFTP:Desktops/640x480x24/pic1-tn.png" URL="TFTP:Desktops/640x480x24/pic1.png"/>
</CiscoIPPhoneImageList>

Die Datei ciscoauth.php im htdocs Verzeichnis des Webservers authorisiert das Telefon für Screenshots, etc. Eine einfache Datei die jeden User und Passwort akzeptiert, sieht in PHP wie folgt aus:
<?php
echo "AUTHORIZED";
?>
Man kann hier auch eine komplette Benutzerverwaltung aufziehen. Das Telefon ruft die Datei ciscoauth.php wie folgt auf (Auszug aus der Logdatei des Webservers):
sep001f6123444.fritz.box - - [13/Apr/2019:15:24:26 +0200] "GET /ciscoauth.php?UserID=BENUTZER&Password=PASSWORT&devicename=SEP001F6CABCDEF HTTP/1.1" 200 22 "-" "Allegro-Software-WebClient/4.34"
Um eine Benutzerverwaltung aufzubauen, muß man sich mit den Parametern UserID und Password auseinandersetzen. Im Erfolgsfall soll der Webserver nur AUTHORIZED zurückmelden.
Es ist möglich einen Screenshot zu erstellen:
http://192.168.44.118/CGI/Screenshot liefert nach Eingabe des SSH Users/Passworts einen Screenshot im BMP Format:
Screenshot des Telefondisplays

Die Datei directory.php im htdocs Verzeichnis des Webservers enthält das Telefonbuch. Ein einfaches Beispiel folgt, man kann es aber auch dynamisch aufziehen, da sich das Telefon die Datei jedesmal neu zieht, wenn man auf den Directory Button des Telefons drückt.
<?php
header("Content-type: text/xml");
?>
<CiscoIPPhoneMenu>
        <Title>Telefonbuch</Title>
        <Prompt>Dir External</Prompt>
        <MenuItem>
            <Name>Oma</Name>
            <URL>Dial:0123456</URL>
        </MenuItem>
        <MenuItem>
            <Name>Frisoer</Name>
            <URL>Dial:01265432</URL>
        </MenuItem>
</CiscoIPPhoneMenu>

zurück zu Sonstiges
Letzte Aktualisierung dieser Seite: 13. April 2019