[Problem] ASTERISK auf Linux steuert ALSA Soundsystem nicht richtig

Fraenki72

Neuer User
Mitglied seit
27 Okt 2016
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Hallo!

Ich bin ASTERISK Newbie und versuche gerade auf einem DELL-Laptop mit LINUX Mint ASTERISK 11.23.1 zu installieren. Hilfestellung hab ich mir bisher von der Seite www.das-asterisk-buch.de geholt, aber jetzt komme ich nicht weiter. Ich kann ASTERISK starten und habe den Test-Anschluss 1001 unter extensions.conf eingerichtet. Im CLI gebe ich den Befehl "console dial 1001" ein und die Logmeldungen zeigen mir, dass der Tln angerufen und danach aufgelegt wird. Eigentlich soll der sound "hallo welt" abgespielt werden. Im Log stehen dann aber diverse Fehlermeldungen, u.a. dass der Ordner /dev/dsp fehlt. Dieser Ordner ist auch in der Verzeichnisstruktur nicht angelegt. Offensichtlich hat mein LINUX zur Ansteuerung der Soundkarte das ALSA installiert. In der Konfigdatei zu ASTERISK modules.dfg sind zur Soundansteuerung folgende Einträge eingestellt:

noload => chan_alsa.so
;noload => chan_oss.so
noload => chan_console.so

irgendwo habe ich gelesen, dass ich nun also die Einträge wie folgt ändern sollte

;noload => chan_alsa.so
noload => chan_oss.so
noload => chan_console.so

bzw auch probiert habe ich nur die Einträge

load => chan_alsa.so
noload => chan_oss.so

Mit dieser Änderung kommt aber schon nach dem Befehl im CLI> console dial 1001
die Fehlermeldung, dass der Befehl console nicht bekannt sei.
Vielleicht kann mir jemand mit diesem Anfangsproblem behilflich sein.

Danke
 
Da würde ich erstmal herausfinden wollen, ob die Soundkarte überhaupt funktioniert bzw. verfügbar ist. Was sagt 'aplay -l'?

Falls Mint den bescheuerten systemd verwendet, kann es sein, daß Du keinen Zugriff auf die Soundkarte hast, weil man Dir das verbietet. Da gibt's irgendwelche Zugriffsbeschränkungen auf den "eingeloggten User" --- welcher jeweils als solcher angesehen wird und wie man so eine Beschränkung aufhebt, habe ich nie herausfinden können.

Gibt's irgendwas unter /dev/snd?


PS: Ach ja, falls Du pulseaudio installiert hast, dann blockiert das vielleicht. Pulseaudio kannst Du entfernen oder zumindest deaktivieren. Außer in Spezialfällen bring er keine Vorteile und verbraucht nur unnötig Resourcen.
 
Zuletzt bearbeitet:
Danke für die schnelle Antwort!

So funktioniert die Soundkarte (über Banshee z.B. können ohne Probleme mp3 abgespielt werden)

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC272 Analog [ALC272 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0

und unter /dev/snd liegen Dateien (z.B. hwC0D0 oder pcm...)
ASTERISK starte ich als su, in LINUX bin ich allerdings auch noch nicht so fit


PAVUCONTROL hab ich mal deinstalliert. Das Log unter ASTERISK sieht mit aktiviertem OSS-Soundsystem wie folgt aus:
----
*CLI> console dial 1001
*CLI> [Oct 27 15:17:40] WARNING[22828]: chan_oss.c:488 setformat: Unable to re-open DSP device /dev/dsp: No such file or directory
[Oct 27 15:17:40] NOTICE[22828]: console_video.c:137 console_video_start: voice only, console video support not present
-- Executing [1001@default:1] Answer("Console/dsp", "") in new stack
<< Console call has been answered >>
-- Executing [1001@default:2] Playback("Console/dsp", "hello-world") in new stack
-- <Console/dsp> Playing 'hello-world.gsm' (language 'en')
[Oct 27 15:17:41] WARNING[23109][C-00000000]: chan_oss.c:488 setformat: Unable to re-open DSP device /dev/dsp: No such file or directory
-- Executing [1001@default:3] Hangup("Console/dsp", "") in new stack
== Spawn extension (default, 1001, 3) exited non-zero on 'Console/dsp'
<< Hangup on console >>
---


wenn ich versuche, in der modules.cfg-datei alsa zu aktivieren so:
---
*CLI> console dial 1001
No such command 'console dial 1001' (type 'core show help console dial' for other possible commands)
---
 
Zuletzt bearbeitet:
Hi,

ich betreibe meine Haupt-Telefonanlage u.a. mit einem Wireless- Headset. Die Verbindung zum Mainboard stellt ein USB Dongle her, das von Linux aus (bei mir Debian) wie eine Soundkarte aussieht (hat natuerlich nur speaker und micro). Diese Kombi laeuft top. Sogar auf einem meiner kleineren Asterisk-Systeme: (z.B. auf einem RPi). 'chan_alsa/chan_oss' im Asterisk kann ich also nur empfehlen.

Fuer's erste wuerde ich aber nur chan_oss verwenden. Das laeuft bei mir mit quasi 0 latency und ohne sonstige Probleme.

chan_alsa im Asterisk also bitte auskommentieren:
Code:
noload => chan_alsa.so
load => chan_oss.so

Die oss Kompatibilitaet scheint ja bei dir ja schon aktiv zu sein:

Code:
lsmod | grep snd_pcm_oss

wenn er sagt 'Unable to re-open DSP device /dev/dsp' dann haengt bei dir schon irgendwer auf dem /dev/dsp herum.

Herausfinden wer (als root):
Code:
lsof | grep /dev/snd
 
Zuletzt bearbeitet:
Auch Dir Danke für die Antwort.

Ich habe es in der modules.cfg entsprechend umgestellt.

dann hab ich versucht, die Abfragen zu machen (wie gesagt, ich bin bei LINUX nicht so fit)

---
frank-Inspiron-1110 frank # lsmod | grep snd_pcm_oss
frank-Inspiron-1110 frank # lsof | grep /dev/snd
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
pulseaudi 2057 frank 16u CHR 116,2 0t0 486 /dev/snd/controlC0
pulseaudi 2057 frank 23u CHR 116,2 0t0 486 /dev/snd/controlC0
pulseaudi 2057 frank 28u CHR 116,2 0t0 486 /dev/snd/controlC0
alsa-sink 2057 2083 frank 16u CHR 116,2 0t0 486 /dev/snd/controlC0
alsa-sink 2057 2083 frank 23u CHR 116,2 0t0 486 /dev/snd/controlC0
alsa-sink 2057 2083 frank 28u CHR 116,2 0t0 486 /dev/snd/controlC0
alsa-sour 2057 2084 frank 16u CHR 116,2 0t0 486 /dev/snd/controlC0
alsa-sour 2057 2084 frank 23u CHR 116,2 0t0 486 /dev/snd/controlC0
alsa-sour 2057 2084 frank 28u CHR 116,2 0t0 486 /dev/snd/controlC0

---
Diese Ausgabe sagt mir zu meinem Problem nun nicht ganz so viel. Zu Deinem "Dongle", wäre es also eine Alternative zu meinem System. Zunächst versuche ich ohne Zukäufe auszukommen, nur um zu testen. Ein SIP-Gerät habe ich. Dies klingelt zumindest auch schon.
Sollte LINUX Mint das Hauptproblem sein, würde ich auch eine Debian-distribution aufspielen...
 
das pulseaudio solltest du herauskicken. Ich kenne dein System nicht. Bei mir ginge es so:
Code:
systemctl stop pulseaudio
systemctl disable pulseaudio

dann nochmal mit 'lsof' checken
 
Da die Entwickler von systemd nicht verstehen, was 'disabled' heißt, sollte man lieber 'mask' nehmen, um einen Service zu disablen.

Dir fehlt /dev/dsp, also müßtest Du das alsa Modul verwenden oder portaudio ausprobieren.

Warum mit alsa der 'console' Befehl unbekannt ist, weiß ich nicht; das wird wohl asterisk-spezifisch sein.


Allerdings wäre ich gar nicht auf die Idee gekommen, von der console aus eine extension anwählen zu wollen. Nicht daß das nicht irgendwie nützlich sein könnte, aber wenn ich einfach ein Telephon anschließe und damit teste, erst dann merke ich ob's funktioniert oder nicht. Was würde ich also testen wollen, wenn ich von der console aus irgendwas anwähle?

Und eine Umwandlung der Sprache in Text gibt's ja leider auch nicht.
 
Dir fehlt /dev/dsp, also müßtest Du das alsa Modul verwenden oder portaudio ausprobieren.
wie gesagt, ich wuerde oss dem alsa vorziehen. Mit alsa hatte ich teilweise komische Effekte. Und zwar auf ganz verschiedenen CPU Architekturen und Asteriskversionen aber immer mit aehnlichen Symptomen.

Warum mit alsa der 'console' Befehl unbekannt ist, weiß ich nicht; das wird wohl asterisk-spezifisch sein.
das bringt er immer wenn er das Audio Device nicht oeffnen kann

Allerdings wäre ich gar nicht auf die Idee gekommen, von der console aus eine extension anwählen zu wollen. Nicht daß das nicht irgendwie nützlich sein könnte, aber wenn ich einfach ein Telephon anschließe und damit teste, erst dann merke ich ob's funktioniert oder nicht. Was würde ich also testen wollen, wenn ich von der console aus irgendwas anwähle?
das console Interface des Asterisk ist deswegen so geil, weil der Asterisk dann ganz nebenher zum CLI bedienten Softphone wird.
Fuer Diagnosezwecke ist sowas unschlagbar. Ich nutze es aber auch als Standardtelefon auf meinem Laptop.
Zudem kann man so mit dem RPI z.B. ein WLAN-faehiges Telefon bauen. Das habe ich hier u.a. in Betrieb.

Allerdings ist wegen Echo/Rueckkopplungsproblemen ein Headset sehr zu empfehlen (im Falle des RPi wegen des ansonsten fehlenden Micros natuerlich sowieso :) )

Aber zum schnellen Testen reicht auch der Einbaulautsprecher/ das Einbaumicro etwa eines Laptops

- - - Aktualisiert - - -

falls /dev/dsp* fehlen sollte:
Code:
# ls -l /dev/dsp*
ls: cannot access /dev/dsp*: No such file or directory
z.B. mit modprobe nachladen
Code:
modprobe  snd-pcm-oss
sollte dann vorhanden sein, z.B. so
Code:
# ls -l /dev/dsp*
crw-rw----+ 1 root audio 14, 19 Oct 27 19:16 /dev/dsp1
crw-rw----+ 1 root audio 14, 19 Oct 27 19:16 /dev/dsp2
natuerlich darauf achten, dass im '/etc/asterisk/oss.conf' das richtige davon adressiert wird:
Code:
[general]
    ; General config options, with default values shown.
    ; You should use one section per device, with [general] being used
    ; for the first device and also as a template for other devices.
    ;
    ; All but 'debug' can go also in the device-specific sections.
    ;
    ; debug = 0x0               ; misc debug flags, default is 0

    ; Set the device to use for I/O
    ; device = /dev/dsp

; choose the right one
device = /dev/dsp1
;device = /dev/dsp2  
[...]
 
Zuletzt bearbeitet:
Vielen Dank für die schnellen Infos!

Der Hinweis, modprobe nachzuladen, führte letztlich zum Erfolg. Jetzt kann ich erstmal weiter testen.
 
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.