Custom Directory via XML

yuraukar

Neuer User
Mitglied seit
23 Feb 2005
Beiträge
92
Punkte für Reaktionen
0
Punkte
0
Ich versuche auf einem Cisco 7970 ein flexibles Telefonbuch zu realisieren.

Die Cisco-Dokumentation hat mir geholfen, den ersten Schritt zu machen. Meine Services URL zeigt auf eine Seite, die ein CiscoIPPhoneDirectory liefert welches DirectoryEntry Einträge enthält. Soweit so gut.

Lese ich nun in der Cisco-Doku, so finde ich:

---------------
Custom Directories

You can use the "URL Directories" enterprise parameter and Cisco IP Phone XML objects to display custom directories.

The Cisco CallManager enterprise parameter "URL Directories" points to a URL that returns a CiscoIPPhoneMenu object that extends the directories menu. The request for "URL Directories" must return a valid CiscoIPPhoneMenu object, even if has no DirectoryEntry objects.

The following objects are optional. If used, they must be used in the order they are listed:

* Use the CiscoIPPhoneInput XML object to collect search criteria.
* Use the CiscoIPPhoneText XML object to display status messages or errors.
* Use the CiscoIPPhoneDirectory XML object to return a list of directory entries that can be dialed.

You can omit the CiscoIPPhoneInput or CiscoIPPhoneText objects. You can display multiple CiscoIPPhoneDirectory objects by specifying an HTTP refresh header that points to the URL of the next individual directory object, which the user accesses by pressing the Next softkey on the phone.
---------------

... und verstehe das nicht.

Also: die Directory URL soll ein CiscoIPPhoneMenu zurückliefern (ok), auch wenn es keine DirectoryEntry enthält (?? laut Doku darf man ohnehin nur MenuItem einschachteln ??).
Optional sind Input,Text und Directory (?? wo soll man die hinschreiben?).
Man kann mehrere "CiscoIPPhoneDirectory objects" darstellen, wenn man einen HTTP refresh angibt, dann soll der Next key funktionieren. Mache ich das bei meiner Seite, macht er schön ein reload nach x Sekunden, aber einen Next key sehe ich nicht?

Kann einer diese Cisco Dokumentation verstehen???
 
Ja - das ist eigentlich recht simpel.

Wenn Du unter der "Directories" Taste eigene Telefonbucher einbinden willst, dann kannst Du das erstmal nur über eine Datei machen, die "CiscoIPPhoneMenu" Einträge liefert. Von diesen Menü-Einträgen aus verzweigst Du dann in XML Dateien, welche die eigentlichen Directories über "CiscoIPPhoneDirectory" liefern.

In diesen XML Dateien kannst Du natürlich eigene Eingabemasken definieren, um Namen zu suchen.

Das Ganze gilt nur, wenn Du das in die "directories" Taste implementieren willst. Deine Anruflisten werden dann entsprechend um die neuen Einträge erweitert. Packst Du das Ganze unter "Services" kannst Du direkt implementieren.
 
Also ich habe eine Datei, die ich als Directory URL Eintrage. Diese liefert:

Code:
<CiscoIPPhoneMenu>
    <MenuItem>
        <Name>Favoriten</Name>
        <URL>http://.../favorites.php</URL>
    </MenuItem>
    <MenuItem>
        <Name>Alle Nummern</Name>
        <URL>http://.../fulldirectory1.php</URL>
    </MenuItem>
</CiscoIPPhoneMenu>

Dann liefert mir das Telefon 2 weitere Menüoptionen wenn ich den Directories Button wähle.

Favorites.php liefert dann z.B.

Code:
<CiscoIPPhoneDirectory>
    <DirectoryEntry>
        <Name>Bob</Name>
        <Telephone>555-1234567</Telephone>
    </DirectoryEntry>
</CiscoIPPhoneDirectory>

Analog liefert fulldirectory1.php auch eine solche Liste - eben bis max. 32 Einträge.

Soweit ok.

Wie ist dann
You can display multiple CiscoIPPhoneDirectory objects by specifying an HTTP refresh header that points to the URL of the next individual directory object, which the user accesses by pressing the Next softkey on the phone.
zu verstehen? Setze ich bei fulldirectory1.php im header
Code:
Refresh: 5; url=http://.../fulldirectory2.php
dann erscheint aber kein Next-softkey um zu einer weiteren Seite zu gelangen.
 
Na - hast Du denn in Deiner PHP Datei auch einen <softkey /> definiert, den Dir das Telefon anzeigen könnte :wink: ?
 
(Das kann man nicht aus der Cisco-Beschreibung rauslesen, wenn man es nicht schon vorher weiss...)

Die Lösung ist:

(1) im Header angeben
Refresh: -1; url=http://.....

(2) im CiscoIPPhoneDirectory einen SoftKey definieren
<SoftKeyItem>
<Name>More</Name>
<URL>SoftKey:Next</URL>
<Position>4</Position>
</SoftKeyItem>

Auf Refresh=-1 und SoftKey:Next muss man eben so kommen...

Dummerweise muss man auch alle anderen SoftKeys wieder definieren, also z.B. Dial und Exit.
 
yuraukar schrieb:
Dummerweise muss man auch alle anderen SoftKeys wieder definieren, also z.B. Dial und Exit.

Aber das steht ausdrücklich in der Cisco-Doku :wink:

Und daß man softkeys selber definieren muß - das haben sie halt so an sich. Deshalb sind es ja SOFTkeys.
 
komplette Datei

hat mal jemand eine komplette Datei für das directory ?
 
lokutus83 schrieb:
hat mal jemand eine komplette Datei für das directory ?

Bei mir schreibt er wenn ich folgende Datei vom Telefon laden lasse immer nur die Fehlermeldung : "XML Error [4]: Parse Error"

Meine Datei sieht wie folgt aus:

<CiscoIPPhoneMenu>
<MenuItem>
<Name>Favoriten</Name>
<URL>http://192.168.3.3/favorites.php</URL>
</MenuItem>
<MenuItem>
<Name>Alle Nummern</Name>
<URL>http://192.168.3.3/fulldirectory1.php</URL>
</MenuItem>
</CiscoIPPhoneMenu>

Fehlt da irgendwas ?
 
Telefonbuch fürs Cisco

auf der seite http://www.thelastinstance.de/soft/project13.phtml#updates

gibt es eine gute Datenbank Datei fürs Cisco Telefon. Habe es selber ausprobiert funzt super.

Man braucht einen Server, der Apache, PHP, SQL unterstüzt.
Die Dateien hochladen und über die adresse z.b. domainname.de/directory

erreicht man die Konfigmaske und kann dort die Rufnumern fürs telefonbuch eingeben.

In der SIPDefault noch den Link eingeben für die CISCO Telefon Taste und schon funzt.
:)
 
Hi,

super der Link.
Kennt jemand noch weitere Links mit solchen Tools für den CallManager?
 
Hi,

hab das hier grad über die Foren-Suche gefunden.

Wo gibt's denn wohl die "Doku", von der ihr da sprecht?
Habe hier ein 7971 an nem Asterisk laufen und würd auch gern eigene Sachen in die Menus einbinden.

Wenn ich http://localhost/cisco/directories.xml als directoryURL übergebe, erscheint leider noch nix Neues, wenn ich in das "Directories-Menu" des Telefons gehe. (Der Pfad stimmt. Ich kanns so und auch über die IP des Servers im Browser aufrufen...)

Die Datei enthählt bisher nur das hier:
Code:
<CiscoIPPhoneMenu>
<Title>Phone-Selection</Title>
<Prompt>Test-Menu</Prompt> 
    <MenuItem>
        <Name>Radar Sites</Name>
        <URL>http://localhost/cisco/radarsites.php</URL>
    </MenuItem>

    <MenuItem>
        <Name>CCTV</Name>
        <URL>http://localhost/cisco/cctv.php</URL>
    </MenuItem>
</CiscoIPPhoneMenu>
 
setze dem mime-Type mal explizit auf text/xml
soweit ich mich erinnere hat der apache unter debian ein Problem damit den mime-Type richtig zu senden.
 
...

Localhost? Würde das nicht bedeuten wenn auf dem Phone die Aktion aufgerufen wird, dass dann das Phone versuchen würde die URL "bei sich selbst" zu finden und nicht auf dem Webserver wo die Datei eigentlich liegt?


Gruß,
Marcus
 
Aber dann würde er ja nen http-error melden, was er macht, wenn ich auf ne falsche datei auf "localhost" linke.

Danke für die Hinweise, ich kanns leider erst in einer Woche wieder testen.
 
...

Hmmm. ich sehe das ein wenig anders. Auf dem Phone läuft ja auch ein eigener Webserver und natürlich eine Art Browser.

Der Browser ließt von einem externen Webserver die xml Datei. Da steht aber nun drin ...localhost... Ich kann mir beim besten Willen nicht vorstelen, dass der "Browser" des Phones aus localhost wieder die IP deines externen Webservers macht. Aus localhost wird eher 127.0.0.1 werden und somit würde das Phone versuchen den eigenen eingebauten Webserver anzusprechen. Und je nachdem ob und was dieser antwortet...


Gruß,
Marcus
 
Die einträge müssten aber erst einmal angezeigt werden, soweit hat mephistho recht.
Das dann beim Auswählen keine seite angezeigt werden kann ist erst mal was anderes
 
...


Kann mir das mal jemand genauer erklären?

<mein Wissen>
Wenn in der directory URL, wie angegeben localhost steht wird das Phone versuchen die XML Datei (wo nochmal localhost drin steht) beim Druck auf die Directory Taste vom Phone selber (localhost) zu laden und nicht vom externen Webserver....
Ist ja quasi wie ein Bookmark im Browser. Wenn ich mir dort einen Bookmark für z.B. www.heise.de/abc/index.xml anlege aber aus www.heise.de localhost mache wird mir die gewünschte Seite wohl nicht angezeigt werden.
</mein Wissen>

Gruß,
Marcus
 
Zuletzt bearbeitet:
Nicht ganz richtig.
Wenn Du eine Datei wie uner #11 anlegst, dann ist das erst einmal nur eine xml-Datei.
Nennen wir diese mal directory.xml
Dies legen wir auf den webserver mit der ip a.b.c.d im document root.
In deine Konfigurations-xml (SEP<MAC>.cnf.xml) trägst Du jetzt die URL zu deine directory.xml ein -> http://a.b.c.d/directory.xml
Soweit klar.

Das phone läd jetzt die directory datei und zeigt alle Einträge von
/CiscoIPPhoneMenu/MenuItem/Name
als Menüeintrag an. Dies Einträge haben ein Verknüpfung/Link zu den unter URL angegebenen Dateien und werden erst ausgeführt wenn du Menüeintrag auswählst
 
Zuletzt bearbeitet:
...


Das ist schon klar aber in #11 wird nun mal für die Directory URL nicht IP a.b.c.d genutzt sondern localhost:



Also zeigt das "Bookmark" für die URL die beim drücken der Directory Taste am Phone aufgerufen wird, nicht auf die IP des ext. Webservers wo dann tatsächlich auch die directories.xml liegt, sondern auf Localhost also das Phone selbst, und dort wird die xml Datei mit Sicherheit nicht gefunden.

Oder woher weiß das Phone, das es aus localhost in der URL die IP des ext. Webservers machen soll?

Gruß,
Marcus
 
Stimmt, da hast Du recht, ich verstehe es aber so das er localhost nur als bsp angebracht hat.
Und wenn es so eingetragen ist, dann müsste im log auch ein eintrag zu finden sein.

@mephistho
schau mal was das log sagt
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
245,741
Beiträge
2,238,909
Mitglieder
372,909
Neuestes Mitglied
djihad23
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.