.titleBar { margin-bottom: 5px!important; }

[Frage] Einfaches Telefonbuch für Cisco 7970 directory.php/xml ??? Was brauch man ?

Dieses Thema im Forum "Cisco" wurde erstellt von thomaskino, 15 März 2012.

  1. thomaskino

    thomaskino Neuer User

    Registriert seit:
    4 Sep. 2010
    Beiträge:
    95
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #1 thomaskino, 15 März 2012
    Zuletzt bearbeitet: 15 März 2012
    Liebe IP Freunde,
    ich möchte gern ein ganz einfaches Telefonbuch für meine 7970 auf meinem Internet Server einrichten. Sprich eine Datei die alle Telefonnummern mit Namen enthalten und auch beliebig über den PC sprich FTP Zugang zum Server erweitert werden kann.

    Habe mir in den letzten Tagen fast alle Berichte hier im Forum dazu hier durchgelesen. Es gibt ja auch Datenbanksysteme wie dieses hier die das können. Das ist es dann möglich verschiedenen Benutzern Telefonbücher zu zu ordnen. http://web.csma.biz/apps/xml_downloads.php

    Das möchte ich allerdings nicht!

    In der SEP Datei kann man ja angeben (<directoryURL>http://yourwebserver/dir</directoryURL>) wo eine Datei liegt.
    Allerdings werde ich aus den Berichten und Beiträgen hier im Forum nicht ganz schlau. http://www.ip-phone-forum.de/showthread.php?t=136378

    Es wird mal von einer phonebook.xml gesprochen mal wird eine php Datei erwähnt. Auf welche Datei muss in der SEP verwiesen werden?

    Was brauche ich wirklich für eine Datei die ich auf meinen Server lege?? Muss der Server dafür irgendwas Bestimmtes können?

    Muss die so aussehen?
    Code:
    <?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>
    
    Ich habe gestern mal diese Datei als PHP (directory.php) auf meinen Webserver gelegt. In der SEP dann genau darauf verwiesen. Die SEP auf das Phone geladen. Allerdings keine Reaktion des Phones auf die einträge in der directory.php :( Keine Oma, kein Frisoer nichts…..:(;)

    Fehlt mir noch eine xml Befehlsdatei die auf das 7970 Phone muss? Und dem Phone noch mal Informationen gibt?

    Würde mich über einen Tipp b.z.w. Hilfestellungen sehr freuen!

    Grüße
     
  2. disorganizer

    disorganizer Neuer User

    Registriert seit:
    14 Mai 2010
    Beiträge:
    83
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    #2 disorganizer, 15 März 2012
    Zuletzt bearbeitet: 15 März 2012
    wenn du eine php-datei da ablegst muss dein webserver aber auch php können.
    hast du mal probiert die datei als xml-datei dort abzulegen und entsprechend zu referenzieren?
    hast du versucht die datei mit dem webbrowser zu öffnen?

    eventuell musst du dem webserver noch beibringen den richtigen content type mitzuschicken.
    (nämlich xml)
     
  3. thomaskino

    thomaskino Neuer User

    Registriert seit:
    4 Sep. 2010
    Beiträge:
    95
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #3 thomaskino, 15 März 2012
    Zuletzt bearbeitet: 15 März 2012
    Hi,
    vielen Dank schonmal für die Rückantwort.
    Habe bei Starto angerufen und gefragt ob mein Paket PHP kann. Antwort: Mein Paket kann leider kein PHP.
    Ich konnte zwar die Datei mit einem Webbrowser öffnen, aber der Server kann das angeblich nicht verarbeiten.

    Als "xml"habe ich es noch nicht getestet, werde ich aber gleich austesten !

    Was meinen sie, mit server beibringen den richtigen content type mitzusenden ?

    Viele Grüße

    Wenn XMl nicht geht, dann muss ich das Paket bei Starto eine Nummer höher setzten. Ist aber nicht schlimm dann bekomme ich auch mehr Speicher mit !
     
  4. thomaskino

    thomaskino Neuer User

    Registriert seit:
    4 Sep. 2010
    Beiträge:
    95
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo disorganizer,
    vielen Dank für den Tipp mit der xml Datei. Es funktioniert. Ich habe einfach eine dailplan.xml umbenannt und den Telefonbuchinhalt der PHP Datei eingefügt. Sprich Oma; Frisoer. Und das ganze auf meinen Internetserver geschoben. In der SEP Datei auf die genaue Adresse verwiesen und siehe da, das Phone zeigt wenn mann auf Telefonbuch geht die Einträge an. Habe schon alle wichtigen Nummern eingetragen.

    Super vielen Dank ! Muss jetzt nur nochmal sehen das ich die Datei auch beim 7960 anbinden kann.

    Wenn ich eine Rubrick machen möchte muss ich warscheinlich zusätzlich die datei phonebook.xml auf den server laden und dort den Namen und den Link des Telefonbuches angeben oder ?

    Vielen Dank nochmal für diesen kleinen Hinweis mit der xml Datei. So brauch ich auch nicht meinen Server erweitern.

    Eine Frage habe ich allerdings noch, warum wird dann hier im Forum immer wieder von php Datein gesprochen ?? Wenn es doch einfach mit einer xml geht ??

    Grüße
     
  5. disorganizer

    disorganizer Neuer User

    Registriert seit:
    14 Mai 2010
    Beiträge:
    83
    Zustimmungen:
    0
    Punkte für Erfolge:
    6
    Naja, wenn du ein Script laufen hast das z.B. die Datei automatisch über eine Datenbank erzeugt dann ist es eben php.
    Die Ausgabe des Aufrufes dieses php scriptes auf dem webserver erzeugt aber dann eine xml-Datei.

    Das liegt daran das der Webserver für die übermittelten Daten an den Client übermittelt in welchem "Format" das ist.
    Bei Endung php geht der Server von einem Script aus welches dann den Datentyp (in diesem Fall xml) selbst an den Client übermittelt.
     
  6. thomaskino

    thomaskino Neuer User

    Registriert seit:
    4 Sep. 2010
    Beiträge:
    95
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,
    vielen Dank erstmal für die Rückantwort. Habe gestern Abend mal versucht das Telefonbuch auch an mein 7960 anzubinden. Habe dafür in die SIPDefault Datei an richtiger stelle unter directory_url die Webadresse eingefügt. Das Phone erkennt auch eine External Directory diese wird mir als Untergruppe unter Directorys auch angezeigt, allerdings ohne Inhalt.

    Auf dem Phone Display steht seitdem “http connection closed” Das Phone Logo (der Pinguin)
    ist weg :-(

    Alle anderen Funktionen gehen ! Sprich Telefonieren etc.

    Was bedeutet dass ? Kommt das 7960 nicht mit der XML Datei klar.

    Viele Grüße
    Thomas
     
  7. Theo Tintensich

    Theo Tintensich Aktives Mitglied

    Registriert seit:
    10 März 2008
    Beiträge:
    1,307
    Zustimmungen:
    17
    Punkte für Erfolge:
    38
    Ort:
    Berlin
    #7 Theo Tintensich, 17 Apr. 2012
    Zuletzt bearbeitet: 17 Apr. 2012
    Ruf die von dir erstellte XML-Datei mal einfach im Browser auf. Beim IE kann es sein, dass du eine Sicherheitsabfrage beantworten musst.

    Wenn du ein "wohldefiniertes XML" erstellt hast, sollte bei dieser Anzeige kein Fehler erscheinen.
    Da das Telefon aber einen Fehler meldet, wird das XML nicht ganz sauber sein..

    Ich habe mal die von dir oben geposteten Dialplan mit einem XML-Editor bearbeitet und das folgende raus bekommen:
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <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>
    
    Eventuell fehlt bei dir die erste Zeile, die im PHP durch die Header-Zeile erzeugt wird.
    Eventuell den Zeichensatz anpassen. (in meinem Beispiel ist der utf-8.
     
  8. stahni

    stahni Neuer User

    Registriert seit:
    8 Feb. 2013
    Beiträge:
    6
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
  9. Theo Tintensich

    Theo Tintensich Aktives Mitglied

    Registriert seit:
    10 März 2008
    Beiträge:
    1,307
    Zustimmungen:
    17
    Punkte für Erfolge:
    38
    Ort:
    Berlin
  10. ktw2003

    ktw2003 Aktives Mitglied

    Registriert seit:
    26 Juni 2005
    Beiträge:
    1,404
    Zustimmungen:
    4
    Punkte für Erfolge:
    38
    Beruf:
    ITler
    Ort:
    Mainhatten
    Genau diese Lösung habe ich jetzt auch schon eine halbe Ewigkeit leicht modifiziert am Laufen. Wirklich einfach zu implementieren und jedes Telefon hat sein eigenes Telefonbuch.
     
  11. thomaskino

    thomaskino Neuer User

    Registriert seit:
    4 Sep. 2010
    Beiträge:
    95
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Den Link kannte ich schon! Hab ich mal mit meinem Server versucht, ging aber nicht ,da mein Server kein PHP kann ! Also hab ich nur die XML Datei auf dem Server, auf den die Phones zugreifen !

    Geht aber auch wunderbar ohne Probleme !

    Grüße
    Thomas
     
  12. Theo Tintensich

    Theo Tintensich Aktives Mitglied

    Registriert seit:
    10 März 2008
    Beiträge:
    1,307
    Zustimmungen:
    17
    Punkte für Erfolge:
    38
    Ort:
    Berlin
    #12 Theo Tintensich, 19 Feb. 2013
    Zuletzt bearbeitet: 22 Mai 2013
    Kannst du mir sagen, was beim Aufruf-Parameter "name" steht?
    Und an welcher Stelle du das beim Telefon eingetragen hast.


    Ich will das mit einem SPA303 (Sipura) ins Leben versetzen, dieser Parameter ist aber leer, und da will die Software dahinter nicht Richtig ;-)

    Dass die Software im allgemeinen läuft, habe ich schon hin bekommen.

    (
    man muss dazu in der xml/directory.php und xml/index.php am Kopf der Dateien den HTTP_USER_AGENTEN anpassen.
    )
     
  13. thomaskino

    thomaskino Neuer User

    Registriert seit:
    4 Sep. 2010
    Beiträge:
    95
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Theo,
    also ich habe nicht so ganz einen Plan, was Du genau wissen möchtest. Aber ich gebe dir mal ein paar Infos die Du vielleicht benötigst.

    Also die Datei directory.xml fängt bei mir so an:

    <?xml version="1.0"?>
    -<CiscoIPPhoneMenu>
    <Title>Telefonbuch</Title>
    <Prompt>Dir External</Prompt>

    in der SEPxxxxx.cnf trägst Du das Telefonbuch unter

    <directoryURL>http://www.webseite.de/directory.xml</directoryURL>

    ein !

    So läuft das bei mir!

    Grüße
    Thomas
     
  14. Theo Tintensich

    Theo Tintensich Aktives Mitglied

    Registriert seit:
    10 März 2008
    Beiträge:
    1,307
    Zustimmungen:
    17
    Punkte für Erfolge:
    38
    Ort:
    Berlin
    #14 Theo Tintensich, 21 Feb. 2013
    Zuletzt bearbeitet: 22 Feb. 2013
    Hallo,

    so ein bisschen habe ich es zum laufen bekommen.

    Mein Proble ist im Moment, dass im "access.log" meines Apache den folgenden Eintrag hatte:
    Code:
    192.168.1.123  - - [21/Feb/2013:16:51:22 +0100] "GET /directory/xml/directory.php?name=&action=detail&entry_id=2 HTTP/1.0" 200 872 "-" "Cisco/SPA303-7.5.3 (30E4D*******)(sipuraspa)"
    
    und das Programm mit dann nicht Vernünftig arbeitet, da kein "Name" verwendet wurde, der sich aus der MAC-Adresse zusammensetzte.
    Denn ich habe ja kein 7970, sondern ein SPA303.
    Was steht in deinem apache.log als "name="?

    Ich habe dann den Aufruf im Telefon von "http://rechner.local/directory/xml/index.php" auf "http://rechner.local/directory/xml/index.php?name=SPA303-1" geändert.

    ---

    Jetzt wird im error.log nur noch die nicht besetzt PHP-Variable $foo angemault:
    Code:
    [Thu Feb 21 16:51:22 2013] [error] [client 192.168.1.123] PHP Notice:  Undefined variable: foo in /usr/srv/html/directory/xml/directory.php on line 40
    Es funktioniert aber.

    ===================

    Erweiterung:

    Ich habe in der Datei "index.php" eine weitere Zeile hinzugefügt.
    Und zwar als erste Zeile in der Funktion "insert_update_entry_number".
    Dort steht jetzt zusätzlich
    Code:
    $number = preg_replace("/[^0-9]/","",$number);
    Damit werden alle Zeichen, außer den Zahlen, entfernt.
    Denn Nummern, die ein Leerzeichen enthalten, werden beim wählen an der Leerstelle abgebrochen.

    Und ein sauberes speichern der Nummer ist der einfachste Weg, die Nummern sauber an das Telefon zu übergeben.

    ;-)
     
  15. mtk1234

    mtk1234 Neuer User

    Registriert seit:
    7 Aug. 2009
    Beiträge:
    29
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #15 mtk1234, 18 Apr. 2013
    Zuletzt bearbeitet: 18 Apr. 2013
    Hallo,

    ich habe momentan leider ähnliche Probleme mit dem ausliefern von XML, bei mir hängt es aber eindeutig mit dem Webserver zusammen.
    Bis vor kurzen hatte ich einen Debian-Server genutzt, der Webseiten per mini-httpd ausgeliefert hat. Nutze ich diesen Webserver ist alles in Butter (reproduzierbar), egal ob Directory- oder Service-URLs.
    Nun musste ich auf Apache2 migrieren. Nutzer ich die tupfengleiche XML-Datei, zeigt mir das Telefon HTTP-File Error an.

    Im Log vom Telefon selber schaut das dann im Fehlerfall so aus:

    Code:
    5671: ERR 23:36:49.522848 JVM: Startup Module Loader|cip.http.ae:? - listener.httpSucceed:  http://192.168.0.123/cisco/menu.xml?locale=English_United_States&name=SEP00xxxxxx
    5672: WRN 23:36:49.524348 JVM: Startup Module Loader|cip.srvc.z:? - Unsupported MimeType:23
    Genutze Beispiel-XML (Dateiname menu.xml):

    Code:
    <CiscoIPPhoneMenu>
    <Title>Title text goes here</Title>
    <Prompt>Prompt text goes here</Prompt>
    <MenuItem>
    <Name>The name of each menu item</Name>
    <URL>The URL associated with the menu item</URL>
    </MenuItem>
    </CiscoIPPhoneMenu>
    
    Wenn ich in der ersten Zeile
    Code:
    <?xml version="1.0" encoding="utf-8"?>
    anfüge, ändert das leider auch nix.

    Ist zufällig ein Apache-Guru unter uns der da weiter weiß? :confused:

    Gruß
     
  16. Theo Tintensich

    Theo Tintensich Aktives Mitglied

    Registriert seit:
    10 März 2008
    Beiträge:
    1,307
    Zustimmungen:
    17
    Punkte für Erfolge:
    38
    Ort:
    Berlin
    Hat etwas gedauert, bis ich mal wieder reingesehen habe ;-)

    Was sagt das Log vom Apache?
    Also /var/log&apache2/error.log und /var/log/apache2/access.log wenn du die Telefonfunktion aufrufst?

    Bei meinem SPA303 kommt bei der Auswahl des Telefonbuches in der access.log:
    Code:
    xx.xx.xx.xx - - [17/May/2013:20:42:23 +0200] "GET /directory/xml/index.php?name=SPA303-1 HTTP/1.0" 200 1120 "-" "Cisco/SPA303-7.5.4 (30E4DB8yyyyyyy)(sipuraspa)"
    und beim Aufrufen des Suchmenües:
    Code:
    xx.xx.xx.xx - - [17/May/2013:20:42:35 +0200] "GET /directory/xml/directory.php?name=SPA303-1&action=search HTTP/1.0" 200 1187 "-" "Cisco/SPA303-7.5.4 (30E4DB8yyyyyyy)(sipuraspa)"
    Dafür habe ich noch zwei Fehlermeldung im error.log:
    Code:
    [Thu May 16 18:34:55 2013] [error] [client xx.xx.xx.xx] PHP Notice:  Undefined variable: foo in /var/www/html/directory/xml/directory.php on line 37
    [Thu May 16 18:34:57 2013] [error] [client xx.xx.xx.xx] PHP Notice:  Undefined variable: foo in /var/www/html/directory/xml/directory.php on line 40
    
    Ich muss also noch etwas drehen, damit die Variable "foo" auch definiert und gefüllt ist.


    Also, wie gesagt: Welche Fehler liefert der Apache?
     
  17. mtk1234

    mtk1234 Neuer User

    Registriert seit:
    7 Aug. 2009
    Beiträge:
    29
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Zumindest in meinem Fall gibt es keine Meldung im error.log
    Der access.log schaut folgendermaßen aus:

    Code:
    XXX.XXX.XXX.XXX - - [19/May/2013:17:14:35 +0200] "GET /cisco/menu.xml?locale=English_United_States&name=SEP00000SOMEMAC HTTP/1.1" 200 488 "-" "Allegro-Software-WebClient/4.34"
    
    Offenbar gibt es bei der Verarbeitung oder Kommunikation unterschiede zwischen den unterschiedlichen HTTP-Servern. Mit mini-httpd gibt es, wie geschrieben, keine Probleme.
    Müsste man mal die Kommunikation sniffen, aber das ist mir im Augenblick zu viel Aufwand.

    Gruß
     
  18. Theo Tintensich

    Theo Tintensich Aktives Mitglied

    Registriert seit:
    10 März 2008
    Beiträge:
    1,307
    Zustimmungen:
    17
    Punkte für Erfolge:
    38
    Ort:
    Berlin
    #18 Theo Tintensich, 22 Mai 2013
    Zuletzt bearbeitet: 22 Mai 2013
    Hmmm,
    ich habe keinen solchen Eintrag in meinem "access.log".
    Kann es sein, dass wir von unterschiedlichen Directories sprechen? ;-)

    Denn ich habe in meinem Verzeichnis zum Directory auch keine Datei mit dem Namen "menu.xml".
    Ich benutze die unter #9 verlinkte Software
     
  19. Theo Tintensich

    Theo Tintensich Aktives Mitglied

    Registriert seit:
    10 März 2008
    Beiträge:
    1,307
    Zustimmungen:
    17
    Punkte für Erfolge:
    38
    Ort:
    Berlin
    Bedeutet wohl, dass du eine Datei mit der Dateierweiterung "23" an den Webserver zur Verarbeitung gegeben hast.

    Denn die Liste der MimeTypen, die ich gefunden habe, ahben als Type immer die Dateierweiterung.

    Ein MimeType MP3 bringt den Webserver also dazu, eine Musikdatei abzuspielen.

    Nach der Meldung
    Code:
    5671: ERR 23:36:49.522848 JVM: 
    hast du irgend eine Java-VM, die die Daten verwursten will, keinen reinen Apache.
    Hast du da einen Tomcat auf Port 80 laufen?
     
  20. mtk1234

    mtk1234 Neuer User

    Registriert seit:
    7 Aug. 2009
    Beiträge:
    29
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Eigentlich nicht. Das ist ein Debian mit aus den offiziellen Repositories installiertem Apache2.
    Java sollte da keins drauf sein, schon garnicht Tomcat. Dafür ist PHP installiert.

    Ich nehme an, die Einstellung für MimeType:23 kann man nicht einfach irgendwie zurücksetzen, oder?

    Gruß