Ich arbeite z.Zt. an einer Software, die mittels Dämon sowohl auf Mac als auch PC die Outlook-Kontakte (andere Software mit Adressbüchern kommt noch) in gewissen Abständen durchforscht und bei ausreichender Qualität (Vollständigkeit) enthaltene Telefonnummern in das Telefonverzeichnis von Grandstream-IP-Telfonen übertragen soll. Alle Teilprobleme sind einzeln gelöst. Aber ich kann mich bei einem Aspekt nicht zu einer endgültigen Variante entschließen: Wie bekomme ich die von den Dämons gelieferten Daten vom jeweiligen PC/Mac zur Server-Software (die dann noch bestimmte Regeln umsetzt und den Downloadserver für die Telefone bildet). - "beame" ich sie per Socket aktiv zum Server - schreibe ich sie als Datei in eine Freigabe des Servers - lasse ich sie vom Server per Socket vom PC "saugen" - lasse ich sie vom Server aus einer Freigabe als Datei lesen Bitte mal kurz weitere Varianten bzw. das Für und Wider der genannten ... Danke.
ersteres nur eher mit z.b. SOAP oder rest? dass machte es dann auch in die andere richtung einfacher (also wen man iregendwelche infos vom server haben will..)
SOAP bzw. XML hatte ich auch schon angedacht. Aber hinsichtlich der "Hackordnung" bin ich eigentlich mittlerweile genau anders herum geneigt, quasi einheitlich von "Oben nach Unten": - Telefone holen Daten von Server - Server holt Daten von Dämons - Dämon holt Daten aus Kontakten ... was spricht dagegen?
> - Telefone holen Daten von Server > - Server holt Daten von Dämons > - Dämon holt Daten aus Kontakten > ... was spricht dagegen? 3 Programme laufen und müssen funktionieren damit die Daten transportiert werden. Ich würde versuchen, mit 1 aktiven Programm auszukommen, falls das geht.
MaWin schrieb: > Ich würde versuchen, mit 1 aktiven Programm auszukommen, falls das geht. Schwierig. Die Telefone (Grandstream GXP 2020) sind eigenständige Geräte und versuchen in einstellbarem Abstand, eine XML-Datei von einem Webserver zu laden. Gelingt das, wird das interne Telefonverzeichnis aktualisiert, gelingt das nicht, bleibt das bisherige erhalten. Die Server-Applikation läuft auf einem 7/24-laufenden Rackserver. Sie versucht die Dämons auf den Arbeitsplätzen zu erreichen, die ohnehin nicht immer angeschaltet sind. Kommt die Kommunikation zustande, werden die Daten abgeholt, analysiert, formatiert, gefiltert usw. und der lokale Datenbestand aktualisiert (den sich dann gelegentlich die Telefone holen). Kommt keine Kommunikation zustande, bleibt der lokale Datenbestand unverändert Die Dämons sind "unsichtbare" Hintergrundprogramme, die beim Systemstart mit geladen werden und einmal pro Minute prüfen, ob Outlook geöffnet (Mac, Applescript) bzw. MAPI (Windows) verfügbar ist. Wenn ja, werden die Kontakte ausgelesen. Per Checksumme wird geprüft, ob sich 'was geändert hat. Wenn nicht, wird die nächste Server-Anfrage ignoriert bzw. mit "none" beantwortet. Hat sich 'was geändert, gehen die gesamten Daten 'rüber. Ein Aufdröseln in einzelne Datensätze (nur die neuen bzw. geänderten senden) war mir im Moment zu kompliziert, mache ich vielleicht noch ...
Nachtrag zu den Dämons: Die prüfen pro Minute nur, ob sie an die Kontakte herankommen können. Eine Analyse auf Veränderung der Kontakte findet nur einmal pro Stunde statt.
Ich würde die einzelnen PCs die Daten an den Server schicken lassen, wieso sollte sich der Server bemühen Clients zu befragen die im Zweifel eh nichts zu sagen haben, der Dämon weiß ja selber am besten ob er neue Daten hat. Außerdem würde ich vermeiden das als Dämon im Hintergrund laufen zu lassen, sondern einfach mit Outlook mitstarten lassen.
Ich würde einfach auf einem Server eine Datenbank installienen, jeder PC kann dort dann die Daten hinterlegen und die Telefonanlage kann sich die Daten rausziehen. Dann kann man auch den abgleich untereinander einfach machen.
Peter II schrieb: > Ich würde einfach auf einem Server eine Datenbank installienen, jeder PC > kann dort dann die Daten hinterlegen Das würde aber bedeuten, dass auf jedem PC Treiber und Zugangsdaten für die Datenbank installiert und konfiguriert werden müssten. Wenn die Server-App aktiv wird, macht sie einfach einen Portscan durch das Subnetz und findet so die Dämons ohne große Konfiguration. > und die Telefonanlage kann sich die > Daten rausziehen. Nicht "die Telefonanlage" zieht die Daten heraus (gibts natürlich auch, aber ist in meinem Fall nicht so), sondern die Telefone wollen eine XML-Datei per HTTP downloaden ...
> Außerdem würde ich vermeiden das als Dämon im Hintergrund laufen zu > lassen, sondern einfach mit Outlook mitstarten lassen. Warum? Der Dämon braucht 5 MB und die Systemlast ist quasi nicht messbar ... ausserdem gibts zumindest unter Windows den Vorteil, dass MAPI (die API für den Zugriff auf die Kontaktdaten) auch dann verfügbar ist, wenn Outlook garnicht geöffnet ist. Auf dem Mac greift Applescript leider nur, wenn gleichzeitig auch die Zielanwendung läuft ...
Frank Esselbach schrieb: > Das würde aber bedeuten, dass auf jedem PC Treiber und Zugangsdaten für > die Datenbank installiert und konfiguriert werden müssten. Treiber können einfach mit in der anwendung enthalten sein. Zugangsdaten können ja fest codiert sein - mit diesen Daten darf man ebend nur einträge hinzufügen und nicht lesen. > Wenn die > Server-App aktiv wird, macht sie einfach einen Portscan durch das > Subnetz und findet so die Dämons ohne große Konfiguration. auch dort musst die den Port konfigurieren oder fest codieren, kein unterschied zu datenbank. Und ein Portscann ist ja wohl das dümmste was man machen kann, dann doch lieber ein broadcast. Und wenn dann doch mal ein pc über ein VPN in einem anderen Subnetzt ist geht es schief. Bei der Datenabank würde ich ein DNS eintrage anlegen und dieser zeigt dann auf dem Server.
Hallo, ich finde eine Lösung ohne zentrale Datenbank von vornherein falsch konzipiert, einfach aus betrieblicher Erfahrung: telefoniert ein Kunde mit 4 verschiedenen Mitarbeitern, so landen seine Kontaktdaten fast unweigerlich in 4facher, aber unterschiedlicher Ausfertigung auf dem Server, wenn nicht von vornherein mit einer gemeinsamen Kontaktdatenbank gearbeitet wird. Da sowas oft benötigt wird, gibt es auch eine ganze Reihe von Programmen dafür, u.a., wenigstens theoretisch, auch ein Microsoft Exchage Server. Callcenter haben noch viel ausgefeiltere Systeme. Gruss Reinhard
Hi, ich schließe mich Reinhard an. Ohne zentralen Server (=Datenquelle) wird das nur ein Gebastel. Ich hatte mal ein ähnliches System am laufen, das auch automatisiert Kontaktdaten von mehren PCs geladen und zusammengeführt hat. Endergebnis war, dass wir uns vor Duplikaten nicht mehr retten konnten, alle jeweils mit anderer Schreibweise. Warum werden bei Dir nicht alle Kontakte global über Exchange Server bereitgestellt? Dann hast Du eine einzige Datenquelle, aus der Du einigermaßen gepflegte und duplikatfreie Daten erhältst. Grüße, TommyS
Tommy S. schrieb: > dass wir uns vor Duplikaten nicht > mehr retten konnten, alle jeweils mit anderer Schreibweise. Sowas führt man mit einem Script zusammen. Wer sich Exchange nicht antun möchte, nimmt ODBC und eine Access-Datenbank.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.