Das Problem
Vor kurzem bin ich wieder über ein interessantes Problem gestoßen, von dem ich Euch erzählen möchte. Solltet Ihr einmal ein vergleichbares Problem haben, dann hoffe ich, dass Ihr auf diesen Beitrag stoßt und Euch einige Zeit bei der Suche nach der Ursache sparen könnt. Konkret ging es darum, dass sich der Kunde gemeldet hat, weil der Media Manager keine Aufzeichnung abspielt.
Ein kurzer Blick in die Oberfläche mit den Aufzeichnungen sah gut aus. Das System hat ordentlich angezeigt, welche Anrufe aufgezeichnet wurden. Beim Anklicken des Play-Buttons wurde das kleine Player-Fenster eingeblendet. Zu hören war aber nichts. Das sah ähnlich aus wie auf dem folgenden Bild. Allerdings wurde als Länge der Aufzeichnung null Sekunden angezeigt.
Die Funktionsweise des Media Managers
Bis eine Aufzeichnung im Media Manager zur Verfügung steht, ist es ein weiter Weg. Grundvoraussetzung ist eine zusätzliche Festplatte im Server, die aus dem Webinterface des Servers eingerichtet wurde und natürlich Voicemail Pro.
In der IP Office wird festgelegt, welcher Anruf aufgezeichnet wird und wohin dieser Anruf gespeichert wird. Bei der Verwendung des Media Managers ist es notwendig, als Aufzeichnungsziel die Sprachaufzeichnungsbibliothek (VRL) auszuwählen, anstatt die Aufzeichnungen in einer Mailbox abzulegen.
Entscheidet die IP Office, einen Anruf aufzuzeichnen, wird eine Art Dreierkonferenz erstellt mit den beiden Gesprächsparteien und dem Voicemail Server als Teilnehmer. Der Voicemail Server hat so die Möglichkeit, die Anrufe mitzuschneiden. Die Aufzeichnung wird dann zuerst im VRL-Pfad auf der primären Festplatte des Application-Servers (oder des Primary Servers) abgelegt.
Im nächsten Schritt wird zu dem Anruf ein Eintrag in der Media Manager Datenbank angelegt. Darin enthalten sind Informationen zum Anruf (Zeitstempel, Teilnehmer, Dauer, …) und der Speicherpfad, unter dem die Datei auf der zusätzlichen Festplatte später abgelegt werden wird.
Zuletzt wird – offenbar ohne Rücksicht auf Verluste – die Datei vom VRL-Pfad zum Zielpfad auf der Zusatzfestplatte verschoben.
Die Fehlersuche
Bei der Suche nach der Ursache dafür, dass die Aufzeichnungen nicht abgespielt werden konnten, habe ich versucht, den Weg der Aufzeichnung nachzuvollziehen. Ich konnte sehen, dass die Aufzeichnung initial im VRL-Pfad abgelegt wurde. Anschließend hätte die Datei dort verschwinden und auf der Zusatzfestplatte wieder auftauchen sollen. Das war allerdings nicht der Fall. Der Vergleich mit anderen – funktionierenden – Installationen hat dann gezeigt, dass die Berechtigungen der Zusatzfestplatte nicht passten.
Dazu muss man wissen, dass der Media Manager als Benutzer “Tomcat” läuft und in dessen Kontext auch die Dateien bewegt. Allerding ist der Besitzer der Pfade auf der Zusatzfestplatte nicht der Benutzer “Tomcat” sondern der Benutzer “root” und andere Benutzer haben nur Leserechte auf diesen Pfad. In einer funktionierenden Installationen hatten dagegen alle Benutzer Schreibzugriff. Damit war nun auch klar was passiert. Der Media Manager versucht die Datei aus dem VRL-Pfad auf die Zusatzfestplatte zu verschieben. Dabei wird die Datei zwar an der ursprünglichen Position gelöscht, am Ziel aber nicht mehr abgelegt. Somit ist der Anruf zwar in der Datenbank vorhanden und wird im Webinterface angezeigt, die dort hinterlegte Verknüpfung zur Datei führt aber ins Leere.
Die Lösung
Mit diesem Wissen war es natürlich einfach, das Problem zu lösen. Tatsächlich musste ich nur die Ordnerberechtigungen auf der Zusatzfestplatte so anzupassen, dass sie mit denen der funtkionierenden Installation übereinstimmen.
chmod 777 /additional-hdd#1/
Zusammenfassung
Wieder einmal führt ein kleiner Fehler zu einem großen Problem. Ähnliches habe ich in der Vergangenheit schon mit Voicemail Pro erlebt, wo eine falsche Ordnerberechtigung dazu führte, dass keine Benutzervariablen mehr gespeichert werden konnten.
Mit der Anpassung funktioniert der Media Manager nun wie gewünscht. Die bisher erstellten Aufzeichnungen waren allerdings verloren. Aus meiner Sicht gibt es hier bei Avaya zwei Schwächen. Zum einen ist es nicht sinnvoll, ein Verzeichnis mit Vollzugriff für jeden zu konfigurieren. Zum anderen kann ich nicht verstehen, weshalb das Skript, das die Datei verschiebt, diese nicht erst an das Ziel kopiert und nach einer Überprüfung die Ursprungsdatei löscht. Damit wäre es zwar auch nicht möglich gewesen, die Aufzeichnung abzuspielen, allerdings wären die Aufzeichnungen auch nicht für immer verloren gewesen.
Was letztlich die Ursache für die falschen Berechtigungen war, war im Nachhinein nicht mehr festzustellen. Der Server wurde einmal auf ein aktuelles Release aktualisiert. Möglicherweise ist dabei ein Fehler geschehen.