[HowTo] Mitel SIP-DECT in Verbindung mit einer Fritz!Box

chrsto

IPPF-Promi
Mitglied seit
8 Sep 2010
Beiträge
3,740
Punkte für Reaktionen
708
Punkte
113
Nach den Howtos für die Mitel SIP Phone Serie, hier eine kleine Einführung in Mitel SIP-Dect an der Fritz!Box

Vorab ein paar deutliche Hinweise:

  • Es gibt keine öffentliche Downloadmöglichkeit für die Firmware. Kläre daher vorher beim Händler deiner Wahl ab, ob er dich beim Kauf und auch später mit Firmwareupdates versorgt.
  • Die hier beschriebenen Einstellungen erfolgen über das eingeschränkte Webinterface. Für eine vollständige Konfiguration sind aber die Programme OM Configurator und OM Management Portal notwendig. Wie bei der Firmware gibt es auch hier keine öffentliche Downloadmöglichkeit.
  • Das hier veröffentlichte Howto bezieht sich auf die SIP-DECT Firmware 9.2.
  • Für das Einspielen der Firmware benötigst du einen Server, der per http, https, ftp, sftp, ftps oder tftp erreichbar ist. Die Firmware kann nicht über das Webinterface eingespielt werden
  • Für die optionale Nutzung des Fritz!Box Telefonbuchs und Ihrer Anrufliste, benötigst du einen Webserver mit PHP.
  • Die Stromversorgung der RFP erfolgt über PoE. Es gibt kein Netzteil.
  • Es können bis zu 5 RFP ohne weitere Lizenzen betrieben werden.
  • Bitte sehe davon ab, die RFP direkt beim VoIP Provider, d.h. ohne Fritz!Box oder anderen CallServer, zu betreiben

Den Hinweis auf den OM Configurator bzw. OM Management Portal bitte ich besonders zu beachten. Beispielsweise können Netzwerkeinstellungen nur über den OM Configurator vorgenommen werden. Ohne die Software ist ein DHCP Voraussetzung. Insbesondere bei einem Multizellen Setup ist es wichtig, dass der als OMM laufende RFP immer die gleiche IP Adresse erhält.

Ich gehe in diesem Howto davon aus, dass in der Fritz!Box die benötigten IP-Telefone bereits angelegt sind und auch die Rufnummern, sowie deren korrekte Zuordnung eingerichtet sind.

[Werte in eckigen Klammern] sind durch sinnvoll, eigene Werte zu ersetzen.


0. Begriffserklärungen:

RFP: Radio Fixed Part (die DECT Basis/Antenne)
OMM: Open Mobility Manager (die DECT Basis, die als Manger läuft)
PARK: Portable Access Right Key (Eindeutige ID des DECT Systems)
IPEI: International Portable Equipment Identiy (weltweit eindeutige ID für DECT Geräte)


1. Grundkonfiguration

Als erstes muss der RFP als OMM konfiguriert werden. Dafür den Knopf auf der Rückseite für 10-15 Sekunden gedrückt halten, bis LED gelb flackert und dann loslassen (Werkseinstellung wären 20-25 Sekunden, LED flackert rot). Bitte achte darauf, die richtige Farbe abzupassen. Bei grün passiert z.B. gar nichts.

Im Anschluss führt der RFP einen Werksreset aus und startet als OMM neu.

- Über die IP Adresse mit omm/omm einloggen und des Aufforderung das Passwort (Web & SSH) zu ändern folgen.

- Oben rechts die Sprache auf deutsch stellen und den Haken bei "Erweitert" setzen.

- Menü: System -> Systemeinstellungen

Systemname: [beliebig]
PARK anfordern
Regulierungsdomäne (für DECT): EMEA
Regulierungsdomäne (WLAN-Einstellungen): DE

- Menü: System -> Provisionierung und Software-Update

Software-Update-URL je nach Umfeld einrichten.
Wenn die Meldung "Ressource nicht verfügbar" stört, kann noch eine Provisionierungs-URL eingerichtet werden. Diese sollte dann auf eine leere ipdect.cfg zeigen.


2. VoIP Einstellungen

- Menü: System -> SIP

Proxy-Server: [IP der Fritz!Box]
Proxy-Port: 5060
Registrar-Server: [IP der Fritz!Box]
Registrar-Port: 5060

Bevorzugter Codec 1: G.722
Bevorzugter Codec 2: G.711 A-law

Gleichzeitige Registrierungen: 1

- Menü: Standorte:

Auf Stiftsymbol klicken, G.722 und ggf. Erhöhte DECT-Sicherheit aktivieren


3. mehrere Basisstationen einrichten (optional)

Menü: Basisstationen

Bei nur einer Basisstation ist hier keine Anpassung erforderlich. Bei mehreren Stationen können die weiteren über "Erfassen nicht konfigurierte DECT-Basisstationen" gesucht, oder über "Neu" manuell über die MAC Adresse hinzugefügt werden. Die Suche kann eine Minute oder länger dauern. Der Haken "DECT-Einstellungen" muss gesetzt und der WLAN Cluster angegeben werden.

Wichtig: Die Synchronisation der Basisstationen erfolgt ausschließlich über DECT und nicht über LAN. Basisstationen, die demselben DECT Cluster zugeordnet sind, müssen also in Reichweite zueinander angebracht werden.


4. Benutzer und Mobilteile anlegen

Menü: SIP-Benutzer/-Endgeräte

Die PARK (Zahl in Klammern, beginnend mit 311) muss später im Mobilteil eingegeben werden.

Über den Button "Neu" ein DECT Mobilteil anlegen:

Displayname: [beliebig]
Rufnummer/SIP-Benutzername: [Benutzername des IP-Telefons der Fritz!Box]
Alternative Anzeigerufnummer: [interne Nummer des IP-Telefons der Fritz!Box, z.B. 620]
PIN: [beliebig]
Benutzer/Geräte-Beziehung: Fest
IPEI: [IPEI des Mobilteils, zu finden unter Menü (>>>) - System - IPEI anzeigen]

Benutzer-Authentifizierung: [Benutzername des IP Telefons der Fritz!Box]
Kennwort / Kennwortbestätigung: [Kennwort des IP Telefons der Fritz!Box]

Über das Dropdown Menü "Anmeldung" die Anmeldung starten (Anmeldung auswählen und oben links mit OK bestätigen)


5. Anmeldung des Mobilteils

Menü (>>>) -> System -> Anmeldung

Zugangscode: leer lassen und mit weiter bestätigen
PARK: [311... siehe oben]
Anmelden auswählen und mit Ok bestätigen

Die Anmeldung ist damit abgeschlossen.


6. Telefonbuch und Anrufliste der Fritz!Box nutzen (optional)

Menü: Systemmerkmale -> Telefonbuch

Stiftsymbol des ersten Eintrags anklicken:

Telefonbuch mit Haken aktiv setzen
Typ: XML
Name: [frei wählbar]
Server: [IP oder URL des Webservers]
Pfad: [Pfad auf dem Webserver]/dect_telefonbuch.php

Mit OK bestätigen

Für die Suche im Telefonbuch ein zweites Telefonbuch anlegen:

Telefonbuch mit Haken aktiv setzen
Typ: XML
Name: [frei wählbar]
Server: [IP oder URL des Webservers]
Pfad: [Pfad auf dem Webserver]/dect_telefonbuch.php?suche=1

Für das Telefonbuch ist eine angepasste Version des XML Telefonbuchs (siehe unten) der Mitel SIP Telefone notwendig. Bitte auf deinem Webserver als "dect_telefonbuch.php", unter Berücksichtigung der eben eingegeben Pfade abspeichern. Die Telefonbücher können über die "nach oben" Taste erreicht werden. Alternativ kann eine ggf. vorhandene Seitentaste belegt werden.

Menü: Systemmerkmale -> XML-Applikationen

Stiftsymbol bei "Anrufliste" anklicken

Server: [IP oder URL des Webservers]
Pfad: [Pfad auf dem Webserver]/anrufliste.php

Stiftsymbol bei "Wiederwahlliste" anklicken

Server: [IP oder URL des Webservers]
Pfad: [Pfad auf dem Webserver]/anrufliste.php?l=a

Für die Anruflisten kann dasselbe PHP Script, wie für die Mitel SIP Telefone verwendet werden. Die Anruferlisten können über die "nach links" Taste erreicht werden. Die Wahlwiederholung über die linke Displaytaste. Alternativ kann eine ggf. vorhandene Seitentaste belegt werden.

PHP:
<?php

// Config
$fb_url = ''; // Url oder IP der Fritz!Box, ohne http
$fb_user = 'fritz47110815';
$fb_pass = '';
$fb_book = 3; // ID des Telefonbuchs

$webserver_url = 'http://192.168.178.10/fritzbox';

// Config Ende

$client = new SoapClient(
     null,
     array(
       'location' => "http://$fb_url:49000/upnp/control/x_contact",
       'uri'      => "urn:dslforum-org:service:X_AVM-DE_OnTel:1",
       'noroot'   => False,
       'login'    => $fb_user,
       'password' => $fb_pass
     )
  );

$result = $client->GetPhoneBook(new SoapParam($fb_book, 'NewPhoneBookID'));
$xml = simplexml_load_file($result['NewPhonebookURL']);

if(isset($_GET['suche']) AND ($_GET['suche'] == 1)) {
  
  echo '<AastraIPPhoneInputScreen type="string">
        <TopTitle>Suche</TopTitle>
        <Prompt>Namen suchen</Prompt>
        <URL>'.$webserver_url.'/dect_telefonbuch.php</URL>
        <Parameter>suche</Parameter>
        <Default></Default>
    <SoftKey index ="1">
    <Label>Suchen</Label>
    <URI>SoftKey:Submit</URI>
    </SoftKey>
    <SoftKey index ="2">
    <Label></Label>
    <URI>SoftKey:ChangeMode</URI>
    </SoftKey>
    <SoftKey index ="3">
    <Label>Löschen</Label>
    <URI>SoftKey:BackSpace</URI>
    </SoftKey>
    <SoftKey index ="4">
    <Label>Verlassen</Label>
    <URI>SoftKey:Exit</URI>
    </SoftKey>
        </AastraIPPhoneInputScreen>';
  exit;
    
}

if(isset($_GET['suche'])) {
 
  echo '<AastraIPPhoneTextMenu fontMono="no"><TopTitle>Ergebnis</TopTitle>';
      
  $suche = $_GET['suche'];
  $c = 0;
  foreach ($xml->phonebook->contact as $contact) {
  
    $result = strpos(strtolower($contact->person->realName), strtolower($suche));
    
    if ($result !== false) {
              
      echo '<MenuItem><Prompt>'.$contact->person->realName.'</Prompt><URI>'.$webserver_url.'/dect_telefonbuch.php?selection='.$contact->uniqueid.'</URI><Selection>'.$contact->uniqueid.'</Selection></MenuItem>';
      $c++;
    
    }

  }
      
  if ($c == 0) {
          
    echo '<MenuItem><Prompt>kein Ergebnis</Prompt><URI>'.$webserver_url.'/dect_telefonbuch.php</URI></MenuItem>';
 
  } else {
      
    echo '<SoftKey index ="2">
    <Label>Anzeigen</Label>
    <URI>'.$webserver_url.'/dect_telefonbuch.php</URI>
    </SoftKey>';
      
  }
    
    echo '<SoftKey index = "3">
    <Label>Verlassen</Label>
    <URI>SoftKey:Exit</URI>
    </SoftKey>
       </AastraIPPhoneTextMenu>';
      exit; 
 
}

if(isset($_GET['selection']) AND ($_GET['limit'])) {

    $limit = $_GET['limit'];
    $limit = (int)$limit;

    echo '<AastraIPPhoneTextMenu fontMono="no"><TopTitle>Telefonbuch</TopTitle>';
 
    foreach ($xml->phonebook->contact as $contact) {

      if ($contact->uniqueid >= 100) { // ich gehe hier davon aus, dass es sich um ein CardDav Adressbuch handelt und das interne Telefonbuch (Nebenstellen, Anrufbeantworter, etc.) in den ersten 100 IDs zu finden sind
        $contacts[] = $contact;
      }

    }
    for ($c=$limit; $c<$limit+7; $c++) {
      if (!is_array($contacts[$c]->telephony->number)) {
        $number = $contacts[$c]->telephony->number;
      } else {
        $number = $contacts[$c]->telephony->number[0];
      }
      echo '<MenuItem><Prompt>'.htmlspecialchars($contacts[$c]->person->realName).'</Prompt><URI>'.$webserver_url.'/dect_telefonbuch.php?selection='.$contacts[$c]->uniqueid.'</URI><Dial>'.$number.'</Dial><Selection>'.$contacts[$c]->uniqueid.'</Selection></MenuItem>';
    }

echo '<SoftKey index = "1">
      <Label>Anrufen</Label>
      <URI>SoftKey:Dial2</URI>
      </SoftKey>
      <SoftKey index ="2">
      <Label>Anzeigen</Label>
      <URI>'.$webserver_url.'/dect_telefonbuch.php</URI>
      </SoftKey>
      <SoftKey index = "3">
      <Label>Verlassen</Label>
      <URI>SoftKey:Exit</URI>
      </SoftKey>';
      
      if($limit == 0) {
      echo '<SoftKey index = "4">
      <Label>Suchen</Label>
      <URI>SoftKey:Exit</URI>
      </SoftKey>';
      } else {
      echo '<SoftKey index = "16">
      <Label>&lt; zurück</Label>
      <URI>'.$webserver_url.'/dect_telefonbuch.php?limit='.$limit-6 .'</URI>
      </SoftKey>';
      }
      echo '<SoftKey index = "17">
      <Label>Weiter &gt;</Label>
      <URI>'.$webserver_url.'/dect_telefonbuch.php?limit='.$limit+6 .'</URI>
      </SoftKey>
      </AastraIPPhoneTextMenu>';

} elseif(isset($_GET['selection'])) {
    
  $id = $_GET['selection'];
  $id = (int)$id;
 
  foreach($xml->phonebook->contact as $contact) {

    if($contact->uniqueid == $id) {

      echo '<AastraIPPhoneTextMenu fontMono="no"><TopTitle>'.$contact->person->realName.'</TopTitle>';
      if (count($contact->telephony->number) == 1) {
      
        echo '<MenuItem><Prompt>'.$contact->telephony->number.'</Prompt><URI>SoftKey:Dial2</URI><Dial>'.$contact->telephony->number.'</Dial></MenuItem>';
    
      } else {
        
        foreach ($contact->telephony->number as $number) {
    
          echo '<MenuItem><Prompt>'.$number.'</Prompt><URI>SoftKey:Dial2</URI><Dial>'.$number.'</Dial></MenuItem>';
      
        }
    
      }
    
    }
      
  }
    
    echo '<SoftKey index = "1">
          <Label>Anrufen</Label>
          <URI>SoftKey:Dial2</URI>
          </SoftKey>
          <SoftKey index = "3">
          <Label>Verlassen</Label>
          <URI>SoftKey:Exit</URI>
          </SoftKey>
          </AastraIPPhoneTextMenu>';
    
  } else {

    if(isset($_GET['limit'])) {
      
      $limit = $_GET['limit'];
      $limit = (int)$limit;

    } else {
      
      $limit = 0;
      
    }
 
    echo '<AastraIPPhoneTextMenu fontMono="no"><TopTitle>Telefonbuch</TopTitle>';
 
    foreach ($xml->phonebook->contact as $contact) {

      if ($contact->uniqueid >= 100) {
        $contacts[] = $contact;
      }

    }
    for ($c=$limit; $c<$limit+6; $c++) {
      if (!is_array($contacts[$c]->telephony->number)) {
        $number = $contacts[$c]->telephony->number;
      } else {
        $number = $contacts[$c]->telephony->number[0];
      }
      echo '<MenuItem><Prompt>'.htmlspecialchars($contacts[$c]->person->realName).'</Prompt><URI>'.$webserver_url.'/dect_telefonbuch.php?selection='.$contacts[$c]->uniqueid.'</URI><Dial>'.$number.'</Dial><Selection>'.$contacts[$c]->uniqueid.'</Selection></MenuItem>';
    }

echo '<SoftKey index = "1">
      <Label>Anrufen</Label>
      <URI>SoftKey:Dial2</URI>
      </SoftKey>
      <SoftKey index ="2">
      <Label>Anzeigen</Label>
      <URI>'.$webserver_url.'/dect_telefonbuch.php</URI>
      </SoftKey>
      <SoftKey index = "3">
      <Label>Verlassen</Label>
      <URI>SoftKey:Exit</URI>
      </SoftKey>
      ';   
      if($limit == 0) {
      echo '<SoftKey index = "4">
      <Label>Esc</Label>
      <URI>Softkey:Exit</URI>
      </SoftKey>';
      } else {
      echo '<SoftKey index = "16">
      <Label>&lt; zurück</Label>
      <URI>'.$webserver_url.'/dect_telefonbuch.php?limit='.$limit-6 .'</URI>
      </SoftKey>';
      }
      echo '<SoftKey index = "17">
      <Label>Weiter &gt;</Label>
      <URI>'.$webserver_url.'/dect_telefonbuch.php?limit='.$limit+6 .'</URI>
      </SoftKey>
      </AastraIPPhoneTextMenu>';

  }
 
?>
 
  • Like
Reaktionen: DukeFake
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.