"fbrcapi" - Das neue CAPI Kernelmodul für Linux

bodega

Aktives Mitglied
Mitglied seit
6 Jun 2006
Beiträge
1,980
Punkte für Reaktionen
7
Punkte
0
Wie vielleicht einige von euch wissen, beschäftige ich mich gerne schonmal mit dem Thema CAPI.
Jetzt gab es vor ungefähr einem Jahr die Idee eines Forenbenutzers, den capiotcp-Server direkt anzusprechen (siehe hier).

Gesagt getan. Es wurde die libcapi20-3 so modifiziert, dass die Daten nun nicht mehr an das Device geschickt, sondern direkt per TCP übertragen werden.

Leider hat diese Methode nur einige entscheidene Nachteile:
  1. Es kann nicht die Standard libcapi20-3 aus den Distributionen verwendet werden
  2. Es kann keine weitere ISDN-Karte "dazugehangen" werden (wie auch CMTP)
  3. Der Datenaustausch findet synchron statt
  4. Es ist ein Hack. CAPI-Controller sollten normalerweise anders implementiert werden. Das wissen natürlich auch die Maintainer von ISDN ;)
An dieser "Notlösung" hatte sich nun bisher nicht viel geändert, sodass ich mich etwas mit Kernelprogrammierung auseinandergesetzt habe.

Rausgekommen ist dabei "fbrcapi.ko", ein Kernel-Modul, welches die Remote-CAPI Controller einfach einhängt. Somit können auch weitere CAPI-Treiber eingebunden werden, ohne dies von der libcapi abhängig zu machen.

Have phun'

http://fbrcapi.v3v.de
 
:rock: :nemma: So, und jetzt noch in den offiziellen Kernel .... ;-) ich komme langsam aber stetig voran mit der USB Remote Geschcithe, vielleicht gibts dann da ja auch bald was für Linux :)

Bzgl. der Konfiguration: Vielleicht macht es ja sinn, wenn du noch eine "Konfigurationsschnittstelle" einbaust - spricht: In /proc ein Pseudo-File an dass man mit echo einen Wert setzen kann. Beispiel: echo "addr: 192.168.100.254" > /etc/capi/fbrcapi

Edit: Du solltest nochmal DEUTLICH hervorheben, dass Hostnames als Parameter momentan nicht gehen, weil du die nicht auflöst - sonst gibts Spezis, die es trotzdem probieren. Schreibst ja nur, dass du bei addr die IP erwartest, nicht aber, dass der Hostname momentan nicht funktioniert.
 
Zuletzt bearbeitet:
Hallo Prodigy,

über die Konfigurationsschnittstelle per Proc oder Device habe ich bereits nachgedacht. Das Problem ist momentan noch die Initialisieren, da dafür eine Verbindung bestehen muss. Wenn das gelöst ist, sollte das mit der Einstellung funktionieren.

Die Sache mit dem USB-Remote-Device habe ich noch nicht aus den Augen verloren und werde darauf zurückkommen. Brauch nur etwas mehr Zeit :)

Zu der Namensauflösung schreibe ich später noch was. Danke für den Hinweis. Manche Sachen verbleiben doch oftmals als Kommentar im Programmcode ;-)
 
Zuletzt bearbeitet:
Die Sache mit dem USB-Remote-Device habe ich noch nicht aus den Augen verloren und werde darauf zurückkommen. Brauch nur etwas mehr Zeit :)
Ich hab mittlerweile die Kommunikation soweit auseinander klabüstert und bin dabei, in VB.NET eine Fritz!Box Bibliothek zu schreiben die man dann mit Mono oder .NET nutzen können soll. Wenn das soweit klappt, wäre der "Kommunikationskanal" fertig ;-)
Momentan kämpfe ich nur etwas mit VB.NET, weil das was ich machen möchte, nicht so ganz möglich ist, werde aber in absehbarer Zeit voran kommen.
 
fbrcapi fax

Hallo,
habe fbrcapi auf debian lenny mit normaler libcapi20-3 aus den Quellen installiert. Läuft einwandfrei. Capiinfo - voller Zugriff auf die Fritzbox. Capisuite installiert. Fehlermeldung: kein G3. Ist auch klar. Wie kann ich dann faxen? ffgtk möchte seine eigene capi haben. Es hat den Nachteil: instabil, muß meine Firewall komplett abschalten zwecks upnp. Wie siehts mit hylafax aus? Möchte kein asterix installieren. Aufwand zu groß.
 
Hi,

das könnte mit cups und gs funktionieren. Also drucken per Cups, mit Ghostscript umwandeln und das Fax mit capifax verschicken. Solch ein Skript gab es in dem Forum auch irgendwo, finde es jedoch nicht wieder.
 
fbrcapi v0.2

Es gibt nun die v0.2. Eigentlich nur nötig, wenn der Socket Buffer nicht-linear befüllt wird. Die Controller können nun zusätzlich angegeben werden (modprobe fbrcapi controllers=1,5)
  • fix: non-linear skb
  • check and give error whenever "addr=..." is not an IP
  • added module parameter "controllers=x,y,..." to enable/disable remote controllers
  • added "make [install|uninstall]"
  • added init script
 
fbrcapi 0-2 debian lenny kernel update

Hallo,

seit ein paar Tagen gibts ein Kernelupdate 2.6.26-2-686 für debian lenny. Nach modprobe fbrcapi kommt die Fehlermeldung Ein/Ausgabefehler. Beim maken kommt keine Fehlermeldung.
 
Du hast Post. Wie gesagt, die 'dmsg' Ausgabe wäre wichtig.
 
fbrcapi 0.2 debian lenny kernelupdate

Sorry, ich muß mich entschuldigen. Hatte 2 Lenny-PCs an 2 verschiedenen Fritzboxen und
ungefähr zeitgleich das Kernelupdate. Wahrscheinlich durch Stromausfall war remotecapi
nicht geladen. Jetzt klappts wunderbar. Habe libcapi20-3 von Debian und libcapifax von tabos.org. Super!

Grüße
 
Hi,

danke für die Rückmeldung.

Die libcapifax von tabos enthält nur unwesentliche Änderungen, welche (anscheinend) nur für ffgtk gebraucht werden. Eine neue libcapifax ist bereits in Arbeit und wird etwas mehr können, als die Bisherige. Ebenso wird es ein Fax-Steuerelement für Mono und .NET geben.
 
@bodega: Ich werde in absehbarer Zeit eine neue Version meine Mono/.NET Lib veröffentlichen, mit der Mann die diversen Fritz!Box Informationen auslesen kann (ans Schreiben traue ich mich, wenn das Lesen 100%ig klappt) - meinst du, es wäre sinnvoll, hier gewisse Synergien zu schaffen/nutzen ? ;-)
Wenn du magst, schick mir mal das ICQ Nummer (irgendwie ist die mir von damals verloren gegangen) - dann können wir ja mal schaun.
 
Hi prodigy,

das können wir machen. Beim Entwickeln des Controls kam mir die gleiche Idee.
Wir bräuchten ein SVN, aber das wäre kein Problem.

Kannst du mir kurz mailen, so dass ich deine eMail habe?
 
Das Forum erlaubt mir nicht, dir zu Mailen. Mail du mich an ;-)

Bzgl. SVN - wollen wir vielleicht bei Sourceforge ein Projekt eröffnen?
 
Hallo an die Entwickler der fbrcapi,

ich habe mal eine Frage zu der Software. Undzwar benutze ich die Remote-Capi mit * 1.4.17 und ner FBF5140. Läuft soweit ganz gut, nur läuft mir der RAM des Asterisk-Rechners mit Konstant 100kb pro Gesprächssekunde voll. Wenn ich nicht telefoniere, bleibt der Speicherverbrauch etwa konstant. Betriebssystem ist RHEL 5.3 incl. aller Updates. Ist zwar super, dass man eine gewisse Zeit telefonieren kann. Dabei steigt der Wert des SLAB-Pools unter /proc/meminfo konstant mit 100kb/s an (wird nie weniger, der Wert) und irgendwann crashed der Rechner, weil er keinen RAM mehr hat.

An was das wohl liegen kann?

Grüße,

Euer Hahni
 
hallo bodega,

ich bin grade ueber fbrcapi gestolpert. ich bin ziemlich begeistert. allerdings schmiert mir hier die kiste, auf der ich das grade teste reproduzierbar ab, wenn ich capidrv geladen habe oder nachtraeglich lade im zusammenhang mit fbrcapi.

die fb rebootet dabei auch.

ist das ein bekanntes problem?

viele gruesse

martin
 
Log dich doch mal via Telnet ein und probiere es dann zu reproduzieren. Eventuell kommen Ausgaben die verwertbar sind.
 
Hi Leute,

der fbrcapi-Treiber ist der Hammer, Kompliment.
Ich würde über diesen Weg gerne Faxe mittels Hylafax versenden, doch leider klappt das noch nicht so recht.

Zuerst eine grundlegende Sache:
capiinfo liefert mir bei einem Controller etwas merkwürdiges:
Code:
Number of Controllers : 5
Controller 1:            
Manufacturer: AVM Berlin 
CAPI Version: 2.0        
Manufacturer Version: 0.0-03  (0.3)
Serial Number: 0004711             
BChannels: 2                       
Global Options: 0x00000039         
   internal controller supported   
   DTMF supported                  
   Supplementary Services supported
   channel allocation supported (leased lines)
B1 protocols support: 0x80003c0b              
   64 kbit/s with HDLC framing                
   64 kbit/s bit-transparent operation        
   V.110 synconous operation with HDLC framing
B2 protocols support: 0x00000003              
   ISO 7776 (X.75 SLP)                        
   Transparent                                
B3 protocols support: 0x00000001              
   Transparent                                

  0100
  0200
  39000000
  0b3c0080
  03000000
  01000000
  00000000 00000000 00000000 00000000 00000000 00000000
  01000001 00020000 00000000 00000000 00000000         

Supplementary services support: 0x000003ff
   Hold / Retrieve                        
   Terminal Portability                   
   ECT                                    
   3PTY                                   
   Call Forwarding                        
   Call Deflection                        
   MCID                                   
   CCBS                                   

Controller 2:
Manufacturer: AVM Berlin
CAPI Version: 2.0       
Manufacturer Version: 0.0-03  (0.3)
Serial Number: 0004711             
BChannels: 2                       
Global Options: 0x00000039         
   internal controller supported   
   DTMF supported                  
   Supplementary Services supported
   channel allocation supported (leased lines)
B1 protocols support: 0x80003c0b              
   64 kbit/s with HDLC framing                
   64 kbit/s bit-transparent operation        
   V.110 synconous operation with HDLC framing
B2 protocols support: 0x00000003              
   ISO 7776 (X.75 SLP)                        
   Transparent                                
B3 protocols support: 0x00000001              
   Transparent                                

  0100
  0200
  39000000
  0b3c0080
  03000000
  01000000
  00000000 00000000 00000000 00000000 00000000 00000000
  01000001 00020000 00000000 00000000 00000000         

Supplementary services support: 0x000003ff
   Hold / Retrieve                        
   Terminal Portability                   
   ECT                                    
   3PTY                                   
   Call Forwarding                        
   Call Deflection                        
   MCID                                   
   CCBS                                   

Controller 3:
Manufacturer: AVM Berlin
CAPI Version: 2.0       
Manufacturer Version: 0.0-03  (0.3)
Serial Number: 0004711             
BChannels: 2                       
Global Options: 0x00000039         
   internal controller supported   
   DTMF supported                  
   Supplementary Services supported
   channel allocation supported (leased lines)
B1 protocols support: 0x80003c0b              
   64 kbit/s with HDLC framing                
   64 kbit/s bit-transparent operation        
   V.110 synconous operation with HDLC framing
B2 protocols support: 0x00000003              
   ISO 7776 (X.75 SLP)                        
   Transparent                                
B3 protocols support: 0x00000001              
   Transparent                                

  0100
  0200
  39000000
  0b3c0080
  03000000
  01000000
  00000000 00000000 00000000 00000000 00000000 00000000
  01000000 20020000 00000000 00000000 00000000         

Supplementary services support: 0x000003ff
   Hold / Retrieve                        
   Terminal Portability                   
   ECT                                    
   3PTY                                   
   Call Forwarding                        
   Call Deflection                        
   MCID                                   
   CCBS                                   

Controller 4:
Manufacturer: AVM Berlin
CAPI Version: 2.0       
Manufacturer Version: 0.0-03  (0.3)
Serial Number: 0004711             
BChannels: 1                       
Global Options: 0x00000039         
   internal controller supported   
   DTMF supported                  
   Supplementary Services supported
   channel allocation supported (leased lines)
B1 protocols support: 0x80003c0b              
   64 kbit/s with HDLC framing                
   64 kbit/s bit-transparent operation        
   V.110 synconous operation with HDLC framing
B2 protocols support: 0x00000003              
   ISO 7776 (X.75 SLP)                        
   Transparent                                
B3 protocols support: 0x00000001              
   Transparent                                

  0100
  0100
  39000000
  0b3c0080
  03000000
  01000000
  00000000 00000000 00000000 00000000 00000000 00000000
  01000000 40020000 00000000 00000000 00000000         

Supplementary services support: 0x000003ff
   Hold / Retrieve                        
   Terminal Portability                   
   ECT
   3PTY
   Call Forwarding
   Call Deflection
   MCID
   CCBS

Controller 5:
Manufacturer: AVM Berlin
CAPI Version: 2.0
Manufacturer Version: 0.0-03  (0.3)
Serial Number: 0004711
BChannels: 0
Global Options: 0x00000000
B1 protocols support: 0x00000000
B2 protocols support: 0x00000000
B3 protocols support: 0x00000000

  0000
  0000
  00000000
  00000000
  00000000
  00000000
  00000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000
FAC GET - Info: Illegal Controller / PLCI / NCCI (0x2002)

Das FAC GET - Info: Illegal Controller / PLCI / NCCI (0x2002) verwirrt mich, kann damit jmd. was anfangen?

Meine /var/flash/ar7.cfg (FB 7141) schaut so aus:
Code:
capiovertcp {
        enabled = yes;
        maxctrl = 5;
        port = 5031;
}

So jetzt das eigentliche Problem: wie ist das nun mit dem Faxen über die FB und fbrcapi? Hier hab ich gelesen, dass man dazu ein SoftDSP benötigt, also ein Modem emulieren muss. Gibt es dazu eine Anleitung insb. für Hylafax?

Ich konnte auch schon Faxe verschicken, aber es hat nur sehr unbeständig funktioniert (ca. jedes 5. Fax oder so ging durch).

Mit capifax funktioniert es aktuell aber auch nicht:
Code:
# capifax -v 06*******660 fax000000001.tif
Disconnected.
  Reason            : 3303 Protocol error layer 3
  Reason-B3         : 0000 No additional information

Viele Grüße,
mefiX
 
Ok, die Fehlermeldung FAC GET - Info: Illegal Controller / PLCI / NCCI (0x2002) habe ich eliminieren können, indem ich maxctrl = 99 auf der FB gesetzt habe.

Von capifax hatte ich wohl eine völlig falsche Version. Das Programm von capifax.v3v.de liefert nun folgende Ausgabe:

Code:
# capifax -loglevel 5 -send fax000000001.tif 1 ****661 006*******660
-------------------------------------------------------------------------------
 capifax v0.7.3 (c) Marco Zissen                                               
-------------------------------------------------------------------------------
[libcapifax] 30.09.2009 17:01:21 - libcapifax v0.7.3 (c) 2008-2009 Marco Zissen
[libcapifax] 30.09.2009 17:01:21 - Found controller #1 with 2 B-channel(s)     
[libcapifax] 30.09.2009 17:01:21 - Found controller #2 with 2 B-channel(s)     
[libcapifax] 30.09.2009 17:01:21 - Found controller #3 with 2 B-channel(s)     
[libcapifax] 30.09.2009 17:01:21 - Found controller #4 with 1 B-channel(s)     
[libcapifax] 30.09.2009 17:01:21 - Found controller #5 with 0 B-channel(s)     
[libcapifax] 30.09.2009 17:01:21 - Found 5 controllers!                        
[libcapifax] 30.09.2009 17:01:21 - Listen to controller #1 ...                 
[libcapifax] 30.09.2009 17:01:21 - capifax_init(ctrl: 1, loglevel: 4, ev_status: b7f7e754, ev_progress: b7f7e758, ev_log: b7f7e750)                                                                                                         
[libcapifax] 30.09.2009 17:01:21 - libcapifax successfully initialized!                                               
[libcapifax] 30.09.2009 17:01:21 - capifax_send(tiff: fax000000001.tif, modem: 3, ecm: on, controller: 1, src: ****661, trg: 006*******660, ident: +00 00 0000000, header: (null), anonymous: 0)                                            
[libcapifax] 30.09.2009 17:01:21 - REQ: CONNECT (****661 -> 006*******660)                                            
[libcapifax] 30.09.2009 17:01:21 - CNF: CAPI_LISTEN                                                                   
[libcapifax] 30.09.2009 17:01:21 - CNF: CAPI_CONNECT - (PLCI: 3329)                                                   
 OUTGOING FAX                                                                                                         
 Phase:          1                                                                                                    
 Connection:     0                                                                                                    
 Src-No:         ****661                                                                                              
 Dst-No:         006*******660                                                                                        
-------------------------------------------------------------------------------                                       
[libcapifax] 30.09.2009 17:01:21 - IND: CAPI_CONNECT - CON: -1, PLCI: 3585, NCCI: 0 - IGNORING (0 <- 34660)           
[libcapifax] 30.09.2009 17:01:31 - CAPI 0x3492 - No user responding                                                   
[libcapifax] 30.09.2009 17:01:31 - IND: CAPI_DISCONNECT - CON: 0, PLCI: 3329, NCCI: 0                                 
[libcapifax] 30.09.2009 17:01:31 - 2009/09/30 15:01:31.906 00:00:00.000 FLOW T.30 HDLC carrier up in state 18         

[libcapifax] 30.09.2009 17:01:31 - 2009/09/30 15:01:31.907 00:00:00.000 FLOW T.30 HDLC carrier down in state 18

[libcapifax] 30.09.2009 17:01:31 - 2009/09/30 15:01:31.925 00:00:00.000 FLOW T.30 T0 expired in state 18

[libcapifax] 30.09.2009 17:01:31 - 2009/09/30 15:01:31.925 00:00:00.000 FLOW T.30 Disconnecting

[libcapifax] 30.09.2009 17:01:31 - 2009/09/30 15:01:31.926 00:00:00.000 FLOW T.30 Changing from phase T30_PHASE_A_CNG to T30_PHASE_E                                                                                                        

[libcapifax] 30.09.2009 17:01:31 - 2009/09/30 15:01:31.926 00:00:00.000 FLOW T.30 Changing from state 18 to 2

[libcapifax] 30.09.2009 17:01:31 - 2009/09/30 15:01:31.926 00:00:00.000 FLOW T.30 Send complete in phase T30_PHASE_E, state 2                                                                                                               

[libcapifax] 30.09.2009 17:01:31 - Phase E handler (0x2) Timed out waiting for initial communication
[libcapifax] 30.09.2009 17:01:31 - Phase E: pages transferred 0                                     
[libcapifax] 30.09.2009 17:01:31 - Phase E: image resolution 0 x 0
[libcapifax] 30.09.2009 17:01:31 - Phase E: compression type 0
[libcapifax] 30.09.2009 17:01:31 - Phase E: coding method ???
 SENDING FAX (END)
 Phase:          4
 Connection:     0
 Bitrate:        14400
 Encoding:       0
 Bad rows:       0
 Page:           0 / 0
-------------------------------------------------------------------------------
[libcapifax] 30.09.2009 17:01:31 - 2009/09/30 15:01:31.929 00:00:00.000 FLOW T.30 Changing from state 2 to 32

[libcapifax] 30.09.2009 17:01:31 - 2009/09/30 15:01:31.930 00:00:00.000 FLOW T.30 Changing from phase T30_PHASE_E to T30_PHASE_CALL_FINISHED

 SENDING FAX (FAILED 2)
 Phase:          6
 Connection:     0
 Bitrate:        14400
 Encoding:       0
 Bad rows:       0
 Page:           0 / 0
-------------------------------------------------------------------------------
[libcapifax] 30.09.2009 17:01:31 - libcapifax v0.7.3 closed!
 capifax exited!

Dauer des Programms:
Code:
real    0m10.972s
user    0m0.072s
sys     0m0.012s
 
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.