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

thomaskino

Neuer User
Mitglied seit
4 Sep 2010
Beiträge
118
Punkte für Reaktionen
2
Punkte
18
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
 
Zuletzt bearbeitet:
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)
 
Zuletzt bearbeitet:
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 !
 
Zuletzt bearbeitet:
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
 
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.
 
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
 
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.
 
Zuletzt bearbeitet:
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.
 
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.
)
 
Zuletzt bearbeitet:
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
 
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.

;-)
 
Zuletzt bearbeitet:
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ß
 
Zuletzt bearbeitet:
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?
 
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ß
 
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
 
Zuletzt bearbeitet:
Code:
Unsupported MimeType:23

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?
 
hast du irgend eine Java-VM, die die Daten verwursten will, keinen reinen Apache.
Hast du da einen Tomcat auf Port 80 laufen?

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ß
 
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.