Unified Communications Guerrilla CUCM SQL-Abfragen CDR Analysis (CAR)

Einige Zusätzliche Informationen.


Für diese Beitrag der Woche werde mir den Cisco CDR Analysis and Reporting (CAR) Datenbank erkunden. CAR ist eine Anwendung, die Cisco hat sich von „Callmanager“ seit der Zeit vor der Namensänderung mit CUCM enthalten. Eigentlich, wenn wir alle nostalgisch darüber erhalten möchten, CAR ist der „Künstler früher bekannt als“ ART. Glücklicherweise sehe ich den Punkt nicht die Geschichte der Erforschung und bohrte Sie nicht mit den Details. Wir wollen nur auf die Daten zu erhalten.


Welche Daten? Nun, CAR ist eine Anwendung, Dienst, der auf dem CUCM Cluster ausgeführt (der Verleger, tatsächlich). Wenn aktiviert, kann diese Anwendung aufrufen verbrauchen Detail Records (CDR) und ruft Wartung (oder Diagnose) Aufzeichnungen (CMR). Die CDR / CMR-Daten werden in eine separate Datenbank auf dem CUCM Verlag geschrieben. Also, die Daten, die wir daran interessiert sind, sind CDR-Daten.

Verwenden, um die in diesem Blog beschrieben Methoden, die Sie benötigen, um sicherzustellen, dass die folgenden Schritte auf Ihrem CUCM-System gesetzt werden:
  1. Aktivieren Sie die CDR Analysis and Reporting (CAR) Dienst auf dem CUCM Verlegerknoten.
  2. Zum System> Service-Parameter und stellen Sie den Cisco Callmanager-Dienst „Anruf Diagnose aktiviert“ Parameter auf true auf jedem Cluster-Knoten, der den Callmanager-Dienst aktiviert hat.

Der Woche Abfrage


Ich werde ein Beispiel aus einer Bewertung verwenden, die ich für einen meiner Kunden haben. Der Kunde hat keine Klasse in der CUCM Wählplan angewandt Einschränkung. Sie wollten mir ihre Wählplan neu zu gestalten und anzuwenden COR. Doch bevor sie das System gesperrt wollten sie wissen:
  • Wer hatte Anrufe zu internationalen Zielen platziert
  • Gäbe es keine Fälle, in denen eine Telefonleitung aktiv Anrufe LD weitergeleitet und internationale Ziele
Zum Glück hatte der Kunde CAR aktiviert und hatte die entsprechenden Parameter auf CUCM aktiviert.

Die beweglichen Teile


Referenzierung der CAR-Datenbank:

Aus db Perspektive sind die CAR-Datenbank und CUCM Datenbank separate Datenbankinstanzen. Was bedeutet, dass, wenn Sie eine Abfrage auf der CAR-Datenbank ausführen, müssen Sie die Datenquelle zu identifizieren. Um die Dinge einfach zu halten, gehe ich davon aus Menschen testen diese Abfragen von der CLI auf dem CUCM. Also, so etwas wie:

Der obige Befehl ist genau, wenn die CUCM (oder CCM) Datenbank abfragt. Um jedoch die CAR-Datenbank zugreifen würden Sie tatsächlich benötigen die Datenbank nach dem Namen zu verweisen. Beispielsweise:

Beachten Sie, dass wir klar die CAR-Datenbank zu identifizieren, wenn die Abfrage definieren. In Versionen von CUCM vor 8.0, würden Sie die CAR-Datenbank in der Klausel from identifizieren. Ab CUCM Version 8.0, geben Sie tatsächlich die Datenquelle vor der select-Klausel.

Die tbl_billing_data Tabelle:

Kommen wir zurück auf unsere Fragen. Die Tabelle, die wir am meisten interessiert, ist die tbl_billing_data Tabelle. In dieser Tabelle werden alle Elemente müssen wir die Aufgabe bewerkstelligen. Die erste Forderung war Anrufe zu internationalen Zielen zu identifizieren. Diese Information ist durch die folgende Abfrage ausgeführt wird: (Sie können die Abfrage von der CLI mit Führen Sie SQL [insert query] ausgeführt werden)

Dies würde in etwa wie folgt liefern:

Natürlich müssten Sie Ihre where-Klausel anpassen Rufnummernplan aufzunehmen. In unserem Beispiel gehen wir von einem Präfix „9“ für Off Net-Anrufe verwendet. Wir werden in einem Moment zu diesem bösen dateTimeOrigination Feld bekommen.

Die nächste Voraussetzung ist, Anrufe zu identifizieren, wo der Anrufer zu einem off net Long Distance oder internationalen Bestimmungsort weitergeleitet wurde. Diese Information ist durch die folgende Abfrage ausgeführt wird: (Sie können die Abfrage von der CLI mit Führen Sie SQL [insert query] ausgeführt werden)

Dies würde in etwa wie folgt liefern:

Also warf ich in einigen kleinen „Wendungen“ in der zweiten Abfrage. Ich verwende eine Verknüpfung Strings in der where-Klausel der Abfrage zu analysieren. Eine der verwendeten Ausdrücke „finalCalledPartyNumber [1,4] =‚9011‘. Im Grunde ist dies Ausdruck überprüft, ob die ersten vier Zeichen des finalCalledPartyNumber ist genau das‚9011‘. Mit der gleichen Technik ich für einen führenden überprüfen‚91‘ auf der finalCalledPartyNumber Zeichenfolge mit: „finalCalledPartyNumber [1,2]“ Es gibt andere Platzhalter Sie in Verbindung mit der LIKE-Anweisung verwenden können, aber ich habe meine eigenen Vorlieben das ist nur, wie ich rolle..

Von mehr Interesse Pressen ist, dass wir leicht durch einen Blick auf den originalCalledPartyNumber und finalCalledPartyNumber Felder Rufnachsendungen sind in der Lage zu finden. Wenn diese beiden unterschiedlich sind, suchen Sie in der Regel an einem weitergeleiteten Anruf. Aufbauend auf dieser allgemeinen Annahme, können wir dann die Feinabstimmung where-Klausel auf unsere Kriterien verengen Auslands- und Fern letzte Rufziele.

Das dateTimeOrigination Feld


Ich höre oft fragen Leute über das dateTimeOrigination Feld und wie das Feld zu interpretieren. CUCM speichert die CDR Datum / Uhrzeit in Epoche Format. Es gibt zahlreiche Konvertierungs-Tools im Web. Wenn Sie CDR-Daten in Excel wurden ziehen, dann können Sie die folgende Formel (in einer neuen Zelle) verwenden, um die Konvertierung zu tun:

Great job auf dieser Reihe, ist diese Art von „vergessen“ Thema, bis der Tag jemand Sie etwas fragen. lol ..

1 - Ich sehe diese Abfragen Ergebnisse an den Ausgängen auf dem Terminal-Client. Gibt es eine Möglichkeit, es in eine Datei (wie txt) zu machen, dann laden Sie es über RTMT oder so, also, falls Sie ein großes Ergebnis haben, können Sie öffnen in Excel auf und arbeiten daran?

2 - Wie ich bin nicht so vertraut mit SQL und so gibt es eine doc, die die Ausdrücke / Platzhalter enthält, die auf den Abfragen verwendet werden können?
Ich sehe die „CUCM“ Seite ziemlich geradlinig ist, man muss nur die Feldnamen von CDR verwenden zu bekommen, was Sie auf dem Ergebnis wollen, aber wie es mir bin nicht sicher, filtern kommt, was verwendet werden kann.

Danke für die Rückmeldung.

1. Ja, ich bin mit dem CLI für Beispiele Leute eine Schnittstelle zu geben, die sie sofort verwenden können, mit der Oberfläche vertraut zu erhalten. In der Praxis verwende ich eigentlich ein Werkzeug, das ich die Ferne die zum Ausführen von Abfragen entwickelt. Das Tool verwendet AXL / SOAP die DB abzufragen. Sie würden etwas in diese Richtung müssen, da Sie nicht die Ergebnisse in einer Datei auf dem CUCM Knoten abladen kann.

2. Das ist eine gute Frage. Es gibt Platzhalter Sie verwenden können, wenn die where-Klausel LIKE oder MATCH verwendet. LIKE ist der ANSI-Standard, während die MATCH Informix-Erweiterung ist. Ich benutze LIKE immer aus keinem anderen Grund anders als das ist, was ich mit anderen DBMS-Abfrage Dolmetscher eingesetzt.

Für Ihr Beispiel, könnten Sie versuchen:

wählen datetimeOrigination, Calling,
originalCalledPartyNumber, finalCalledPartyNumber
von tbl_billing_data
wo Calling like '% 5 ___%'

Die where-Klausel erfasst über eine beliebige Zeichenfolge enthalten 5, gefolgt von 3 Zeichen (angenommen numerischen der Kontext der Frage gegeben sein). Also, 4445000 Matches ebenso wie 444500044, 5123, 5000, 599944, usw. Das „%“ ist ein Spiel von null oder mehr Zeichen, während der Unterstrich „_“ bedeutet eine beliebiges Zeichen.

Mein Name ist William Bell (CCIE # 38914) und ich bin ein Senior Consultant und Praxis Blei mit Chesapeake NetCraftsmen. Mein Fachgebiet ist Cisco Unified Communications (UC) und Collaboration. Ich habe seit über 10 Jahren mit UC und Collaboration-Lösungen und Produkten gearbeitet.

Mein Ziel mit diesem Blog ist meine unabhängige Interpretation auf der Gestaltung, Bereitstellung und Verwaltung von UC und Collaboration-Lösungen zu teilen.

Dieses Blog

Follow The Guerrilla

per Email folgen

Vor ein paar Jahren begann ich eine Blog-Serie auf dem AXL SOAP-Toolkit, das Cisco Unified Communications Manager (CUCM) zur Verfügung stellt. Rece.

Dies ist eine kurze Notiz auf dem Erhalten eines USB-Seriell-Adapter auf meinem MacBook Pro arbeiten, so dass ich in Cisco-Routern trösten können, Switches etc. Y.

Cisco hat Kunden und Partner wurde Lenkung alle Anrufverarbeitung auf dem Cisco Unified Communications Manager (CUCM) zu zentralisieren. Diese i.

Wie wir weiter unten auf der Straße mit Cisco UCM Releases bewegen sind wir begabt mit mehr und mehr „Upgrade“ Varianten. Zuerst kam die Bridg.