Aktionen

Cisco-VoIP-SIP:XML Konfigurationsdatei

Aus znilwiki

Changelog:

  • 00.00.2018: erste version
  • 13.04.2020: sshPort entfernt - laut Log des Telefons kennt es den Parameter nicht

Nachfolgend meine Konfigurationsdatei für ein Cisco CP7970-G an einer Fritz!Box 7930.

Tastencodes

Zuerst die Settings drücken, dann:
* * # entsperrt die erweiterten Einstellungen
* * # * * führt einen Reset durch



Screenshot

Mit der URL

http://<IP-Adresse>/CGI/Screenshot

könnte Ihr einen Screenshot abrufen. Die Anmeldedaten sind die, die ihr in der XML Konfiguriert.


SEPxxxxxxxxxxxx.cnf.xml

Der Name der Datei muss

SEP{MAC-Adresse-mit-Großbuchstaben}.cnf.xml

lauten. Meine Datei ging ursprünglich aus dieser Anleitung hervor, ist aber inzwischen um einiges erweitert.

Vorweg einmal die komplette Datei, im Anschluss folgen Erklärungen zu den einzelnen Abschnitten.

<?xml version="1.0" encoding="UTF-8"?>
<device>
    <fullConfig>true</fullConfig>
    <deviceProtocol>SIP</deviceProtocol>

    <sshUserId>cisco</sshUserId>
    <sshPassword>cisco</sshPassword>

    <devicePool>
        <dateTimeSetting>
            <dateTemplate>D.M.YY</dateTemplate>
            <timeZone>Central Europe Standard/Daylight Time</timeZone>
            <ntps>
                <ntp>
                    <name>192.168.178.80</name>
                    <ntpMode>Unicast</ntpMode>
                </ntp>
            </ntps>
        </dateTimeSetting>
        <callManagerGroup>
            <members>
                <member priority="0">
                    <callManager>
                        <name>192.168.178.1</name>
                        <description>FritzBox</description>
                            <ports>
                            <ethernetPhonePort>2000</ethernetPhonePort>
                            <sipPort>5060</sipPort>
                            <securedSipPort>5061</securedSipPort>
                        </ports>
                        <processNodeName>192.168.178.1</processNodeName>
                    </callManager>
                </member>
            </members>
        </callManagerGroup>
        <connectionMonitorDuration>120</connectionMonitorDuration>
    </devicePool>

    <commonProfile>
        <phonePassword></phonePassword>
        <backgroundImageAccess>true</backgroundImageAccess>
        <callLogBlfEnabled>2</callLogBlfEnabled>
    </commonProfile>

    <loadInformation>SIP70.9-4-2-1S</loadInformation>

    <vendorConfig>
        <disableSpeaker>false</disableSpeaker>
        <disableSpeakerAndHeadset>false</disableSpeakerAndHeadset>
        <pcPort>0</pcPort>
        <settingsAccess>1</settingsAccess>
        <garp>0</garp>
        <voiceVlanAccess>0</voiceVlanAccess>
        <videoCapability>0</videoCapability>
        <autoSelectLineEnable>0</autoSelectLineEnable>
        <sshAccess>0</sshAccess>
        <webAccess>0</webAccess>
        <spanToPCPort>1</spanToPCPort>
        <loggingDisplay>1</loggingDisplay>
        <loadServer></loadServer>
        <daysDisplayNotActive></daysDisplayNotActive>
        <displayOnTime>08:00</displayOnTime>
        <displayOnDuration>14:00</displayOnDuration>
        <displayIdleTimeout>00:05</displayIdleTimeout>
        <displayOnWhenIncomingCall>1</displayOnWhenIncomingCall>
    </vendorConfig>

    <deviceSecurityMode>1</deviceSecurityMode>

    <authenticationURL>http://192.168.178.80/cisco/ciscoauth.php</authenticationURL>
    <directoryURL>http://192.168.178.80/cisco/directory.php</directoryURL>
    <idleURL></idleURL>
    <informationURL></informationURL>

    <messagesURL></messagesURL>
    <proxyServerURL></proxyServerURL>
    <servicesURL></servicesURL>
    <dscpForSCCPPhoneConfig>96</dscpForSCCPPhoneConfig>
    <dscpForSCCPPhoneServices>0</dscpForSCCPPhoneServices>
    <dscpForCm2Dvce>96</dscpForCm2Dvce>

    <transportLayerProtocol>2</transportLayerProtocol>

    <capfAuthMode>0</capfAuthMode>
    <capfList>
        <capf>
            <phonePort>3804</phonePort>
        </capf>
    </capfList>

    <certHash></certHash>
    <encrConfig>false</encrConfig>

    <sipProfile>
        <sipProxies>
            <backupProxy></backupProxy>
            <backupProxyPort>5060</backupProxyPort>
            <emergencyProxy></emergencyProxy>
            <emergencyProxyPort>5060</emergencyProxyPort>
            <outboundProxy></outboundProxy>
            <outboundProxyPort>5060</outboundProxyPort>
            <registerWithProxy>true</registerWithProxy>
        </sipProxies>

        <sipCallFeatures>
            <cnfJoinEnabled>true</cnfJoinEnabled>
            <callForwardURI>x--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>false</rfc2543Hold>
            <callHoldRingback>1</callHoldRingback>
            <localCfwdEnable>true</localCfwdEnable>
            <semiAttendedTransfer>true</semiAttendedTransfer>
            <anonymousCallBlock>2</anonymousCallBlock>
            <callerIdBlocking>2</callerIdBlocking>
            <dndControl>0</dndControl>
            <remoteCcEnable>true</remoteCcEnable>
        </sipCallFeatures>

        <sipStack>
            <sipInviteRetx>6</sipInviteRetx>
            <sipRetx>10</sipRetx>
            <timerInviteExpires>30</timerInviteExpires>
            <timerRegisterExpires>300</timerRegisterExpires>
            <timerRegisterDelta>5</timerRegisterDelta>
            <timerKeepAliveExpires>60</timerKeepAliveExpires>
            <timerSubscribeExpires>60</timerSubscribeExpires>
            <timerSubscribeDelta>5</timerSubscribeDelta>
            <timerT1>500</timerT1>
            <timerT2>4000</timerT2>
            <maxRedirects>70</maxRedirects>
            <remotePartyID>false</remotePartyID>
            <userInfo>None</userInfo>
        </sipStack>

        <autoAnswerTimer>1</autoAnswerTimer>
        <autoAnswerAltBehavior>false</autoAnswerAltBehavior>
        <autoAnswerOverride>true</autoAnswerOverride>
        <transferOnhookEnabled>false</transferOnhookEnabled>
        <enableVad>false</enableVad>
        <preferredCodec>none</preferredCodec>
        <dtmfAvtPayload>101</dtmfAvtPayload>
        <dtmfDbLevel>3</dtmfDbLevel>
        <dtmfOutofBand>avt</dtmfOutofBand>
        <alwaysUsePrimeLine>false</alwaysUsePrimeLine>
        <alwaysUsePrimeLineVoiceMail>false</alwaysUsePrimeLineVoiceMail>
        <kpml>3</kpml>

        <natEnabled>false</natEnabled>
        <natAddress></natAddress>

        <stutterMsgWaiting>0</stutterMsgWaiting>

        <callStats>false</callStats>

        <silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
        <disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig>

        <startMediaPort>16384</startMediaPort>
        <stopMediaPort>32766</stopMediaPort>

        <voipControlPort>5080</voipControlPort>
        <dscpForAudio>184</dscpForAudio>
        <ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>
        <dialTemplate>dialplan.xml</dialTemplate>

        <phoneLabel>Keller</phoneLabel>
        <sipLines>
            <line button="1" lineIndex="1">
                <featureID>9</featureID>
                <featureLabel>Bernhard 882571</featureLabel>
                <name>cisco621</name>
                <displayName>621</displayName>
                <contact>621</contact>
                <proxy>USECALLMANAGER</proxy>
                <port>5060</port>
                <autoAnswer>
                    <autoAnswerEnabled>2</autoAnswerEnabled>
                </autoAnswer>
                <callWaiting>3</callWaiting>
                <authName>cisco621</authName>
                <authPassword>DasPasswort</authPassword>
                <sharedLine>false</sharedLine>
                <messageWaitingLampPolicy>1</messageWaitingLampPolicy>
                <messagesNumber>**601</messagesNumber>
                <ringSettingIdle>4</ringSettingIdle>
                <ringSettingActive>5</ringSettingActive>
                <forwardCallInfoDisplay>
                    <callerName>true</callerName>
                    <callerNumber>true</callerNumber>
                    <redirectedNumber>false</redirectedNumber>
                    <dialedNumber>true</dialedNumber>
                </forwardCallInfoDisplay>
            </line>

            <line button="2" lineIndex="2">
                <featureID>9</featureID>
                <featureLabel>Wohnzimmer 882570</featureLabel>
                <name>cisco620</name>
                <displayName>620</displayName>
                <contact>620</contact>
                <proxy>USECALLMANAGER</proxy>
                <port>5060</port>
                <autoAnswer>
                    <autoAnswerEnabled>2</autoAnswerEnabled>
                </autoAnswer>
                <callWaiting>3</callWaiting>
                <authName>cisco620</authName>
                <authPassword>DasPasswort</authPassword>
                <sharedLine>false</sharedLine>
                <messageWaitingLampPolicy>1</messageWaitingLampPolicy>
                <messagesNumber>**600</messagesNumber>
                <ringSettingIdle>4</ringSettingIdle>
                <ringSettingActive>5</ringSettingActive>
                <forwardCallInfoDisplay>
                    <callerName>true</callerName>
                    <callerNumber>true</callerNumber>
                    <redirectedNumber>false</redirectedNumber>
                    <dialedNumber>true</dialedNumber>
                </forwardCallInfoDisplay>
            </line>

            <line button="3" lineIndex="3">
<!-- Possible Feature ID's:
1 = Redial
2 = (Speed)Dial
3 = Hold
4 = Transfer
5 = ForwardAll
9 = Line
21 = BLF (Red light when extension busy), doesn`t work with asterisk, because Cisco uses some kind of special protocol. If somebody finds a solution, please post it!!!!
-->
                <featureID>9</featureID>
                <speedDialNumber>**622</speedDialNumber>
                <featureLabel>Intercom</featureLabel>
                <name>intercom</name>
                <displayName>622</displayName>
                <contact>622</contact>
                <proxy>USECALLMANAGER</proxy>
                <port>5060</port>
                <autoAnswer>
                    <!--<autoAnswerEnabled>2</autoAnswerEnabled>-->
                    <autoAnswerEnabled>3</autoAnswerEnabled>
                    <autoAnswerMode>Auto Answer with Speakerphone</autoAnswerMode>
                </autoAnswer>
                <callWaiting>3</callWaiting>
                <authName>intercom</authName>
                <authPassword>DasPasswort</authPassword>
                <sharedLine>false</sharedLine>
                <messageWaitingLampPolicy>1</messageWaitingLampPolicy>
                <messagesNumber>**601</messagesNumber>
                <ringSettingIdle>4</ringSettingIdle>
                <ringSettingActive>5</ringSettingActive>
                <forwardCallInfoDisplay>
                    <callerName>true</callerName>
                    <callerNumber>true</callerNumber>
                    <redirectedNumber>false</redirectedNumber>
                    <dialedNumber>true</dialedNumber>
                </forwardCallInfoDisplay>
            </line>

            <line button="7">
                <featureID>2</featureID>
                <featureLabel>Lasse</featureLabel>
                <speedDialNumber>**623</speedDialNumber>
            </line>
            <line button="8">
                <featureID>2</featureID>
                <featureLabel>ISDN</featureLabel>
                <speedDialNumber>**51</speedDialNumber>
            </line>
        </sipLines>
    </sipProfile>

    <userLocale>
        <name>German_Germany</name>
        <uid>1</uid>
        <langCode>de</langCode>
        <version>11.5.1.3(1)</version>
        <winCharSet>UTF-8</winCharSet>
    </userLocale>
    <networkLocale>Germany</networkLocale>
        <networkLocaleInfo>
        <name>Germany</name>
        <uid>64</uid>
        <version>3.3.0.0(1)</version>
    </networkLocaleInfo>

</device>




fullconfig

<fullConfig>true</fullConfig>

Ich habe das so verstanden das dies dafür sorgt das vom Telefon jedesmal alles neu eingelesen wird.


phoneLabel

<phoneLabel>Keller</phoneLabel>

Das ist die Bezeichnung die oben rechts im Telefon steht.
Maximal 15 Zeichen!
Ist Abbruchkriterium! Wenn der nicht passt wird die ganze Konfig nicht verarbeitet.



deviceProtocol

<deviceProtocol>SIP</deviceProtocol>

Hier legen wir fest das wir SIP nutzen. Alternative wäre SCCP - welche aber eine entsprechende Firmware voraussetzt.


sshUserId

<sshUserId>cisco</sshUserId>
<sshPassword>cisco</sshPassword>

Setzt den Benutzername + Passwort für den SSH und Webzugriff Zugriff auf das Telefon.



dateTimeSetting

       <dateTimeSetting>
           <dateTemplate>D.M.YY</dateTemplate>
           <timeZone>Central Europe Standard/Daylight Time</timeZone>
           <ntps>
               <ntp>
                   <name>192.168.178.80</name>
                   <ntpMode>Unicast</ntpMode>
               </ntp>
           </ntps>
       </dateTimeSetting>




dateTemplate

<dateTemplate>D.M.YY</dateTemplate>

Hier setzen wir das Datumsformat wie es oben links im Telefon erscheint, die möglichen Werte sind:

D.M.Y     Jahr 2 stellig, Uhr im 24 Stunden Format	
D.M.YY    Jahr 4 stellig, Uhr im 24 Stunden Format	
D.M.YA    Jahr 2 stellig, Uhr im 12 Stunden Format (am und pm)
D.M.YYA   Jahr 4 stellig, Uhr im 12 Stunden Format (am und pm)

Statt des . sind auch die Zeichen / und - erlaubt.


timeZone

<timeZone>Central Europe Standard/Daylight Time</timeZone>

Diese Zeitzone ist die richtige für Deutschland, die anderen möglichen lauten:

Name Korrektur
Dateline Standard Time -12 h
Samoa Standard Time -11 h
Hawaiian Standard Time -10 h
Alaskan Standard/Daylight Time -9 h
Pacific Standard/Daylight Time -8 h
Mountain Standard/Daylight Time -7 h
US Mountain Standard Time -7 h
Canada Central Standard Time -6 h
Central Standard/Daylight Time -6 h
Mexico Standard/Daylight Time -6 h
Eastern Standard/Daylight Time -5 h
SA Pacific Standard Time -5 h
US Eastern Standard Time -5 h
Atlantic Standard/Daylight Time -4 h
Pacific SA Standard Time -4 h
SA Western Standard Time -4 h
Newfoundland Standard/Daylight Time -3,5 h
E. South America Standard/Daylight Time -3 h
Pacific SA Daylight Time -3 h
SA Eastern Standard Time -3 h
Mid-Atlantic Standard/Daylight Time -2 h
Azores Standard/Daylight Time -1 h
GMT Standard/Daylight Time 0 h
Greenwich Standard Time 0 h
E. Europe Standard/Daylight Time 1 h
Egypt Standard/Daylight Time 1 h
GTB Standard/Daylight Time 1 h
W. Europe Standard/Daylight Time 1 h
Central Europe Standard/Daylight Time 2 h
Jerusalem Standard/Daylight Time 2 h
Romance Standard/Daylight Time 2 h
South Africa Standard Time 2 h
Russian Standard/Daylight Time 3 h
Saudi Arabia Standard Time 3 h
Iran Standard/Daylight Time 3,5 h
Arabian Standard Time 4 h
Caucasus Standard/Daylight Time 4 h
Afghanistan Standard Time 4,5 h
Ekaterinburg Standard Time 5 h
West Asia Standard Time 5 h
India Standard Time 5,5 h
Central Asia Standard Time 6 h
SE Asia Standard Time 7 h
China Standard/Daylight Time 8 h
Taipei Standard Time 8 h
Tokyo Standard Time 9 h
AUS Central Standard Time 9,5 h
Cen. Australia Standard/Daylight Time 9,5 h
AUS Eastern Standard/Daylight Time 10 h
E. Australia Standard Time 10 h
Tasmania Standard/Daylight Time 10 h
West Pacific Standard Time 10 h
Central Pacific Standard Time 11 h
Fiji Standard Time 12 h
New Zealand Standard/Daylight Time 12 h



ntps / ntp

<ntps>
    <ntp>
        <name>192.168.178.80</name>
        <ntpMode>Unicast</ntpMode>
    </ntp>
</ntps>

Hier legen wir den Zeitserver fest. Die Fritz!Box wäre geeignet, ich benutze hier einen Windows-Domänencontroller.



callManagerGroup / callManager

      <callManagerGroup>
           <members>
               <member priority="0">
                   <callManager>
                       <name>192.168.178.1</name>
                       <description>FritzBox</description>
                           <ports>
                           <ethernetPhonePort>2000</ethernetPhonePort>
                           <sipPort>5060</sipPort>
                           <securedSipPort>5061</securedSipPort>
                       </ports>
                       <processNodeName>192.168.178.1</processNodeName>
                   </callManager>
               </member>
           </members>
       </callManagerGroup>

Hier legen wir den CallManager fest, also das Gerät welches als zentrale Instanz die Anrufe verwaltet.
Das kann ein SIP-Anbieter sein - in diesem Fall ist es die Fritz!Box.
Die Ports passen so. Die Fritz!Box kann nur den 5060, den anderen kann die Box nicht. Der würde bei verschlüsselten Verbindungen genutzt werden.



backgroundImageAccess

<backgroundImageAccess>true</backgroundImageAccess>

Erlaubt dem Benutzer den Zugriff auf die Auswahl der Hintergundbilder.



loadInformation

<loadInformation>SIP70.9-4-2-1S</loadInformation>

Welche Firmware soll geladen werden. Der Eintrag entspricht der gleichnamigen Datei im TFTP-Verzeichnis, jedoch ohne die Endung .loads am Ende.
Das er diese nehmen soll bekommt er auch aus der Datei term70.default.loads, das ist also doppelt gemoppelt. Was man auch daran merkt das er bei einem Update dieses auch gleich zei mal hintereinander ausführt.
Ist das Telefon auf der Firmwareversion kann man diese Zeile auch einfach weglassen.


settingsAccess

<settingsAccess>1</settingsAccess>

Ob dem Benutzer der Zugriff auf die Einstellungen erlaubt ist.

1 = erlaubt
0 = verboten




sshAccess

<sshAccess>0</sshAccess>
<sshPort>22</sshPort>

Regelt den SSH Zugriff:

0 = Erlaubt
1 = Verboten




webAccess

<webAccess>0</webAccess>

Zugriff auf die Webseite mit Informationen und der Web-Befehlsschnittstelle / API.

0 = Erlaubt
1 = Verboten




spanToPCPort

<spanToPCPort>1</spanToPCPort>

Aktiviert und deaktiviert den PC-Port am Telefon:

0 = Deaktiviert
1 = Aktiviert




Fehlersuche

Falls Ihr es einmal geschafft habt das das Telefon eine Konfig übernimmt und Ihr damit

  • den Web Access
  • Benutzername + Passwort

setzen konntet, könnt Ihr per

http://<IP-Adresse>

auf das Telefon zugreifen.
Unter Geräteprotokolle -> Konsolenprotokolle (jepp, meine Telefone sind auf deutsch) könnt Ihr die Logs runterladen (von unten nach oben probieren), da steht ggf. drin was es für ein problem gibt.


Kommentare

Loading comments...