22.01.2009

Error while calling sox. Not installed? - Problem gelöst

Die obige Fehlermeldung kennen nur wenige. Aber die ihn kennen, haben ein Problem, weil der Capisuite - Anrufbeantworter schickt per Mail statt des Wav Files nur die obige Fehlermeldung Error while calling sox. Not installed? Nur scheinbar ist sox nicht installiert, denn die Fehlermeldung ist irreführend, wie in einfacher Aufruf von
~> sox --version
zeigt.

Ursache des Fehlers:

Bei einigen Linux Versionen hat das Programm "sox", welches zum Konvertieren von Sound-Dateien sehr nützlich ist, ein Update erhalten. Das Programm erwartet jetzt (etwa seit Version 13) andere Optionen. Leider ist die capisuite da offensichtlich nicht mitgekommen.

Zur Abhilfe reicht ein Editor...
Öffnen Sie mit root-Rechten und dem Editor Ihres Vertrauens die Datei "cs-helpers.py" (Der genaue Pfad kann, abhängig von der Python-Version, abweichen):
~> sudo vi /usr/lib64/python2.5/site-packages/cs-helpers.py
oder
~> sudo vi /usr/lib/python2.5/site-packages/cs-helpers.py
Möglicherweise müssen Sie suchen:
~> find / -name cs-helpers.py 2> /dev/null
Suchen Sie in der geöffneten Datei nach folgender Zeile: (etwa Zeile 230)
ret = os.spawnlp(os.P_WAIT,"sox","sox",attachment,"-w",basename+"wav")
und ändern Sie diese wie folgt ab:
ret = os.spawnlp(os.P_WAIT,"sox","sox",attachment,"-2",basename+"wav")
Löschen Sie danach (sicherheitshalber) den binären Cache der Datei, diese wird von python bei der ersten Ausführung neu angelegt:
rm cs-helpers.pyc
Funktioniert.

Ein Restart des capisuite-Dämons oder des ISDN-Systems ist nicht notwendig.