Asterisk auf SuSE 9.3-System: ".sound_thread: Read erro

webshark

Neuer User
Mitglied seit
17 Nov 2005
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen!
Ich habe ein Problem bei der Umsetzung des in der c't 13/2005 ab Seite 216 abgedruckten Artikels „Ein Pinguin als Sparfuchs – Linux-PC senkt die Handy-Gebühren“.
Ich habe einen PC auf dem SuSE Linux 9.3 läuft mit einer AVM Fritz! Card PCI V2.0/2.1 ISDN bestückt (nachdem eine ELSA MikroLink nicht lief) und bin des Weiteren wie folgt vorgegangen:

1. folgende Pakete habe ich installiert:

a. capi4linux
b. avmfritzcapi
c. openssl-devel

openssl und php4 waren schon zuvor auf dem Rechner installiert.

2. Aufruf von YaST2 und einrichten der Karte. Da die Karte automatisch erkannt wurde, beschränkte sich die Konfiguration auf die Eingabe der Ortskennzahl ohne führende Null.

3. Installation der folgenden Pakete:

a. asterisk
b. asterisk-capi

In der c’t wurde angegeben, man solle mittels „make samples“ die Konfigurationsdateien unter /etc/asterisk anlegen lassen – das war jedoch bei mir nicht nötig (hoffe ich), da nach der Installation der Pakete mittels YaST2 die Dateien bereits in den Ordnern zu finden waren.

4. Anpassen der config:

modules.conf:
Code:
[modules]
autoload=yes

noload => pbx_gtkconsole.so
;load => pbx_gtkconsole.so
noload => pbx_kdeconsole.so

noload => app_intercom.so

load => chan_modem.so
load => res_musiconhold.so
load => chan_capi.so

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

[global]
chan_modem.so=yes
chan_capi.so=yes

extensions.conf (nur eingefügter Code):
Code:
[capiin]
extern => MEINE_MSN/MEINE_LOOP-NUMMER,1,Wait,1
extern => MEINE_MSN/MEINE_LOOP-NUMMER,2,AGI,callback.agi
extern => MEINE_MSN/MEINE_LOOP-NUMMER,3,Hangup
[capidialtone]
extern => s,1,Dial,CAPI/@MEINE_MSN:b
extern => s,2,Hangup
include => capiin

capi.conf (in /etc/asterisk):
Code:
;
; CAPI config
;
;
[general]
nationalprefix=0
internationalprefix=00
rxgain=0.8
txgain=0.8

[interfaces]

msn=MEINE_MSN
incomingmsn=MEINE_MSN
controller=1
softdtmf=1
accountcode=
context=capiin
;echosquelch=1
;echocancel=yes
;echotail=64
;callgroup=1
;deflect=12345678
devices=2


;PointToPoint (55512-0)
;for outgoing calls use example 5551212
;and in dialplan you can use callerid like
;exten => _0XXX.,1,StripMSD,1
;exten => _XXX.,2,Dial,CAPI/55512${CALLERIDNUM}:bBYEXTENSION
;============================================================
;mode=immediate
;isdnmode=ptp
;msn=55512
;controller=2
;devices=30

callback.agi:
Code:
#!/usr/bin/php -q
<?php
ob_implicit_flush(true);
set_time_limit(0);
$err=fopen("php://stderr","w");
$in = fopen("php://stdin","r");
$out = fopen("php://stout","w");
echo("before loop");
while (!feof($in)) {
echo("in loop");
$temp = str_replace("\n","",fgets($in,4096));
$s = split(":",$temp);
$agi[str_replace("agi_","",$s[0])] = trim($s[1]);
if (($temp == "") || ($temp == "\n")) {
break;
}
}
$cf = fopen("/var/spool/asterisk/outgoing/cb".$agi["callerid"],"w+");
fputs($cf,"Channel: CAPI/".$agi["extension"].":MEINE_GENION_NUMMER\n");
fputs($cf,"Context: capidialtone\n");
fputs($cf,"Extension: s\n");
fputs($cf,"SetVar: CALLERIDNUM=".$agi["extension"]."\n");
fputs($cf,"MaxRetries: 2\n");
fputs($cf,"RetryTime: 10\n");
fclose($cf);
fclose($in);
fclose($out);
fclose($err);
?>

5. Start der Anwendung “Asterisk” mit:
Code:
asterisk -v

Daraufhin erfolgte die Ausgabe:
Code:
Asterisk 1.0.6-BRIstuffed-0.2.0-RC7k, Copyright (C) 1999-2004 Digium.
Written by Mark Spencer <[email protected]>
=========================================================================
Asterisk Event Logger Started /var/log/asterisk/event_log
Asterisk PBX Core Initializing
Registering builtin applications:
 [AbsoluteTimeout]
 [Answer]
 [BackGround]
 [Busy]
 [Congestion]
 [DigitTimeout]
 [Goto]
 [GotoIf]
 [GotoIfTime]
 [Hangup]
 [NoOp]
 [Prefix]
 [Progress]
 [ResetCDR]
 [ResponseTimeout]
 [Ringing]
 [SayNumber]
 [SayDigits]
 [SayAlpha]
 [SayPhonetic]
 [SetAccount]
 [SetAMAFlags]
 [SetGlobalVar]
 [SetLanguage]
 [SetVar]
 [StripMSD]
 [Suffix]
 [Wait]
 [WaitExten]
Asterisk Dynamic Loader Starting:
 [chan_modem.so] => (Generic Voice Modem Driver)
 => (A/Open (Rockwell Chipset) ITU-2 VoiceModem Driver)
 [res_musiconhold.so] => (Music On Hold Resource)
Nov 16 00:48:27 WARNING[8000]: res_musiconhold.c:565 moh_register: Unable to open pseudo channel for timing...  Sound may be choppy.
 [chan_capi.so] => (Common ISDN API for Asterisk)
 [res_indications.so] => (Indications Configuration)
 [res_features.so] => (Call Parking Resource)
 [res_agi.so] => (Asterisk Gateway Interface (AGI))
 [res_crypto.so] => (Cryptographic Digital Signatures)
 [res_adsi.so] => (ADSI Resource)
 [res_monitor.so] => (Call Monitoring Resource)
 [app_sms.so] => (SMS/PSTN handler)
 [app_hasnewvoicemail.so] => (Indicator for whether a voice mailbox has messages in a given folder.)
 [format_wav_gsm.so] => (Microsoft WAV format (Proprietary GSM))
 [app_url.so] => (Send URL Applications)
 [chan_modem_i4l.so] => (ISDN4Linux Emulated Modem Driver)
 [app_test.so] => (Interface Test Application)
 [chan_mgcp.so] => (Media Gateway Control Protocol (MGCP))
 [app_eval.so] => (Reevaluates strings)
 [app_sendtext.so] => (Send Text Applications)
 [app_exec.so] => (Executes applications)
 [app_txtcidname.so] => (TXTCIDName)
 [cdr_manager.so] => (Asterisk Call Manager CDR Backend)
 [app_capiCD.so] => ((CAPI*) Call Deflection, the magic thing.)
 [app_directory.so] => (Extension Directory)
 [app_playback.so] => (Trivial Playback Application)
 [app_capiNoES.so] => ((CAPI*) No Echo Suppression.)
 [codec_adpcm.so] => (Adaptive Differential PCM Coder/Decoder)
 [chan_local.so] => (Local Proxy Channel)
 [app_groupcount.so] => (Group Management Routines)
 [app_adsiprog.so] => (Asterisk ADSI Programming Application)
 [app_chanisavail.so] => (Check if channel is available)
 [app_qcall.so] => (Call from Queue)
 [app_softhangup.so] => (Hangs up the requested channel)
 [codec_lpc10.so] => (LPC10 2.4kbps (signed linear) Voice Coder)
 [app_setcidname.so] => (Set CallerID Name)
 [format_g726.so] => (Raw G.726 (16/24/32/40kbps) data)
 [format_g729.so] => (Raw G729 data)
 [app_userevent.so] => (Custom User Event Application)
 [codec_gsm.so] => (GSM/PCM16 (signed linear) Codec Translator)
 [app_authenticate.so] => (Authentication Application)
 [format_pcm_alaw.so] => (Raw aLaw 8khz PCM Audio support)
 [format_ilbc.so] => (Raw iLBC data)
 [format_h263.so] => (Raw h263 data)
 [app_forkcdr.so] => (Fork The CDR into 2 separate entities.)
 [app_ices.so] => (Encode and Stream via icecast and ices)
 [app_nbscat.so] => (Silly NBS Stream Application)
 [codec_a_mu.so] => (A-law and Mulaw direct Coder/Decoder)
 [app_system.so] => (Generic System() application)
 [app_record.so] => (Trivial Record Application)
 [chan_iax2.so] => (Inter Asterisk eXchange (Ver 2))
Nov 16 00:48:27 WARNING[8000]: chan_iax2.c:7487 load_module: Unable to open IAX timing interface: No such file or directory
 [app_milliwatt.so] => (Digital Milliwatt (mu-law) Test Application)
 [app_parkandannounce.so] => (Call Parking and Announce Application)
 [app_sayunixtime.so] => (Say time)
 [pbx_spool.so] => (Outgoing Spool Support)
 [app_capiMCID.so] => ((CAPI*) Malicious Caller ID, the evil thing.)
 [app_macro.so] => (Extension Macros)
 [app_random.so] => (Random goto)
 [codec_ulaw.so] => (Mu-law Coder/Decoder)
 [app_capiRETRIEVE.so] => ((CAPI*) RETRIEVE)
 [chan_agent.so] => (Agent Proxy Channel)
 [app_controlplayback.so] => (Control Playback Application)
 [format_jpeg.so] => (JPEG (Joint Picture Experts Group) Image Format)
 [codec_alaw.so] => (A-law Coder/Decoder)
 [app_transfer.so] => (Transfer)
 [cdr_csv.so] => (Comma Separated Values CDR Backend)
 [app_voicemail.so] => (Comedian Mail (Voicemail System))
 [app_pickup.so] => (PickUp/PickDown/Steal/PickupChan)
 [codec_speex.so] => (Speex/PCM16 (signed linear) Codec Translator)
 [app_verbose.so] => (Send verbose output)
 [app_setcdruserfield.so] => (CDR user field apps)
 [codec_g726.so] => (ITU G.726-32kbps G726 Transcoder)
 [app_lookupblacklist.so] => (Look up Caller*ID name/number from blacklist database)
 [app_getcpeid.so] => (Get ADSI CPE ID)
 [app_enumlookup.so] => (ENUM Lookup)
 [codec_ilbc.so] => (iLBC/PCM16 (signed linear) Codec Translator)
 [pbx_config.so] => (Text Extension Configuration)
 [app_segfault.so] => (Application for crashing Asterisk with a segmentation fault)
 [app_read.so] => (Read Variable Application)
 [app_alarmreceiver.so] => (Alarm Receiver for Asterisk)
 [format_gsm.so] => (Raw GSM data)
 [app_dial.so] => (Dialing Application)
 [app_striplsd.so] => (Strip trailing digits)
 [app_capiECT.so] => ((CAPI*) ECT)
 [app_disa.so] => (DISA (Direct Inward System Access) Application)
 [app_cdr.so] => (Make sure asterisk doesn't save CDR for a certain call)
 [app_image.so] => (Image Transmission Application)
 [chan_modem_bestdata.so] => (BestData (Conexant V.90 Chipset) VoiceModem Driver)
 [app_cut.so] => (Cuts up variables)
 [app_devstate.so] => (Application for sending device state messages)
 [app_festival.so] => (Simple Festival Interface)
 [app_meetme.so] => (MeetMe conference bridge)
 [app_echo.so] => (Simple Echo Application)
 [chan_phone.so] => (Linux Telephony API Support)
 [format_pcm.so] => (Raw uLaw 8khz Audio support (PCM))
 [app_privacy.so] => (Require phone number to be entered, if no CallerID sent)
 [app_flash.so] => (Flash zap trunk application)
 [skipping app_intercom.so]
 [app_setcallerid.so] => (Set CallerID Application)
 [pbx_wilcalu.so] => (Wil Cal U (Auto Dialer))
 [app_capiHOLD.so] => ((CAPI*) HOLD)
 [app_substring.so] => ((Deprecated) Save substring digits in a given variable)
 [chan_skinny.so] => (Skinny Client Control Protocol (Skinny))
Nov 16 00:48:27 WARNING[8000]: chan_skinny.c:2584 reload_config: Unable to get our IP address, Skinny disabled
 [format_sln.so] => (Raw Signed Linear Audio support (SLN))
 [app_queue.so] => (True Call Queueing)
 [app_mp3.so] => (Silly MP3 Application)
 [app_lookupcidname.so] => (Look up CallerID Name from local database)
 [format_wav.so] => (Microsoft WAV format (8000hz Signed Linear))
 [app_senddtmf.so] => (Send DTMF digits Application)
 [format_vox.so] => (Dialogic VOX (ADPCM) File Format)
 [app_waitforring.so] => (Waits until first ring after time)
 [app_setcidnum.so] => (Set CallerID Number)
 [chan_oss.so] => (OSS Console Channel Driver)
 [app_talkdetect.so] => (Playback with Talk Detection)
 [app_db.so] => (Database access functions for Asterisk extension logic)
 [chan_sip.so] => (Session Initiation Protocol (SIP))
Asterisk Event Logger restarted
Asterisk Ready.

Jetzt habe ich einen Testanruf auf die eingestellte MSN „MEINE_MSN“ getätigt, der Rechner reagierte mit dem senden eines Klingelzeichens und in der Konsole erfolgte die Ausgabe:

Code:
Nov 16 00:48:27 WARNING[8000]: chan_oss.c:239 sound_thread: Read error on sound device: Resource temporarily unavailable

In “messages” in /var/log/asterisk steht:
Code:
Nov 15 23:10:32 WARNING[7988]: Unable to open pseudo channel for timing...  Sound may be choppy.
Nov 15 23:10:32 WARNING[7988]: Unable to open IAX timing interface: No such file or directory
Nov 15 23:10:32 WARNING[7988]: Unable to get our IP address, Skinny disabled
Nov 15 23:10:32 WARNING[7988]: Unable to open /dev/dsp: Permission denied
Nov 15 23:11:04 NOTICE[7988]: Request to schedule in the past?!?!
Nov 16 00:35:01 NOTICE[7988]: Request to schedule in the past?!?!
Nov 16 00:35:02 NOTICE[7988]: Request to schedule in the past?!?!
Nov 16 00:35:02 WARNING[7988]: Accept returned -1: Bad file descriptor
Nov 16 00:36:43 WARNING[5609]: Unable to open pseudo channel for timing...  Sound may be choppy.
Nov 16 00:36:52 WARNING[5609]: Unable to open IAX timing interface: No such file or directory
Nov 16 00:36:54 WARNING[5609]: Unable to get our IP address, Skinny disabled
Nov 16 00:36:56 WARNING[5609]: Unable to open /dev/dsp: Permission denied
Nov 16 00:37:28 WARNING[5609]: Channel 'CAPI[contr1/MEINE_MSN]/0' sent into invalid extension 's' in context 'default', but no invalid handler
Nov 16 00:39:44 WARNING[5609]: Channel 'CAPI[contr1/MEINE_MSN]/1' sent into invalid extension 's' in context 'default', but no invalid handler
Nov 16 00:47:03 WARNING[5609]: Channel 'CAPI[contr1/MEINE_MSN]/2' sent into invalid extension 's' in context 'default', but no invalid handler
Nov 16 00:48:27 WARNING[8000]: Unable to open pseudo channel for timing...  Sound may be choppy.
Nov 16 00:48:27 WARNING[8000]: Unable to open IAX timing interface: No such file or directory
Nov 16 00:48:27 WARNING[8000]: Unable to get our IP address, Skinny disabled
Nov 16 00:48:27 WARNING[8000]: Read error on sound device: Resource temporarily unavailable
Nov 16 00:53:21 NOTICE[8000]: Removed default indication country 'us'
Nov 16 00:56:46 NOTICE[8000]: Request to schedule in the past?!?!
Nov 16 00:59:49 WARNING[6973]: Unable to open pseudo channel for timing...  Sound may be choppy.
Nov 16 00:59:49 WARNING[6973]: Unable to open IAX timing interface: No such file or directory
Nov 16 00:59:50 WARNING[6973]: Unable to get our IP address, Skinny disabled
Nov 16 00:59:50 WARNING[6973]: Read error on sound device: Resource temporarily unavailable
Nov 16 01:00:41 WARNING[6973]: Channel 'CAPI[contr1/MEINE_MSN]/0' sent into invalid extension 's' in context 'default', but no invalid handler
Nov 16 01:03:04 NOTICE[6973]: Removed default indication country 'us'

Es klingelte dauernd. Der gewünschte Abbruch der Verbindung nach einmaligem senden des Klingelzeichens erfolgte genausowenig wie der Rückruf.

Mein primäres Problem ist, dass ich nicht weiß, wo’s klemmt (ich habe wenig Routine). Ich hoffe, dass jemand einen Tipp für mich hat.
Ich vermute einen der Fehler in der extension.conf [capidialtone], wegen der Ausgabe:

Code:
Nov 16 00:47:03 WARNING[5609]: Channel 'CAPI[contr1/MEINE_MSN]/2' sent into invalid extension 's' in context 'default', but no invalid handler
 
Hallo,

ich hatte extern statt exten geschrieben (es war spät ;o) - jetzt habe ich aber den Artikel nochmal genau gelesen und bemerkt, dass ich chan_capi gar nicht installiert hatte.

Ich wollte das eben nachholen und habe mir chan_capi-0.3.5 heruntergeladen, aber make bringt das hervor:
Code:
 > make
gcc -pipe -Wall -Wmissing-prototypes -Wmissing-declarations -g  -I/usr/include -D_REENTRANT -D_GNU_SOURCE -O6   -DCAPI_ES -DCAPI_GAIN -DCAPI_SYNC -DUNSTABLE_CVS -Wno-missing-prototypes -Wno-missing-declarations -DCRYPTO   -c -o chan_capi.o chan_capi.c
make: gcc: Kommando nicht gefunden
make: *** [chan_capi.o] Fehler 127
Erstaunlicher Weise werde ich trotzdem schon von dem Rechner zurückgerufen - ich habe die /etc/asterisk/capi.conf bereits zuvor schon und musste nichts kopieren *komisch*. Ich höre aber kein Frei-Zeichen wählen zeigt keine Funktion.

Korrektur: Ich muss chan_capi-0.3.5 nicht installieren - ich habe in YaST2 asterisk-capi als installiert markiert gesehen und das Paket ist wohl der chan_capi nur mit anderer Bezeichnung. Auf dem Reiter Technische Daten kann man unter URL http://www.junghanns.net/asterisk lesen.

Bleibt aber immer noch das Problem, dass ich nicht wie gewünscht telefonieren kann. Manchmal wird nicht nach dem ersten Klingeln getrennt; Nie höre ich ein Freizeichen und das wählen einer Nummer nach dem Rückruf bleibt nach wie vor ohne Funktion.

Nach (während) eines Anrufes wird in der Shell ausgegeben:
Code:
  -- started pbx on channel (callgroup=0)!
    -- Executing Wait("CAPI[contr1/MEINE_MSN]/0", "1") in new stack
    -- Executing AGI("CAPI[contr1/MEINE_MSN]/0", "callback.agi") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/callback.agi
    -- AGI Script callback.agi completed, returning 0
    -- Executing Hangup("CAPI[contr1/MEINE_MSN]/0", "") in new stack
  == Spawn extension (capiin, MEINE_MSN, 3) exited non-zero on 'CAPI[contr1/MEINE_MSN]/0'
    -- CAPI Hangingup
    -- Attempting call on CAPI/MEINE_MSN:MEINE_GENION_FESTNETZ-NUMMERfor s@capidialtone:1 (Retry 1)
       > Channel CAPI[contr1/MEINE_MSN]/1 was answered.
    -- Executing Dial("CAPI[contr1/MEINE_MSN]/1", "CAPI/@MEINE_MSN:b") in new stack
    -- Called @MEINE_MSN:b
Dabei ist zu sagen, dass ich nicht wie in dem Artikel beschrieben getrennt wurde, sondern selber auflegte (sonst klingelt's ewig). Des Weiteren ist zu bemerken, dass ich, obwohl kein Frei-Zeichen zu hören war, einfach eine mir bekannte Rufnummer wählte. Ich hörte so ein leises "rattern" in der Leitung - als ob gewählt wurde. Eine Verbindung mit der Gegenstelle kommt jedoch nicht zustande.
Die hier beschreibene Vorgehensweise kann anschließend nicht wiederholt werden - dann reagiert Asterisk überhaupt nicht mehr.

Mal 'ne ganz doofe Frage: Kann die evtl. nicht ordnungsgemäße Funktion meiner Creative SoundBlaster Live! etwas mit dem Problem zu tun haben?

Ich weiß, dass mein Thema eigentlich nicht besonder viel mit VoIP zu tun hat, würde mich aber trotzdem über Eure Hilfe freuen - ich hab' aber 'nen Account bei sipgate, vielleicht hilft das ;o).
 
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.