Fritzcard PCMCIA an Asterisk, Anfängerfrage

Scotty2010

Neuer User
Mitglied seit
18 Jul 2007
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Hallo Asterisk-Gemeinde,

mein alter Laptop soll auf seine Tage noch einmal nützlich sein: Geplant ist ein Call-Forwarding via ISDN von eingehenden Calls einer bestimmten Nummer ins Festnetz.

In Sachen Asterisk bin ich blutiger Anfanger, lese mich aber gerade in die Materie ein. Bei folgendem Problem komme ich aber nicht weiter und bitte die wissende Gemeinde um Rat:

Die Asterisk-Maschine hängt am internen S0-Bus einer TK-Anlage und hat die MSN 47 zugeordnet bekommen. Eingehende Calls werden im syslog (/var/log/messages) angezeigt, also ISDN scheint prinzipiell zu funktionieren.

Asterisk meldet beim Start auch das Erkennen des Capi-Moduls (chan_capi ist also installiert).

Auszüge aus der Startsequenz:
Code:
 [chan_capi.so] => (Common ISDN API for Asterisk)
  == Parsing '/etc/asterisk/capi.conf': Found
    -- Registering at CAPI (blocksize=160)
  == This box has 1 capi controller(s).
    -- CAPI/contr1 supports DTMF
    -- CAPI/contr1 supports supplementary services
    -- CAPI/contr1 private options=0x01000001
    -- capi D ISDN1#00 (47:capi-in) contr=1 devs=2 EC=0,opt=0,tail=0
    -- capi B ISDN1#01 (47:capi-in) contr=1 devs=2 EC=0,opt=0,tail=0
    -- capi B ISDN1#02 (47:capi-in) contr=1 devs=2 EC=0,opt=0,tail=0
  == Registered channel type 'CAPI' (Common ISDN API Driver (0.7.1))
  == Registered application 'capiCommand'

Meine capi.conf:
Code:
;
; CAPI config
[general]
nationalprefix=0
internationalprefix=00
rxgain=0.8
txgain=0.8
language=de 

    
[ISDN1]          
echocancel=no
isdnmode=msn     
incomingmsn=47
msn=47
defaultcid=47    
controller=1     
group=1          
softdtmf=on      
relaxdtmf=on     
faxdetect=off    
accountcode=     
context=capi-in  
echocancelold=yes)
devices=2

Meine erste Übung war nun, zu erreichen, bei einem Anruf kurz eine autom. Ansage abzuspielen und wieder aufzulegen.

Dazu habe ich folgende extensions.conf gebaut:

Code:
[general]
static=yes
writeprotect=no
autofallthrough=yes
clearglobalvars=no
priorityjumping=no

[globals]
CONSOLE=Console/dsp				; Console interface for demo
TRUNKMSD=1					; MSD digits to strip (usually 1 or 0)

[default]
exten => 47,1,Answer()
exten => 47,2,Playback(option-not-implemented)
exten => 47,3,Hangup()

Bei einem Anruf zeigt mir die Console nun folgendes:

Code:
*CLI>   == ISDN1#02: Incoming call '43' -> '47'
  == ISDN1#02: CAPI Hangingup for PLCI=0x101 in state 4

Während des Calls habe ich einen "show channels" auf er Console abgesetzt und bekomme:

Code:
*CLI> show channels
Channel              Location             State   Application(Data)
CAPI/ISDN1/47-0      47@capi-in:1         Down    (None)
1 active channel
0 active calls
  == ISDN1#02: CAPI Hangingup for PLCI=0x101 in state 4

Was habe ich übersehen ? Bin für jeden Hinweis dankbar.

Thanks,
Scotty
 
Hi Scooty2010!

In der capi.conf hast Du für die 47 als Context capi-in angegeben. Dort landet Dein Anruf auch. Verarbeitet werden soll er aber lt. extensions.conf in [local]!
Das müsstest Du in der capi.conf ändern.
 
Hallo ilmtuelp0815,

danke für den Tip. Hat aber leider nicht geklappt. Verhält sich so, wie vorher.

Ich hab' noch nicht ganz verstanden, woran ich an der extensions.conf sehen kan, dass der Call in [local] eingeht. Später dann sollen ja Calls aus dem öffentlichen Netz dort eingehen. Ist dann [local] noch richtig ?

BTW, gibt es eigentlich irgendwo eine verständliche Beschreibung für eine capi.conf ?? Ich habe mich fast zu Tode gegoogelt, aber nichts brauchbares gefunden.

Vielen Dank und Gruß,
Scotty
 
Hi Scotty2010!

In der capi.conf stellst Du die Parameter für die Geräte ein, die Über den S0 bzw. CAPI angesprochen werden. Bei dir z. Zt. [ISDN1] mit der MSN 47.
Mit context= stellst Du die Verbindung zur extensions.conf her.
In der extensions.conf legt man fest, wie die vorhandenen Kanäle (CAPI/SIP/ZAP etc.) miteinander verknüpft werden sollen.
Wenn Du für die 47 den context=capi-in in context=default geändert hast (ein 'reload' auf der CLI nicht vergessen!), dann muss der Ruf in der extensions.conf im [default] landen. Das sieht man auch im CLI.
Wenn dann Rufe von ausserhalb über CAPI eingehen, dann wirst Du die entsprechende MSN in der CAPI eintragen und in der extensions.conf den entsprechenden Kontext wie diese Rufe behandelt werden sollen. Z.B. [capi-in] und darin exten=>'MSN',1,DIAL('Kanal'/....
Lege Dir doch bitte eine Signatur zu dmit man ggf. auf Deine Konfiguration eingehen kann.
 
Hi ilmtuelp0815,

danke, dass Du so viel Geduld mit mir hast. Du hast das ja super erklärt und das ist ja alles nachvollziehbar logisch (so, wie's in der IT auch sein soll :))

Irgendwie ist aber bei mir der Wurm drin. Habe die Config-Dateien mal so geändert, wie Du's vorgeschlagen hast. Inder CAPI.conf steht jetzt "context=default" und in der extension.conf ist genau dieser Kontext nun angegeben.

Ergebnis: Nada. Hat nichts gebracht. Ich hab danach mal Asterisk komplett runtergefahren und nochmal die 47 angerufen. Das gleiche Verhalten: Es klingelt zweimal, dann legt der Anschluß auf. Es scheint mir so, als dass Asterisk den Call gar nicht bekommt. Kann das sein ? Denn ich sehe ja auch nicht viel im CLI (siehe Post weiter oben).

Welche chan_capi muß ich denn verwenden ? Habe das fertige Paket aus dem Ubuntu-Repository genommen und nicht selbst kompiliert.

Hier nochmal der Output im CLI beim Anruf:


Code:
Sirius*CLI>
  == ISDN1#02: Incoming call '44' -> '47'
Sirius*CLI> show channels
Channel              Location             State   Application(Data)
CAPI/ISDN1/47-5      47@default:1         [COLOR="Red"]Down    (None)[/COLOR]
1 active channel
0 active calls
  == ISDN1#02: CAPI Hangingup for PLCI=0x101 in state 4
Sirius*CLI>

Das muß doch irgendwie zum Laufen zu bringen sein !!

Danke & Gruß,
Scotty

Nachtrag: Habe gerade die Debug-Funktion entdeckt (capi debug). Den Output möchte ich nicht verschweigen, bin mir aber noch unsicher in der Interpretation:

Code:
Sirius*CLI> capi debug
CAPI Debugging Enabled
CONNECT_IND ID=002 #0x0111 LEN=0035
  Controller/PLCI/NCCI            = 0x101
  CIPValue                        = 0x10
  CalledPartyNumber               = <80>47
  CallingPartyNumber              = A<80>44
  CalledPartySubaddress           = default
  CallingPartySubaddress          = default
  BC                              = <80 90 a3>
  LLC                             = default
  HLC                             = <91 81>
  AdditionalInfo                  = default

    -- CONNECT_IND (PLCI=0x101,DID=47,CID=44,CIP=0x10,CONTROLLER=0x1)
       > ISDN1#02: msn='47' DNID='47' MSN
  == ISDN1#02: setting format alaw - 0x8 (alaw)
  == ISDN1#02: Incoming call '44' -> '47'
INFO_IND ID=002 #0x0112 LEN=0018
  Controller/PLCI/NCCI            = 0x101
  InfoNumber                      = 0x70
  InfoElement                     = <80>47

INFO_RESP ID=002 #0x0112 LEN=0012
  Controller/PLCI/NCCI            = 0x101

    -- ISDN1#02: info element CALLED PARTY NUMBER
       > ISDN1#02: INFO_IND DID digits not used in this state.
INFO_IND ID=002 #0x0113 LEN=0016
  Controller/PLCI/NCCI            = 0x101
  InfoNumber                      = 0x18
  InfoElement                     = <8a>

INFO_RESP ID=002 #0x0113 LEN=0012
  Controller/PLCI/NCCI            = 0x101

    -- ISDN1#02: info element CHANNEL IDENTIFICATION 8a
INFO_IND ID=002 #0x0116 LEN=0018
  Controller/PLCI/NCCI            = 0x101
  InfoNumber                      = 0x70
  InfoElement                     = <80>47

INFO_RESP ID=002 #0x0116 LEN=0012
  Controller/PLCI/NCCI            = 0x101

    -- ISDN1#02: info element CALLED PARTY NUMBER
       > ISDN1#02: INFO_IND DID digits not used in this state.
INFO_IND ID=002 #0x0117 LEN=0016
  Controller/PLCI/NCCI            = 0x101
  InfoNumber                      = 0x18
  InfoElement                     = <8a>
Sirius*CLI>
INFO_RESP ID=002 #0x0117 LEN=0012
  Controller/PLCI/NCCI            = 0x101

    -- ISDN1#02: info element CHANNEL IDENTIFICATION 8a
DISCONNECT_IND ID=002 #0x0118 LEN=0014
  Controller/PLCI/NCCI            = 0x101
  Reason                          = 0x0

DISCONNECT_RESP ID=002 #0x0118 LEN=0012
  Controller/PLCI/NCCI            = 0x101

    -- ISDN1#02: DISCONNECT_IND on incoming without pbx, doing hangup.
       > CAPI/ISDN1/47-6: set channel task to 1
  == ISDN1#02: CAPI Hangingup for PLCI=0x101 in state 4
  == ISDN1#02: Interface cleanup PLCI=0x101
       > CAPI devicestate requested for ISDN1/47
Sirius*CLI>

Cheers,
Scott

DSL: Alice fun flat
Phone: IDSN (Alice, echtes ISDN)
PBX: Auerswald 2204 (1 interner, 1 externer S0-Bus)
O/S: Xubuntu Linux 6 (Feisty Fawn)
Hardware: Notebook PII 333 MHz, 128 MB RAM
ISDN-Hardware: Fritzcard PCMCIA
Asterisk: Release 1.2.23 (self-compiled) + chan_capi Paket
LAN: Fixed IPs, ca. 8 Workstations
Router: Broadcom-based WLAN via DD-WRT Firmware
 
Zuletzt bearbeitet:
Hi Scotty2010!
Der Ruf kommt erst mal wie erwartet in default an (s. Show channels) "Location 47@default:1".
Deine Meldungen an der CLi sind ansonsten eher spärlich. Ich starte Asterisk immer mit: asterisk -gcvvvvvv um mehr Meldungen zu bekommen.
Existiert die 'option-not-implemented'-Sounddatei wirklich und im richtigen Format?
Ansonsten überspringt er im Kontext [default] die 2 und macht mit 3 weiter. Das ist dann das Hangup und somit tut sich nichts.
 
Hallo ilmtuelp0815,

danke für die Info. Die Sounddateien existieren und sind im gsm-Format; weiß aber nicht, ob das für diese Zwecke OK ist. Ich starte Asterisk immer mit -vvvvvvc.

Allerdings habe ich stark den Verdacht, dass mein chan_capi nicht läuft. Ich hab' nämlich gestern in der modules.conf die Zeilen

Code:
load => chan_capi.so
...
[global]
chan_capi.so=yes

eingefügt (das hatte ich nämlich völlig übersehen) und bekomme seit dem diese Fehlermeldung beim Start von Asterisk:

Code:
Asterisk Dynamic Loader Starting:
  == Parsing '/etc/asterisk/modules.conf': Found
 [chan_capi.so]Aug  6 16:03:38 WARNING[9941]: loader.c:326 __load_resource: /usr/lib/asterisk/modules/chan_capi.so: undefined symbol: ast_pickup_ext
Aug  6 16:03:38 WARNING[9941]: loader.c:500 load_modules: Loading module chan_capi.so failed!

Ich kämpfe gerade damit, chan_capi_cm zu übersetzen, bekomme aber noch Fehlermeldungen wegen fehlender Referenzen (mir fehlen die Sourcen von den capiutils). Sobald ich das geklärt habe, versuche ich's nochmal.

Dann melde ich mich mit neuen Erkenntnissen.

Erstmal vielen Dank soweit und bis dann...

Scotty
 
Immer noch Probleme mit Fritzcard PCMCIA ISDN

Hallo,

habe nun erfolgreich chan_capi_cm compiliert und installiert; Asterisk startet einwandfrei. Nur leider hat sich an meiner Situation nichts geändert. Die Fehlermeldungen sind nach wie vor die gleichen.

Während eines eingehenden Calls kommt immer noch folgender Status zustande:

Code:
*CLI> show channels
Channel              Location             [COLOR="Red"]State[/COLOR]   Application(Data)
CAPI/ISDN1/47-1      47@default:1         [COLOR="Red"][B]Down[/B][/COLOR]    (None)
1 active channel
0 active calls

Warum ist der State meines Channels "down", hat da jemand eine Idee ? Hat vieleicht ein anderer Prozess diesen Kanal bereits exclusiv in Benutzung ?

Ich habe versuchsweise mal das Verzeichnis /etc/isdn umbenannt und neu gebootet. Aber das hat gar nichts bewirkt.

Meine restliche Config ist noch so, wie im letzten Post beschrieben.

Ich bin leider ratlos und würde mich sehr über sachdienliche Hinweise freuen.

Cheers,
Scotty
 
Problem gelöst !

Hallo,

das stundenlange Stöbern im Forum hat sich gelohnt.

Des Rätsels Lösung: In der Capi.conf muß die Zeile
Code:
immediate=yes
eingetragen sein. Dann nimmt Asterisk brav den Call entgegen.

So, nun muß ich rausbekommen, warum ich den Call nicht über den zweiten B-Kanal weiterleiten kann. Ich meine, da gab's Hinweise im Forum ....

Cheers,
Scotty
 
Scotty,

bleibt noch zu erwähnen, dass chan_capi mittlerweile in der Version 1.0.1 vorliegt... aber wenn es mit der 0.6.5 auch funktioniert, ist es ja auch in Ordnung.

ftp://ftp.melware.net/chan-capi/

Ralph
 
Hi Ralph,

vielen Dank für den Hinweis. Hatte ich auch inzwischen entdeckt. Ist schon runtergeladen, aber noch nicht compiliert. Lohnt sich der Upgrade ? Habe noch ein paar Probleme mit dem Rauswählen (kein Dialtone, Call klappt nicht), die sich damit vieleicht lösen lassen ?!?!

Greets,
Scotty
 
Hallo,

so, nachdem ich noch ein paar kleine Korrekturen vorgenommen habe, läuft mein kleines Forwarding-System einwandfrei und produktiv.

An dieser Stelle nochmals danke :) an ilmtuelp0815 und Ralph für die Hinweise. Mal sehen, was mir als nächstes so einfällt.

So long....
Scotty
 
Scotty,

ob sich die Probleme mit der aktuellen Version automatisch lösen, kann ich so nicht sagen... bei mir läuft es jedenfalls problemlos (allerdings mit Karten von Eicon / Dialogic). Ich würde einfach mal einen Versuch wagen.

Bitte achte jedoch auf kleinere Änderungen in der capi.conf im Asterisk-Verzeichnis, die Syntax hat sich im Lauf der Zeit etwas verändert. Ist aber in der Beispieldatei gut dokumentiert.

Ralph
 
Kostenlos!

Statistik des Forums

Themen
248,878
Beiträge
2,303,766
Mitglieder
378,546
Neuestes Mitglied
Looki_Luzi