chan_capi nimmt anruf nicht entgegen ?

simonlukas

Neuer User
Mitglied seit
29 Apr 2006
Beiträge
33
Punkte für Reaktionen
0
Punkte
6
Hallo,
ich bin dabei asterisk über freepbx mit einer avm fritz pci einzurichten. die einkommenden anrufe sollen sollen an eine sip soft phone weitergeleitet werden.

Nun wenn ich auf dem ISDN-Anschluss anrufe, sagt die * CLI:
"
--CONNECT_IND (PLCI=0x101,DID=495123456789,CID=05987654321,CIP=0x10,CONTROLLER=0x1)
"

und nach 4 sekunden:

"
== ISDN1#02: Interface cleanup PLCI=0x101
"

Ich habe irgendwo mal etwas davon gelesen, das dat chan_capi die Anruf nicht entgegen nimmt (wegen dem 4 sec synthom komme ich darauf).
warum nicht?

wo löst man das am einfachsten ?
 
Also ohne genauere Angaben wie die Konfiguration bei die aussieht, kann man nichts genaues sagen. Es könnte an mehrere Dingen liegen:
- es gibt gar keine Regel in der extensions.conf für diesen Anruf
- falsche Konfiguration des Ports in capi.conf
- ...

Armin
 
Achso natürlich, wie dumm von mir:
Hardware Aufbau sieht so aus:

o2 ufo (So-Bus) -> AVM Fritz ISDN -> chan_capi -> asterisk -> sip extension -> ekiga softphone (auf nem anderen rechner als *)
.

hier die capi.conf aus /etc/asterisk/capi.conf
Code:
;
; CAPI config
;
;

; general section

[general]
nationalprefix=0
internationalprefix=00
rxgain=1.0       ;linear receive gain (1.0 = no change)
txgain=1.0       ;linear transmit gain (1.0 = no change)
language=de      ;set default language
;ulaw=yes        ;set this, if you live in u-law world instead of a-law

;jb.....         ;with Asterisk 1.4 you can configure jitterbuffer,
                 ;see Asterisk documentation for all jb* setting available.
;mohinterpret=default ;Asterisk 1.4: default music on hold class when placed on hold.


; interface sections ...

[ISDN1]          ;this example interface gets name 'ISDN1' and may be any
                 ;name not starting with 'g' or 'contr'.
                 ;Use one interface section for each isdn port!
;ntmode=yes
;ntmode=no         ;if isdn card operates in nt mode, set this to yes
isdnmode=msn     ;'MSN' (point-to-multipoint) or 'DID' (direct inward dial)
                 ;when using NT-mode, 'DID' should be set in any case
incomingmsn=495123456789    ;allow incoming calls to this list of MSNs/DIDs, * = any
;defaultcid=123  ;set a default caller id to that interface for dial-out,
                 ;this caller id will be used when dial option 'd' is set.
;controller=0    ;ISDN4BSD default
;controller=7    ;ISDN4BSD USB default
controller=1     ;capi controller number of this interface/port
group=1          ;dialout group
;prefix=0        ;set a prefix to calling number on incoming calls
softdtmf=on      ;enable/disable software dtmf detection, recommended for AVM cards
relaxdtmf=on     ;in addition to softdtmf, you can use relaxed dtmf detection
faxdetect=off    ;enable faxdetection and redirection to EXTEN 'fax' for incoming and/or
                 ;outgoing calls. (default='off', possible values: 'incoming','outgoing','both')
accountcode=     ;PBX accountcode to use in CDRs
;amaflags=default;AMA flags for CDR ('default', 'omit', 'billing', or 'documentation')
context=capi-in  ;context for incoming calls
;holdtype=hold   ;when the PBX puts the call on hold, ISDN HOLD will be used. If
                 ;set to 'local' (default value), no hold is done and the PBX may
                 ;play MOH.
;immediate=yes   ;DID: immediate start of pbx with extension 's' if no digits were
                 ;     received on incoming call (no destination number yet)
                 ;MSN: start pbx on CONNECT_IND and don't wait for SETUP/SENDING-COMPLETE.
                 ;     info like REDIRECTINGNUMBER may be lost, but this is necessary for
                 ;     drivers/pbx/telco which does not send SETUP or SENDING-COMPLETE.
;echosquelch=1   ;_VERY_PRIMITIVE_ echo suppression
;echocancel=yes  ;EICON DIVA SERVER (CAPI) echo cancelation (yes=g165)
                 ;(possible values: 'no', 'yes', 'force', 'g164', 'g165') 
echocancelold=yes;use facility selector 6 instead of correct 8 (necessary for older eicon drivers)
;echotail=64     ;echo cancel tail setting (default=0 for maximum)
;echocancelnlp=1 ;activate non-linear-processing; this improves echo cancel ratio, but might
                 ;incorporate variable gain in the signal path.
;bridge=yes      ;native bridging (CAPI line interconnect) if available
;callgroup=1     ;PBX call group
;pickupgroup=1   ;PBX pickup group (which call groups are we allowed to pickup)
;language=de     ;set language for this device (overwrites default language)
;disallow=all    ;RTP codec selection (valid with Eicon DIVA Server only)
;allow=all       ;RTP codec selection (valid with Eicon DIVA Server only)
devices=2        ;number of concurrent calls (b-channels) on this controller
                 ;(2 makes sense for single BRI, 30/23 for PRI/T1)
;jb.....         ;with Asterisk 1.4 you can configure jitterbuffer,
                 ;see Asterisk documentation for all jb* setting available.
;mohinterpret=default ;Asterisk 1.4: default music on hold class when placed on hold.
;qsig=1           ;enable use of Q.SIG extensions. ECMA Variant
;qsig_prnum=1234  ;enable inbound bridging - this should be an QSIG-network-wide unique number

Die msn habe ich hier im Post durch eine fiktive ersetzt.
Das ist neben der modules.conf die einzige in welcher ich etwas per hand geändert habe. Den Rest mache ich über freepbx.

Dort habe ich einen costum thrunk erstellt. Mit Dial Rules: "X" und Custom Dial String: "CAPI/ISDN1/$OUTNUM$"

Dann noch eine Inbound Route mit einer description und einer destination gesetzt, die sip extension. DID und CID habe ich erstmal freigelassen, da erstmal alles durchgehen soll. (Leave this blank to macht with no / any...).

Dann noch eine Outbound Route mit einem namen Dial Patterns:"X" und als Trunk den "CAPI/ISDN1/$OUTNUM$" gewählt.

Das rauswählen geht irgendwo auch ins leere...
 
freebpx kennt den context "capi-in" nicht in der capi.conf

versuch es mal mit "from-pstn"
 
Habe ich gemacht, ändert nichts am Ergebnis.

Hier vielleicht noch nen bischen info:

* CLI capi info gibt:

Common ISDN API Driver (1.0.2) www.chan-capi.org
Contr1: 2 B channels total, 2 B channels free.


* CLI capi show channels gibt:

CAPI B-channel information:
Line-Name NTmode state i/o bproto isdnstate ton number
----------------------------------------------------------------
ISDN1#02 no ----- - trans 0x00 ''->'' B3q=0 B3count=0
ISDN1#01 no ----- - trans 0x00 ''->'' B3q=0 B3count=0
 
diesen ufo, wo die fritz-karte dran ist, ist das ein interner oder externer s0-bus
 
Ich zitiere aus einem Handbuch von o2 online :

Code:
Außerdem bietet der ISDN-Telefonanschluss des O² DSL Surf & Phone-Routers
zwar zahlreiche ISDN-Komfortmerkmale, aber nicht alle Funktionen eines ISDNS0-
Bus. Genaue Informationen zu den ISDN-Leistungsmerkmalen finden Sie im
Benutzerhandbuch zu O² DSL.
Ihre Rufnummern werden an den ISDN-Anschluss als MSNs (Multiple Subscriber
Numbers, Mehrfachrufnummern) weitergeleitet und können im angeschlossenen
ISDN-Gerät zur Konfiguration verwendet werden.
Sie können am ISDN-Anschluss eine ISDN-Telefonanlage betreiben, die über
einen Mehrgeräteanschluss verfügt. ISDN-Telefonanlagen mit Anlagenanschluss
werden nicht unterstützt.

heißt das, dass ich das mit der Fritz dann voll vergessen kann, auch wenn ein ISDN-Telefon an dem Anschluss funktioniert ?

es handelt sich um diese zyxel ufo, was es standard von o2 dabei gab. mit wlan, 2 rj-11 analog, rj-45 isdn...
 
wenn msn durchgeschleift werden solltest du es mal nur mit der MSN als ankommende rufnummer versuchen.. d.h. Telefonnummer ohne Vorwahl

in der capi.conf
 
Ich habe in der Capi.conf jetzt nur die 6-stellige msn eingetragen.

dann gibt * dieses aus:
Code:
 -- CONNECT_IND (PLCI=0x101,DID=4952********,CID=052********,CIP=0x10,CONTROLLER=0x1)
       > CAPI: Command=CONNECT_IND,0x8482: no interface for PLCI=0x101, MSGNUM=0x18e!
       > CAPI: Command=INFO_IND,0x8492: no interface for PLCI=0x101, MSGNUM=0x18f!
       > CAPI: Command=INFO_IND,0x8492: no interface for PLCI=0x101, MSGNUM=0x190!
       > CAPI: Command=DISCONNECT_IND,0x848c: no interface for PLCI=0x101, MSGNUM=0x191!

habe mal sternchen reingemacht. CID ist die nummer von der ich anrufe. DID die nummer, die ich gewählt habe.
 
und auch die inboute-route geändert
 
Ja, habe ich. ich habe in der inbound route die DID auf die msn gesetzt. Ich habe es auch mal mit der 495... probiert. CID habe ich freigelassen. hilft auch nicht. es besteht die letzte Fehlermeldung.

Ich habe das Gefühl da bahnt sich langsam aber sicher ein Erfolg an.
 
abeite mal mit pattern ... ich glaube "_." nimmt erstmal alles an .. oder so änlich .. schau dir mal diese pattern-regeln an

oder auc mal probieren:
"CAPI/ISDN1/$OUTNUM$"
in "CAPI/contr1/$OUTNUM$"
 
Also ich hab es im trunk mit "CAPI/ISDN1/$OUTNUM$"
und "CAPI/contr1/$OUTNUM$" probiert, keine änderung.

Dann habe ich in der Inbound Route anstatt der DID mit "." als wildecard probiert, auch kein erfolg.

hilft es vielleicht noch etwas aus der log datei zu extrahieren ?
 
sollte aber "_." sein ..
also "unterstrich und dann der punkt"
 
nimmt sich nix.
 
also fassen wir mal zusammen:
1. isdn karte läuft
2. chan_cpai auch und erkennt wer anruft und wer angerufen wird

dann kann es eigenntlich nur an der inbount-route leigen und welche nebenstelle gerufen werden soll ..

da können eigentlich nur die ausführlichen logs auf der cli helfen
 
Na das ist doch schonmal sehr positiv! Fehlt ja nur noch der Hut auf der Puppe.

Also du meinst was auf der console so raus kommt ?
Ich habe dafür "set verbose 9" gemacht.
und dann wird dieser Salat ausgespuckt.
Code:
CONNECT_IND ID=002 #0x020e LEN=0054
  Controller/PLCI/NCCI            = 0x101
  CIPValue                        = 0x10
  CalledPartyNumber               = <80>4952*ziel*
  CallingPartyNumber              = <00 80>052*quelle*
  CalledPartySubaddress           = default
  CallingPartySubaddress          = default
  BC                              = <80 90 a3>
  LLC                             = default
  HLC                             = <91 81>
  AdditionalInfo                  = default

    -- CONNECT_IND (PLCI=0x101,DID=4952*ziel*,CID=052*quelle*,CIP=0x10,CONTROLLER=0x1)
       > ISDN1#02: msn='meineMSN' DNID='4952*ziel*' MSN
       > ISDN1#01: msn='meineMSN' DNID='4952*ziel*' MSN
CONNECT_RESP ID=002 #0x020e LEN=0019
  Controller/PLCI/NCCI            = 0x101
  Reject                          = 0x1
  BProtocol                       = default
  ConnectedNumber                 = default
  ConnectedSubaddress             = default
  LLC                             = default
  AdditionalInfo                  = default

       > CAPI: Command=CONNECT_IND,0x8482: no interface for PLCI=0x101, MSGNUM=0x20e!
INFO_IND ID=002 #0x020f LEN=0028
  Controller/PLCI/NCCI            = 0x101
  InfoNumber                      = 0x70
  InfoElement                     = <80>4952*ziel*

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

CAPI: INFO_IND no interface for PLCI=0x101
       > CAPI: Command=INFO_IND,0x8492: no interface for PLCI=0x101, MSGNUM=0x20f!
INFO_IND ID=002 #0x0210 LEN=0016
  Controller/PLCI/NCCI            = 0x101
  InfoNumber                      = 0x18
  InfoElement                     = <89>

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

CAPI: INFO_IND no interface for PLCI=0x101
       > CAPI: Command=INFO_IND,0x8492: no interface for PLCI=0x101, MSGNUM=0x210!
DISCONNECT_IND ID=002 #0x0211 LEN=0014
  Controller/PLCI/NCCI            = 0x101
  Reason                          = 0x0

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

CAPI: DISCONNECT_IND no interface for PLCI=0x101
       > CAPI: Command=DISCONNECT_IND,0x848c: no interface for PLCI=0x101, MSGNUM=0x211!
CONNECT_IND ID=002 #0x0212 LEN=0054
  Controller/PLCI/NCCI            = 0x101
  CIPValue                        = 0x10
  CalledPartyNumber               = <80>4952*ziel*
  CallingPartyNumber              = <00 80>052*quelle*
  CalledPartySubaddress           = default
  CallingPartySubaddress          = default
  BC                              = <80 90 a3>
  LLC                             = default
  HLC                             = <91 81>
  AdditionalInfo                  = default

    -- CONNECT_IND (PLCI=0x101,DID=4952*ziel*,CID=052*quelle*,CIP=0x10,CONTROLLER=0x1)
       > ISDN1#02: msn='meineMSN' DNID='4952*ziel*' MSN
       > ISDN1#01: msn='meineMSN' DNID='4952*ziel*' MSN
CONNECT_RESP ID=002 #0x0212 LEN=0019
  Controller/PLCI/NCCI            = 0x101
  Reject                          = 0x1
  BProtocol                       = default
  ConnectedNumber                 = default
  ConnectedSubaddress             = default
  LLC                             = default
  AdditionalInfo                  = default

       > CAPI: Command=CONNECT_IND,0x8482: no interface for PLCI=0x101, MSGNUM=0x212!
INFO_IND ID=002 #0x0213 LEN=0028
  Controller/PLCI/NCCI            = 0x101
  InfoNumber                      = 0x70
  InfoElement                     = <80>4952*ziel*

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

CAPI: INFO_IND no interface for PLCI=0x101
       > CAPI: Command=INFO_IND,0x8492: no interface for PLCI=0x101, MSGNUM=0x213!
INFO_IND ID=002 #0x0214 LEN=0016
  Controller/PLCI/NCCI            = 0x101
  InfoNumber                      = 0x18
  InfoElement                     = <89>

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

CAPI: INFO_IND no interface for PLCI=0x101
       > CAPI: Command=INFO_IND,0x8492: no interface for PLCI=0x101, MSGNUM=0x214!
DISCONNECT_IND ID=002 #0x0215 LEN=0014
  Controller/PLCI/NCCI            = 0x101
  Reason                          = 0x0

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

CAPI: DISCONNECT_IND no interface for PLCI=0x101
 
Ich hab' beim Titel des Thema's schon gedacht, das gehört per Sticky gaaaanz oben rein:

FAQ:
Eingehende ISDN Anrufe müssen per Ringing der CAPI zurück gemeldet werden, wenn Asterisk dafür verantwortlich ist. FreePBX macht das im Dialplan vermutlich nicht.

Allerdings ist es bei dir sicher nicht nur das gewesen. Ich weiß nicht, wie es bei FreePBX mit der eingehenden Rufbehandlung gemacht wird, allerdings wird deine MSN evtl. ohne weitere Einstellungen auf den internen Rufnummernplan gemapt, d.h. du musst eine Übersetzung der MSN auf einen internen Teilnehmer/Gruppe machen.

Mario
 
Code:
d.h. du musst eine Übersetzung der MSN auf einen internen Teilnehmer/Gruppe machen.

Wie mache ich das denn? Oder was meinst du damit?

FreePBX hat bei der Inbound Route ein Option: "Signal RINGING" zum an haken. Das habe ich mal gemacht. Hat aber wohl noch keine Wirkung.
 
.. das es ja nicht ganz so klar ist was bei asterisk ankommt, solltest du ja auch die pattern auf "_." setzten .. damit nimmt asterisk alles an was irgendwie ankommt!

und bei den log-daten muss doch noch mehr kommen als das capi-zeug oder hast nur für capi verbose erhöht?
 
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.