7960 xml - static directory - sync from outlook

tomton

Neuer User
Mitglied seit
28 Nov 2006
Beiträge
79
Punkte für Reaktionen
0
Punkte
0
Hier ein statisches Telefonbuch für das 7960/40, für Daten aus Outlook oder anderen Datenbanken, die CSV - Output produzieren
Im Downloadbereich, Cisco
7960_Phonebook_xml_v01
7960_Phonebook_xml_v02


Beschreibung

Möglichkeiten
- Telefonverzeichnis für Service Button und den Zifferntasten können die Teilbereiche (jeweils 32 Einträge) a-z (1), a-c (2), d-f (3), g-i (4), j-l (5), m-o (6), p-s (7), t-v (8), w-z (9), z-a (10) aufgerufen werden. Bei mehr als 32 Einträgen ist Eintrag 32 Auswahl für neue Seite
- Umblättern und Zurückblättern bei mehr als 32 Einträgen
- Pro Eintrag 3 Telefonnummern - Anzeige: Privat, Geschäft, Handy
- Adressanzeige p: Privat, g: Geschäft
- Umlaute möglich, entsprechend dem ANSI bzw. Unicode 0-255 Zeichen
- keine Datenbank, kein php am Server notwendig
- entfernt unerlaubte Zeichen aus Telefonnummer
- Anpassbar an Datenausgaben von Thunderbird oder aus Datenbanken
- separate Konfig Datei create.settings.php

Einschränkungen
- keine UTF-16 (NTFS)-Dateinamen, da PHP nur bis ANSI Zeichensatz 0-255 unterstützt
- Erfordert Webspace ohne IP-Sharing, wg. CP-7960 (mit Proxy lösbar)

Voraussetzungen
- Windows
- php see http://de.php.net/
- Outlook oder andere Datenbank mit CSV - Ausgabe
- Webspace oder Webserver

Installation
- Export aus Outlook im Format Windows (ANSI) aller Kontakte in die Datei adr_outlook_win.csv, alle Spalten
- Anpassen der Settings-Parameter in der create.settings.php-Datei, $DirAbsoluteUri, $delete_header_line
- evtl. für anderes Datenformat Anpassung der Parameter: $separation_char,
- Aktivieren des richtigen Import-Setting Block, Outlook (default) oder anderes Datenformat (Slash+Stern ... Stern+Slash)
- create.php im gleichen Verzeichnis wie adr_outlook_win.csv aus Dosbox (damit man die Meldungen sieht) aufrufen
- Dateien auf Webserver laden
- Services_url auf menu.xml zeigen lassen
- Wenn Proxy auf Router, dann http_proxy Parameter im Cisco 7960 setzen

Fritzbox Ergänzung - Webspace Ergänzung
- Da Webspace oft IP-Sharing (virtual Hosts) anwendet, kann das Telefon nicht zugreifen.
- lösbar mit eigenem Webserver z.B. auf der Fritzbox oder mit Proxy. z.B. Polipo (nicht Tinyproxy, da error)
 
Zuletzt bearbeitet:
Leider "invalid File"

Gibt es das noch?

Mfg

Adrian
 
Genau sowas suche ich. Hat noch jemand die Dateien?

Oder gibt es noch eine andere Möglichkeit die Outlook Kontakte in ein SIP 7960 zu heben?
 
Danke für den Link.

Habe mir jetzt allerdings eben schnell ein eigenes Java tool gebaut, damit ich das Verzeichnis als statische xml Datei hab.
 
Gibt es hierzu denn schon eine Veröffentlichung?
 
@BAS3
Hallo BAS3,

könntest Du uns an deinem JAVA-Tool teilhaben lassen?

Besten Dank!
 
Hi,

freut mich, dass Interesse dran besteht.

Das Tool ist auf die Schnelle entstanden, also sicher nicht optimal geschrieben. Funktioniert aber sehr gut.

Es wird ein alphabetisches Verzeichnis erstellt und dahinter sind dann die Kontakte mit Privat und Mobil Nummern.

Erstellt mit folgendem Dump eine MYSQL Datenbank (lokal auf eurem Rechner) und importiert die Kontakte aus Outlook darein. Am besten über csv import und Phpmyadmin:
Code:
CREATE TABLE `kontakte` (
  `Vorname` varchar(250) NOT NULL,
  `Nachname` varchar(250) NOT NULL,
  `Geschaeft` varchar(250) NOT NULL,
  `Privat` varchar(250) NOT NULL,
  `Privat2` varchar(250) NOT NULL,
  `Mobil` varchar(250) NOT NULL,
  `Weitere` varchar(250) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;


Im Javatool einfach die Logindaten und eure Webspace-Adresse eintragen. Danach werden im root Verzeichnis alle xml Dateien erstellt. Diese könnt ihr dann auf euren Webspace laden.
Code:
import java.io.*;
import java.sql.*;



public class directory {


	public static void main(String[] args) {
		  Connection cn = null;
	      Statement  st = null;
	      ResultSet  rs = null;
	      
	      char c ;
	      String query = null;
	         
	      try 
	      {	      
	    	  PrintWriter directory = new PrintWriter( "directory.xml" );
		      directory.println("<CiscoIPPhoneMenu>");
		      directory.println("<Title>Telefonbuch</Title>");
		      directory.println("<Title>Wähle</Title>");
		      for (c = 'a'; c <= 'z'; c++)
		    	{
		    	  directory.println("<MenuItem>");
		    	  directory.println("<Name>"+c+"</Name>");
		    	  directory.println("<URL>http://adresse_vom_webserver.de/directory_"+c+".xml</URL>");
		    	  directory.println("</MenuItem>");
		    	}
		      directory.println("</CiscoIPPhoneMenu>");
		      directory.close();

	    	for (c = 'a'; c <= 'z'; c++)
	    	{
	    		PrintWriter out = new PrintWriter( "directory_"+c+".xml" ); 
		    	Class.forName( "com.mysql.jdbc.Driver" );
		    	cn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/outlook", "root", "password" );
		        st = cn.createStatement();
		        query = "select * from kontakte where Nachname like '" + c + "%' order by Nachname" ;
		        rs = st.executeQuery( query );
		        
		        out.println("<CiscoIPPhoneDirectory>");       
		        out.println("<Title>"+c+"</Title>");
		        out.println("<Prompt>Telefonbuch</Prompt>");     
		                                                        
		     
		        while( rs.next() ) {
		        	if (!rs.getString( "Geschaeft" ).isEmpty()){
		        		out.println("<DirectoryEntry>");
		        		out.println("<Name>" + rs.getString( "Vorname" ) + " " + rs.getString( "Nachname" ) + " (Geschaeft)</Name>");
		        		out.println("<Telephone>" + rs.getString( "Geschaeft" ) + "</Telephone>");
		        		out.println("</DirectoryEntry>");
		        	}
		        	if (!rs.getString( "Privat" ).isEmpty()){
		        		out.println("<DirectoryEntry>");
		        		out.println("<Name>" + rs.getString( "Vorname" ) + " " + rs.getString( "Nachname" ) + " (Privat)</Name>");
		        		out.println("<Telephone>" + rs.getString( "Privat" ) + "</Telephone>");
		        		out.println("</DirectoryEntry>");
		        	}
		        	if (!rs.getString( "Privat2" ).isEmpty()){
		        		out.println("<DirectoryEntry>");
		        		out.println("<Name>" + rs.getString( "Vorname" ) + " " + rs.getString( "Nachname" ) + " (Privat2)</Name>");
		        		out.println("<Telephone>" + rs.getString( "Privat2" ) + "</Telephone>");
		        		out.println("</DirectoryEntry>");
		        	}
		        	if (!rs.getString( "Mobil" ).isEmpty()){
		        		out.println("<DirectoryEntry>");
		        		out.println("<Name>" + rs.getString( "Vorname" ) + " " + rs.getString( "Nachname" ) + " (Mobil)</Name>");
		        		out.println("<Telephone>" + rs.getString( "Mobil" ) + "</Telephone>");
		        		out.println("</DirectoryEntry>");
		        	}
		        	if (!rs.getString( "Weitere" ).isEmpty()){
		        		out.println("<DirectoryEntry>");
		        		out.println("<Name>" + rs.getString( "Vorname" ) + " " + rs.getString( "Nachname" ) + " (Weitere)</Name>");
		        		out.println("<Telephone>" + rs.getString( "Weitere" ) + "</Telephone>");
		        		out.println("</DirectoryEntry>");
		        	}
		        }
		        out.println("</CiscoIPPhoneDirectory>");
		        out.close();
	    	}
	      } catch( Exception ex ) {
	          System.out.println( ex );
	          
		} finally {
	        try { if( null != rs ) rs.close(); } catch( Exception ex ) {}
	        try { if( null != st ) st.close(); } catch( Exception ex ) {}
	        try { if( null != cn ) cn.close(); } catch( Exception ex ) {}
	      }
		
		
	}

}
 
Zuletzt bearbeitet:
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.