[Gelöst] Qualität Voicemail

tjwan

Neuer User
Mitglied seit
17 Jun 2005
Beiträge
6
Punkte für Reaktionen
0
Punkte
0
Hallo,

Ich habe das folgende Problem:

Bei der Aufnahme von Voicemails gehen Wortfetzen verloren, als könnte das das System nicht schnell genug auf die Platte schreiben.

Zur Analyse habe ich die folgenden Versuche gemacht:

1. Gesprächsaufzeichnung mit Monitor-Funktion.
Auch dabei wird der Audiokanal von Asterisk aufgezeichnet und in eine Wav-Datei gespeichert. Anrufer über ISDN / CAPI und Anruf über SIP.
Ergebnis: Leichtes Rauschen, aber Qualität absolut ausreichend sowohl beim Anruf über ISDN als auch über SIP.

2. Voicemail, Anrufer über SIP
Ergebnis: Qualität bestens

3. Voicemail, Anrufer über ISDN / CAPI
Ergebnis: Kaum zu verstehen. Es gehen Wortfetzen verloren, als könnte das das System nicht schnell genug auf die Platte schreiben oder die Rauschunterdrückung ist falsch eingeregelt. Der Versuch wurde mit unterschiedlichen Enstellunges des Parameter silencethreshold zwischen 0 und 255 wiederholt und auch mit dem beiden Formaten wav und wav49. Es liessen sich aber keine Unterschiede feststellen.

Was mich wundert: Was ist der Unterschied zwischen 1. und 3. bei beiden wird doch der Audiokanal, der über einen ISDN / Capi - Kanal in das Asterisk-System kommt in eine Datei aufgezeichnet. Oder wo gibt es ausser in voicemail.conf weitere Parameter die das beeinflussen können ?

Steckbrief zur Anlage:
Linux 2.6.10, Asterisk 1.0.7 auf einem Athlon 1.8 GHz mit AVM C4 Karte als Nebenanlage angeschlossen an eine Nebenstellenanlage. Normale Telefonate in allen Richtungen zwischen ISDN und SIP Softphone funktionieren mit guter Qualität.

Ich habe hier im Forum schon jede Menge gelesen zu Timern und Kernel-Treibern die die Qualität beeinflussen. Die Einträge schienen mir aber alle älter zu sein. Ausserdem ist die Qualität ja an sich gut auch beim Monitoring, es gibt nur Probleme bei der Aufzeichnung von Voicemails.

Gruß

tjwan
 
tjwan!

Sieht so aus, als ob sich die ISDN karte ein IRQ teilt.
Was sagt denn:

cat /proc/interrupts

???

Die Platte muß im DMA-Mode laufen.

Gruß
britzelfix
 
britzelfix schrieb:
Sieht so aus, als ob sich die ISDN karte ein IRQ teilt.

Kann ich im Linux (Suse 9.2) die Benutzung bestimmter irq's erzwingen?

Die freien IRQ's 3, 4, 6, 7 (Serielle und Drucker ausgeschaltet, keine Floppy) werden nicht genutzt, andere dafür mehrfach belegt.

Das BIOS bietet in der Richtung leider nichts, einer der Gründe warum ich plug and pray nicht ausstehen kann!
 
Hallo Britzelfix,

Danke für den Tip. Die Platten laufen bereits im DMA-Modus.
Allerdings ist die C4-Karte irgendwie noch auf einem virutellen Interrupt (s.u.) Wir schalten jetzt mal alle überflüssigen Devices ab und hoffen dann, dass die Interrupts besser verteilt werden.

Code:
           CPU0
  0:  865049208    IO-APIC-edge  timer
  1:          8    IO-APIC-edge  i8042
  7:          2    IO-APIC-edge  parport0
  8:          4    IO-APIC-edge  rtc
  9:          0   IO-APIC-level  acpi
 10:     100000   IO-APIC-level  uhci_hcd, uhci_hcd
 11:     400943   IO-APIC-level  via82cxxx
 12:  341799310    IO-APIC-edge  i8042
 14:    1276621    IO-APIC-edge  ide0
 15:   11521624    IO-APIC-edge  ide1
169:    8080793   IO-APIC-level  c4-dc00, eth0
177:     335736   IO-APIC-level  c4-e000
185:     179166   IO-APIC-level  c4-e800
NMI:          0
LOC:  865138479
ERR:          1
MIS:          0

Nach abschalten aller überflüssigen sieht die Interruptverteilung wie folgt aus. Die C4-Karten liegen immer noch auf den virtuellen Interrupts. Gibt es irgendeine Möglichkeit, das Mapping der Interrupts zu beeinflussen ?

Code:
           CPU0
  0:     648231    IO-APIC-edge  timer
  1:          8    IO-APIC-edge  i8042
  8:          4    IO-APIC-edge  rtc
  9:          0   IO-APIC-level  acpi
 12:     216675    IO-APIC-edge  i8042
 14:       3785    IO-APIC-edge  ide0
 15:       3937    IO-APIC-edge  ide1
169:       7220   IO-APIC-level  c4-e000, eth0
177:       6977   IO-APIC-level  c4-e400
185:        196   IO-APIC-level  c4-ec00
NMI:          0
LOC:     648220
ERR:          0
MIS:          0

Gruß

Tjwan
 
@kombjuder

Ist mir nicht bekannt. Wenn nötig stelle ich die IRQ's im BIOS ein.
Ist auch stark vom Chipsatz abhängig.

Gruß
britzelfix
 
Wir haben jetzt diverse Sachen ausprobiert:
Alle C4 Karten bis auf eine entfernt. Interrupt im Bios explizit an PCI-Slots zugewiesen (ging nach einigem Suchen doch bei diesem Board, man muss halt selber vor Ort sein), nachdem alle überflüssigen Peripherie-Geräte disabled wurden. Die Karten haben jetzt wirklich ihren eigenen physikalischen Interrupt. Leider immer noch keine Verbesserung.

Könnte es vielleicht doch an der Software liegen, irgendwo im Rauschunterdrückungscode der Voicemail-Funktion ?

Gruß

tjwan
 
tjwan schrieb:
Wir haben jetzt diverse Sachen ausprobiert:
Alle C4 Karten bis auf eine entfernt. Interrupt im Bios explizit an PCI-Slots zugewiesen (ging nach einigem Suchen doch bei diesem Board, man muss halt selber vor Ort sein), nachdem alle überflüssigen Peripherie-Geräte disabled wurden. Die Karten haben jetzt wirklich ihren eigenen physikalischen Interrupt. Leider immer noch keine Verbesserung.

Könnte es vielleicht doch an der Software liegen, irgendwo im Rauschunterdrückungscode der Voicemail-Funktion ?

Gruß

tjwan
@tjwan

Laeuft die HD im DMA-Modus?

mit hdparm -vi /dev/hda ueberpruefen.

Notfalls eine ramdisk einrichten und statt auf HD ins RAM speichern.

# /etc/fstab
tmpfs /var/spool/asterisk/voicemail tmpfs auto 0 0

wenns dennoch nicht klappt, mit 4-HFC Karten versuchen,
Board/CPU tauschen usw...

Gruss
britzelfix
 
Da auch eine FritzCard uns nicht weitergebracht hat, hatten wir aber eher doch die Software im verdacht. Aber auch ein neuer Chan_Capi-Treiber brachte leider nichts. Noch eine interessante Beobachtung: Wenn man auf den AB pfeift, also ein durchgehendes Signal ohne Unterbrechungen erzeugt, wird dieses auch ohne Unterbrechnungen aufgezeichnet.

Die Platten liefen bereits im DMA-Modus. Ist allerdings ein Softraid, vielleicht stellt das noch ein Problem dar. Wir versuchen es jetzt nochmal mit der Ramdisk.

Falls auch das uns nicht weiterbringt, werden wir es mal mit HFC-Karten versuchen. Läuft das dann auch noch über Capi oder wird dann eine ganz andere Treiberhierarchie benötigt ?
 
Das ging schnell:

Ramdisk einrichten:
mv /var/spool/asterisk/voicemail /var/spool/asterisk/voicemail2
mkdir -p /var/spool/asterisk/voicemail
mkfs -t ext2 /dev/ram0
mount /dev/ram0 /var/spool/asterisk/voicemail

und aufnehmen. Leider kein Stück besser als bisher. Ich glaube das Plattensystem kann damit dann auch ausgeschlossen werden.
 
Leider kein Stück besser als bisher. Ich glaube das Plattensystem kann damit dann auch ausgeschlossen werden.

versuchs mal mit einem Intel-Board.

Gruß
britzelfix
 
Inzwischen ist die Lösung gefunden:
IRQs und Platte waren alle ok.
Die Lösung lag in einer Erhöhung von rxgain und txgain in der capi.conf
Offenbar verwenden wir zwischen Standard-PBX und Asterik-PBX zu lange Kabel.
Trotzdem Danke für die Hinweise.
 
@tjwan

Interessant. Merkwürdig nur, daß sich das bei den
Gespächen nicht bemerkbar gemacht hat.

Gruß
britzelfix
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.