Asterisk und fbrcapi: Nutzung des internen S0 der FBF?

wusel-09

Mitglied
Mitglied seit
29 Mai 2009
Beiträge
230
Punkte für Reaktionen
3
Punkte
18
Moin,

weder in der Forumssuche noch via Google wurde ich fündig, daher mal 'ne Verständnisfrage -- evtl. ist das, was ich möchte, ja auch nicht möglich.

Situation:

Asterisk auf Ubuntu Jaunty (Asterisk 1.4.21.2~dfsg-3ubuntu2) auf separatem Rechner ("ast-1") mit einer HFC-S-Karte, ISDN-Amt (T-ISDN) angeschlossen. fbrcapi installiert (modprobe fbrcapi addr=${PRIVATESNETZ}), verbunden mit unten spezifizierter FBF 7170.

Fritz!Box Fon WLAN 7170 an (später) externem Standort ("fbf7170"). AVM-Branding, OpenVPN installiert mit aktiven (UDP-) Tunnel auf obigen Asterisk. CAIP over TCP aktiviert, verbunden (über Tunnel) mit fbrcapi.ko auf Asterisk-Rechner. An externen S0 (CAPI-Controller1) steckt ISDN, am internen S0 (CAPI-Controller3) eine ISDN-Anlage (T-Sinus 45/Gigaset).

Skizze:

HTML:
<PRE>
  c1: NGN-ISDN
  |   c3: T-Sinus 45   Zap/g1: T-ISDN
  |   |                        |
[fbf7170]-(DSL)---IP---(DSL)-[ast-1]
        \.....OVPN-Tunnel..../</PRE>
Ziel:

  • Anrufe auf T-ISDN an ast-1 sollen an ISDN-Anlage hinter fbf7170 angenommen werden können.
  • Anrufe auf NGN-ISDN an fbf7170 sollen von ast-1 beantwortet/weitergeleitet werden können.
  • Anrufe von der ISDN-Anlage an fbf7170 sollen über NGN-ISDN (fbf7170) oder T-ISDN (ast-1) rausgehen können.
  • Anrufe von ast-1 sollen über NGN-ISDN (fbf7170) rausgehen können.
Status:

  • Weiterleitung T-ISDN an fbf7170 funktioniert problemlos per SIP (fbf7170 als SIP-Client an ast-1).
  • Signalisierung (und Annahme) von Anrufen auf NGN-ISDN funktinoniert über fbrcapi.co (Controller 1). Kommt per NGN-ISDN auf fbf7170 ein Anruf rein für eine auf ast-1 im Kontext definierte MSN, kann ast-1 diese beantworten (im Test: Goto(demo,s,1)).
  • Signalisierung von ausgehenden Anrufen vom internen S0 der fbf7170 werden über fbrcapi (Controller 3) an ast-3 signalisiert; sie gehen aber parallel über die Fritz-Wahlregeln raus. Verbindet ast-1 den CAPI-Anruf mit der Demo, höre ich am ISDN-Endgerät hinter fbf7170 nichts.
  • Rauswählen von ast-1 über CAPI & fbf7170 steht noch auf der ToTest-Liste.
Asterisk-Log (zum Test hängt derzeit alles am T-ISDN -- habe keine km-langen Arme ;); Kontext from-isdn ist die HFC-S in ast-1, from-capi-int ist Controller 3 der fbf7170 via fbrcapi.ko):
Code:
ast-1*CLI> 
  == ISDN-INT-GT#02: Incoming call '2219539' -> '2219541'
    -- ISDN-INT-GT#02: Updated channel name: CAPI/ISDN-INT-GT#02/2219541-11
    -- Executing [2219541@from-capi-int:1] Goto("CAPI/ISDN-INT-GT#02/2219541-11", "demo|s|1") in new stack
    -- Goto (demo,s,1)
    -- Executing [s@demo:1] Wait("CAPI/ISDN-INT-GT#02/2219541-11", "1") in new stack
    -- Extension '2219541' in context 'from-isdn' from '52412219539' does not exist.  Rejecting call on channel 0/2, span 1
  == ISDN-AMT-GT-DT#02: Incoming call '052412219539' -> '2219541'
[Jun  7 14:44:03] NOTICE[23618]: chan_capi.c:2575 start_pbx_on_match: ISDN-AMT-GT-DT#02: did not find exten for '2219541', ignoring call.
  == ISDN-AMT-GT-DT#02: CAPI Hangingup for PLCI=0xa01 in state 4
ast-1*CLI> 
==> /var/log/asterisk/messages <==
[Jun  7 14:44:03] NOTICE[23618] chan_capi.c: ISDN-AMT-GT-DT#02: did not find exten for '2219541', ignoring call.
    -- Executing [s@demo:2] Answer("CAPI/ISDN-INT-GT#02/2219541-11", "") in new stack
  == ISDN-INT-GT#02: Answering for 2219541
    -- Executing [s@demo:3] Set("CAPI/ISDN-INT-GT#02/2219541-11", "TIMEOUT(digit)=5") in new stack
    -- Digit timeout set to 5
    -- Executing [s@demo:4] Set("CAPI/ISDN-INT-GT#02/2219541-11", "TIMEOUT(response)=10") in new stack
    -- Response timeout set to 10
    -- Executing [s@demo:5] BackGround("CAPI/ISDN-INT-GT#02/2219541-11", "demo-congrats") in new stack
    -- <CAPI/ISDN-INT-GT#02/2219541-11> Playing 'demo-congrats' (language 'de')
  == Spawn extension (demo, s, 5) exited non-zero on 'CAPI/ISDN-INT-GT#02/2219541-11'
  == ISDN-INT-GT#02: CAPI Hangingup for PLCI=0x803 in state 2

Zum Vergleich ein Anruf via ISDN (initiiert vom gleichen S0, aber das sollte technisch ja egal sein; ist dank Flatrate halt billiger als SIP ;)):
Code:
    -- Extension '2219541' in context 'from-isdn' from '52412219541' does not exist.  Rejecting call on channel 0/2, span 1
  == ISDN-AMT-GT-DT#02: Incoming call '052412219541' -> '2219541'
    -- Executing [2219541@from-capi-amt:1] Goto("CAPI/ISDN-AMT-GT-DT#02/2219541-13", "demo|s|1") in new stack
    -- Goto (demo,s,1)
    -- Executing [s@demo:1] Wait("CAPI/ISDN-AMT-GT-DT#02/2219541-13", "1") in new stack
    -- Executing [s@demo:2] Answer("CAPI/ISDN-AMT-GT-DT#02/2219541-13", "") in new stack
  == ISDN-AMT-GT-DT#02: Answering for 2219541
    -- Executing [s@demo:3] Set("CAPI/ISDN-AMT-GT-DT#02/2219541-13", "TIMEOUT(digit)=5") in new stack
    -- Digit timeout set to 5
    -- Executing [s@demo:4] Set("CAPI/ISDN-AMT-GT-DT#02/2219541-13", "TIMEOUT(response)=10") in new stack
    -- Response timeout set to 10
    -- Executing [s@demo:5] BackGround("CAPI/ISDN-AMT-GT-DT#02/2219541-13", "demo-congrats") in new stack
    -- <CAPI/ISDN-AMT-GT-DT#02/2219541-13> Playing 'demo-congrats' (language 'de')
ast-1*CLI>     -- Executing [s@demo:6] BackGround("CAPI/ISDN-AMT-GT-DT#02/2219541-13", "demo-instruct") in new stack
    -- <CAPI/ISDN-AMT-GT-DT#02/2219541-13> Playing 'demo-instruct' (language 'de')
  == Spawn extension (demo, s, 6) exited non-zero on 'CAPI/ISDN-AMT-GT-DT#02/2219541-13'
  == ISDN-AMT-GT-DT#02: CAPI Hangingup for PLCI=0xf01 in state 2
       > ISDN-AMT-GT-DT#02: CAPI INFO 0x3490: Normal call clearing
ast-1*CLI>

Ich vermute, dadurch, daß die FBF den internen Anruf über die eigenen Wahlregeln rausschickt, kommt die CAPI nicht zum Zuge. Es könnte sich natürlich auch »nur« um ein simples Codec-Problem handeln, nur fehlt mir da der Geistesblitz, wie ich das debuggen/beheben soll?

Eigentlich müßte ich in der FBF definieren, daß mit einem Vorwahlcode über CAPI gewählt werden soll. Natürlich könnte ich auch über SIP gehen, bin mir da aber etwas unsicher, wie ich sicherstelle, daß die SIP-Kommunikation ausschließlich über den OpenVPN-Tunnel zwischen der fbf7170 und ast-1 läuft -- CAPI-over-TCP ist da so angenehm unkompliziert.

Hat jemand soetwas (internen S0 einer Fritz!Box Fon per CAPI-over-TCP an einen Asterisk angebunden und für in- und outbound verwendet) schon mal gemacht?

Und, zu guter Letzt: Wie binde ich mehrere Fritz!Boxen per fbrcapi.ko ein? Vorgesehen scheint nur genau 1 IP (einer entfernten FBF) zu sein?
 
Zuletzt bearbeitet:
hfc unter jaunty

Hallo wusel,

kannst du mir eine tip geben, wie du die HFC unter jaunty zum laufen bekommen hast?
Ich krieg's irgendwie nicht gebacken.
Danke!
Gruß
segelfreak
 
kannst du mir eine tip geben, wie du die HFC unter jaunty zum laufen bekommen hast?
Dazu habe ich meine Notizen (nicht nur für mich ;)) niedergeschrieben. Ich bin aber nicht wirklich glücklich damit, es traten »komische Effekte« auf, so Fehlermeldungen, daß alle Leitungen besetzt wären usw. -- mittlerweile steckt die HFC zwar noch im System drin, ist aber vom (T-)ISDN getrennt.

Stattdessen -- ich brauchte ja eigentlich nur irgendein von Asterisk ansprechbare Gateway ins ISDN -- habe ich mir einen Speedport W701V (gefritzt auf 7170 W701V) an die Wand genagelt, Remote CAPI aktiviert, ISDN extern mit meinem T-ISDN verbunden und Asterisk greift nun über's LAN auf die Fritz-CAPI zu.
Hierrüber greife ich eingehende Rufe auf eine bestimmte Nummer ab und signalisiere sie per SIP an eine (per OpenVPN angebundene) ferne 7170, wo dann das (ISDN- sowie Analog-) Telefon klingelt. Und die Sprachqualität am entfernten Ende ist, sagen wir, hinreichend; selbst über HSDPA (als DSL-Ersatz). Die Latenz liegt bei knapp 100 ms (ca. 150 ms bei HSDPA), grade noch zu verschmerzen.

HTH.
 
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.