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
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
<?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>
<DIALTEMPLATE> <TEMPLATE MATCH="*" Timeout="5" /> </DIALTEMPLATE>
<?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>
<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.rawLaut 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
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.pngHintergrundbilder müssen im PNG Format sein, 640x480. Vorschaubilder müssen ebenfalls im PNG Format sein, 123x111.
<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>
<?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.
<?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