Direkter Zugiff auf die CDRs

Hallo,

einer unserer Kunden hat eine eigene Software, um die CDRs auszuwerten.

Welche Möglichkeiten haben wir, ihm einen direkten Zugriff auf die Daten zu geben?

Ein Export per CSV oder XLS ist umständlich, ein Zugriff per REST erfordert zusätzliche Bastelei.

Würde man per ODBC an die Daten kommen?

Gruß,

Stefan

Hallo,

ist der direkte Zugriff auf die CDRs ein wohlgehütetes Geheimnis, das unser Kunde nicht erfahren darf?

Gruß,

Stefan

Genau an diesem Punkt stehe ich auch gerade. Vor der MobyDick hatten wir einen reines Asterisk-System im Einsatz. Dort habe ich alle Auswertungen selber gebaut und die Tabellen ‘queue_log’ und ‘CDR’ über ODBC gezogen.
Meine Kollegen möchten jetzt eine Anrufstatistik unserer Hotline aus MobyDick haben. Außerdem eine Auflistung der Anrufer, die aufgelegt haben, während sie in der Warteschlange waren. Wie kann ich das wieder hinbekommen? Die schönen Funktionen und Diagramme habe ich noch, aber ohne Daten nützen sie nicht viel.

Hallo zusammen,

die ODBC Treiber sollten vorhanden sein, odbcinst -q -d. Die Datenbank in dem die CDR Daten gespeichert werden nennt sich “openfire”. Für die Journal-Einträge findet ihr dann unter ‘mdjournal’ (/services/cdr/), die detaillierten Daten unter ‘mdphonecallrecord’ /services/cdr/?rawdata=1&chaindata=1]).

Am einfachsten ist der Zugriff via REST API, siehe http://<MobyDickIP>/services.

Gruß
Markus

Hallo,

@odbc: vermutlich geht es um ODBC auf dem Desktop, nicht auf der MobyDick. Generell gibt es natürlich PostgreSQL ODBC Treiber für Windows. Unser PostgreSQL Server ist per default aber so konfiguriert das er nur Verbindungen von Localhost zulässt. Des weiteren sind die Passwörter lange Zufallswerte die pro Installation unterschiedlich sind. Will man also tatsächlich per ODBC und nicht per REST zugreifen, so müsste man folgende Schritte unternehmen:

  • einen weiteren PostgreSQL Account mit entsprechenden Leserechten anlegen
  • PostgreSQL Konfiguration so ändern das Verbindungen aus dem lokalen Netz zulässig sind oder einen SSH Tunnel mit Portweiterleitung benutzten

Zum Thema “Datenbank ist ein Geheimnis” möchte ich mich kurz äussern: es geht darum, dass wir die Datenbank nicht als öffentliche Schnittstelle ansehen. Datenbank-gekoppelte Systeme sind langfristig immer als höchst fragil anzusehen.
Wir behalten uns vor in jedem Release Feld- oder Schemaänderungen vorzunehmen. Auch die Major Version des DB Servers wurde schon angehoben. Dies würde natürlich immer mal wieder Integrationen über den Haufen werden. Bei der REST und XMPP API ist dies anders: wir ziehen diese jeweils so mit das Sie gegenüber den Kunden abgesehen von neuen Feldern/Queries möglichst unverändert bleibt.

Die DB ist also definitiv kein Geheimnis aber unser “privater” interner Speicher, nur die Schnittstellen darauf sind öffentlich. Man muss hier ganz einfach abwägen zwischen einer vermeintlich einfachen Integration per SQL - die halt dann oftmals bricht - und einer geringfügig aufwändigeren per REST die dafür stabil bleibt. Alle halbwegs langfristig gepflegten Systeme bieten eine entsprechende API Schnittstelle an, bei GMail, Facebook, Google oder Twitter frage ich ja auch nicht nach einer SQL Schnittstelle sondern nutze das was der Anbieter für geeignet hält.

In vielen Fällen würde eine einfache Abfrage auf eine einzelne Tabelle auch nicht genügen um eine vernünftige Aussage treffen zu können. Frage ich Dinge per REST ab kann es gut sein das dabei zig Tabellen, Echtzeit Stati aus Asterisk, In-Memory Werte des XMPP-Servers und vieles mehr einfliessen. CDR Daten bilden hier allerdings die Ausnahme, da diese (derzeit) flach in einer Tabelle liegen.

Gruß,

Thomas

Mit welchem Benutzernamen und Passwort kann man sich denn an der Weboberfläche von openfire anmelden?