.titleBar { margin-bottom: 5px!important; }

chan_capi vs. chan_capi_cm

Dieses Thema im Forum "Asterisk ISDN mit CAPI (chan_capi, chan_capi_cm)" wurde erstellt von Hupe, 10 Aug. 2005.

  1. Hupe

    Hupe Aktives Mitglied

    Registriert seit:
    8 Apr. 2004
    Beiträge:
    2,586
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Im Moment sind zwei Versionen von chan_capi im Umlauf:
    chan_capi von Junghanns.net (das ist in vielen fertigen Linux-Paketen der Capi-Channel-Driver) und
    chan_capi_cm, das man bei SourceForge erhält, und das eine Weiterentwicklung von chan_capi von Junghanns ist.
    Obwohl das (neue) chan_capi_cm auf dem alten von Junghanns aufbaut, hat sich schon so einiges geändert. So werden z.B. mittlerweile CAPI-Karten mit onboard DSP unterstützt.

    Wenn Ihr das chan_capi von Junghanns.net nutzt:

    So könnte eine capi.conf aussehen (Beispiel von Junghanns.net):
    Code:
    ;
    ; CAPI config
    ;
    ;
    [general]
    nationalprefix=0
    internationalprefix=00
    rxgain=0.8
    txgain=0.8
    
    [interfaces]
    
    msn=50
    incomingmsn=*
    controller=1
    softdtmf=1
    accountcode=
    context=demo
    ;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
    
    Zu beachten ist, dass Ihr in der capi.conf alles MSNs, die Ihr für ausgehende gespräche nutzen wollt, angeben müsst (durch Kommans getrennt).

    Wenn Ihr nun einen Nummer wählen wollt, so sieht der Dial-Befehl (z.B.) so aus:

    exten => s,1,Dial(CAPI/50:${EXTEN},30,r)

    50 ist die (wie im obigen Beispiel der capi.conf) MSN der ISDN-Karte im Asterisk-Server. Diese MSN wird durch einen Doppelpunkt von der zu wählenden Nummer getrennt. Wollt Ihr die MSN der ISDN-Karte nicht mit übertragen, so setzt man vor die MSN ein "@":

    exten => s,1,Dial(CAPI/@50:${EXTEN},30,r)

    Wollt Ihr EarlyB3 nutzen, so setzt Ihr vor die zu wählende Nummer ein b ("b" immer, "B" on success):

    exten => s,1,Dial(CAPI/50:b${EXTEN},30,r)

    Wenn Ihr chan_capi_cm nutzt (stand 0.5.4):

    So sieht die capi.conf so aus (Beispiel aus dem chan_capi_cm-Paket):

    Code:
    ;
    ; CAPI config
    ;
    ;
    [general]
    nationalprefix=0
    internationalprefix=00
    rxgain=0.8
    txgain=0.8
    
    [interfaces]
    
    ; mode: ptmp (point-to-multipoint) or ptp (point-to-point)
    isdnmode=ptmp
    ; allow incoming calls to this list of MSNs, * == any
    incomingmsn=*
    ; capi controller number
    controller=1
    ; dialout group
    group=1
    ; enable/disable software dtmf detection, recommended for AVM cards
    softdtmf=1
    ; accountcode to use in CDRs
    accountcode=
    ; context for incoming calls
    context=capi-in
    ; _VERY_PRIMITIVE_ echo suppression
    ;echosquelch=1
    ; EICON DIVA SERVER echo cancelation
    ;echocancel=yes
    ;echotail=64
    ; call group
    ;callgroup=1
    ; deflect incoming calls to 12345678 if all B channels are busy
    ;deflect=12345678
    ; number of concurrent calls on this controller (2 makes sense for single BRI)
    devices => 2
    
    
    ;PointToPoint (55512-0)
    ;isdnmode=ptp
    ;msn=55512
    ;controller=2
    ;devices => 30
    
    Zu beachten ist, dass hier nurnoch die MSNs angegeben werden, auf die die ISDN-Karte bei eingehenden Anrufen reagieren soll (* für alle). Die MSN der ISDN-Karte für das ausgehende Gespräch wird nun vor dem Wählen in der extensions.conf definiert:

    exten => _X.,1,SetCIDNum(50)
    exten => _X.,2,Dial(CAPI/contr1/${EXTEN})

    oder bei neuerne Asterisk-Versionen

    exten => _X.,1,Set(CALLERID(number)=50)
    exten => _X.,2,Dial(CAPI/contr1/${EXTEN})

    "contr1" ist die in der capi.conf definierte Nummer des Capi-Controllers. Es kann aber auch die Nummer der dialout-Gruppe verwendet werden:

    exten => _X.,1,Set(CALLERID(number)=50)
    exten => _X.,2,Dial(CAPI/g1/${EXTEN})

    Wenn Ihr Eure Rufnummer unterdrücken wollt, so müsst Ihr vor dem Wählen den Befehl: SetCallerPres(prohib_not_screened) benutzen:

    exten => _X.,1,Set(CALLERID(number)=50)
    exten => _X.,2,SetCallerPres(prohib_not_screened)
    exten => _X.,3,Dial(CAPI/contr1/${EXTEN})


    Wollt Ihr EarlyB3 nutzen, so wird es durch ein B vor der zu wählenden Nummer erreicht ("b" immer, "B" on success):


    exten => _X.,1,Set(CALLERID(number)=50)
    exten => _X.,2,Dial(CAPI/contr1/b${EXTEN})


    Wenn Ihr also Probleme beim Wählen mit chan_capi habt, vergewissert Euch erst einmal, dass Ihr zu Eurer Version von chan_capi die richtige Syntax für den Dial-Befehl benutzt, bevor Ihr hier etwas postet!!!
     
  2. Whoopie

    Whoopie Aktives Mitglied

    Registriert seit:
    19 Okt. 2004
    Beiträge:
    813
    Zustimmungen:
    4
    Punkte für Erfolge:
    18
    Wenn Ihr chan_capi_cm nutzt (Version 0.6 oder CVS):

    So sieht die capi.conf so aus (Beispiel aus Version 0.6 bzw. dem CVS):
    Code:
    ;
    ; CAPI config
    ;
    ;
    
    ; general section
    
    [general]
    nationalprefix=0
    internationalprefix=00
    rxgain=0.8
    txgain=0.8
    ;ulaw=yes        ;set this, if you live in u-law world instead of a-law
    
    ; interface sections ...
    
    [ISDN1]          ;this example interface gets name 'ISDN1' and may be any
                     ;name not starting with 'g' or 'contr'.
    ;ntmode=yes      ;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, ptp should be set in any case
    incomingmsn=*    ;allow incoming calls to this list of MSNs/DIDs, * == any
    ;controller=0    ;ISDN4BSD default
    ;controller=7    ;ISDN4BSD USB default
    controller=1     ;capi controller number to use
    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
    accountcode=     ;Asterisk accountcode to use in CDRs
    context=capi-in  ;context for incoming calls
    holdtype=hold    ;when Asterisk puts the call on hold, ISDN HOLD will be used. If
                     ;set to 'local' (default value), no hold is done and Asterisk may
                     ;play MOH.
    ;immediate=yes   ;immediate start of pbx with extension 's' if no digits were
                     ;received on incoming call (no destination number yet)
    ;echosquelch=1   ;_VERY_PRIMITIVE_ echo suppression
    ;echocancel=yes  ;EICON DIVA SERVER (CAPI) echo cancelation
                     ;(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
    ;bridge=yes      ;native bridging (CAPI line interconnect) if available
    ;callgroup=1     ;Asterisk call group
    ;deflect=1234567 ;deflect incoming calls to 1234567 if all B channels are busy
    devices=2        ;number of concurrent calls on this controller
                     ;(2 makes sense for single BRI, 30 for PRI)
    
    
    Zu beachten ist, dass hier nurnoch die MSNs angegeben werden, auf die die ISDN-Karte bei eingehenden Anrufen reagieren soll (* für alle). Die MSN der ISDN-Karte für das ausgehende Gespräch wird nun vor dem Wählen in der extensions.conf definiert:

    exten => _X.,1,SetCallerID(50)
    exten => _X.,2,Dial(CAPI/contr1/${EXTEN})

    oder bei neueren Asterisk-Versionen

    exten => _X.,1,Set(CallerID(number)=50)
    exten => _X.,2,Dial(CAPI/contr1/${EXTEN})

    "contr1" ist die in der capi.conf definierte Nummer des Capi-Controllers.
    Es kann aber auch die Nummer der dialout-Gruppe verwendet werden:

    exten => _X.,1,Set(CallerID(number)=50)
    exten => _X.,2,Dial(CAPI/g1/${EXTEN})

    3. Möglichkeit ist der Name des Interfaces, z.B. ISDN1 (siehe capi.conf Beispiel):

    exten => _X.,1,Set(CallerID(number)=50)
    exten => _X.,2,Dial(CAPI/ISDN1/${EXTEN})

    Wenn Ihr Eure Rufnummer unterdrücken wollt, so müsst Ihr vor dem Wählen den Befehl: SetCallerPres(prohib_not_screened) benutzen:

    exten => _X.,1,Set(CallerID(number)=50)
    exten => _X.,2,SetCallerPres(prohib_not_screened)
    exten => _X.,3,Dial(CAPI/contr1/${EXTEN})


    Wollt Ihr EarlyB3 nutzen, so wird es durch ein B nach der zu wählenden Nummer erreicht, getrennt durch einen Slash ("b" immer, "B" on success):

    exten => _X.,1,Set(CallerID(number)=50)
    exten => _X.,2,Dial(CAPI/contr1/${EXTEN}/b)


    Ist mehr ein Copy&Paste von Hupe's Anleitung, aber es hat sich halt ein wenig in der Version 0.6 und der CVS-Version geändert.

    Bis denn,
    Whoopie
     
  3. thorsten.gehrig

    thorsten.gehrig Mitglied

    Registriert seit:
    14 Juni 2004
    Beiträge:
    490
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,
    definiert doch mal bitte "alte" und "neuere Asterisk-Versionen".
    Ein "bis 1.0.x" und ab "1.0.y" währe hier sicherlich hilfreicher....

    (bei mir wird nämlich derzeit die falsche MSN übermittelt und ich find nicht warum..).

    Gruß
    Thorsten@Gehrig.de
     
  4. Boje

    Boje Neuer User

    Registriert seit:
    16 Aug. 2005
    Beiträge:
    36
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Auf Sourceforge.net ist ab sofort chan_capi_cm-0.6.1 erhältlich. Funktioniert und MSN werden bei mir korrekt übermittelt.

    Code:
    chan_capi-cm-0.6.1
    ------------------
    - fixed setting of redirecting number rdnis instead of cid.
    - allow setting a callerid in the dial() command without changing
      the original channel callerid.
    - added channel locks
    - fixed capi init order (thanks to Hans Petter Selasky)
    - fixed did handling
    - set RDNIS if redirecting number was received.
    - simplified call to ast_exists_extension()
    - when check for valid extension, check the callerid as well
    - changed call-waiting and deflect handling in CONNECT_IND
    - use 'immediate' config in MSN mode, if pbx shall be started on
      CONNECT_IND and shall not wait until SETUP/SENDING-COMPLETE was received.
      Since info like REDIRECTINGNUMBER will come after CONNECT_IND, this may
      be lost then. But for some drivers/telcos/pbx, this setting is needed.
    - fix start of line interconnect in old mode.
    - start early-b3 on PROCEEDING too.
    - don't send audio data, if in fax receive mode
    - disconnect on finished fax immediately
    - don't run through gain list, if gain is 1.0.
    - use correct A-law idle value.
    - removed old example from capi.conf
    
    
     
  5. Hupe

    Hupe Aktives Mitglied

    Registriert seit:
    8 Apr. 2004
    Beiträge:
    2,586
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wenn Ihr chan_capi_cm nutzt (Version 0.6.1 oder CVS):

    So sieht die capi.conf so aus (Beispiel aus Version 0.6.1 bzw. dem CVS):
    Code:
    ;
    ; CAPI config
    ;
    ;
    
    ; general section
    
    [general]
    nationalprefix=0
    internationalprefix=00
    rxgain=0.8
    txgain=0.8
    ;ulaw=yes        ;set this, if you live in u-law world instead of a-law
    
    ; interface sections ...
    
    [ISDN1]          ;this example interface gets name 'ISDN1' and may be any
                     ;name not starting with 'g' or 'contr'.
    ;ntmode=yes      ;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=*    ;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 to use
    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
    accountcode=     ;Asterisk accountcode to use in CDRs
    context=capi-in  ;context for incoming calls
    holdtype=hold    ;when Asterisk puts the call on hold, ISDN HOLD will be used. If
                     ;set to 'local' (default value), no hold is done and Asterisk 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
                     ;(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
    ;bridge=yes      ;native bridging (CAPI line interconnect) if available
    ;callgroup=1     ;Asterisk call group
    devices=2        ;number of concurrent calls on this controller
                     ;(2 makes sense for single BRI, 30 for PRI)
    
    Zu beachten ist, dass hier nurnoch die MSNs angegeben werden, auf die die ISDN-Karte bei eingehenden Anrufen reagieren soll (* für alle). Die MSN der ISDN-Karte für das ausgehende Gespräch wird nun vor dem Wählen in der extensions.conf definiert (falls nicht, wird der Wert "defaultcid2 aus der capi.conf genommen).

    exten => _X.,1,SetCallerID(50)
    exten => _X.,2,Dial(CAPI/contr1/${EXTEN})

    oder bei neueren Asterisk-Versionen

    exten => _X.,1,Set(CallerID(number)=50)
    exten => _X.,2,Dial(CAPI/contr1/${EXTEN})

    Man kann seine MSN für ausgehende Gespräche jetzt auch wieder im Dial-Befehl setzen. Das kann Sinnvoll sein, wenn man z.B. gleichzeitig einen Anruf an CAPI und SIP signalisieren möchte, ohne die originale CallerID zu überschreiben.

    exten => _X.,1,Dial(CAPI/contr1/50:${EXTEN})

    "contr1" ist die in der capi.conf definierte Nummer des Capi-Controllers.
    Es kann aber auch die Nummer der dialout-Gruppe verwendet werden:

    exten => _X.,1,Set(CallerID(number)=50)
    exten => _X.,2,Dial(CAPI/g1/${EXTEN})

    3. Möglichkeit ist der Name des Interfaces, z.B. ISDN1 (siehe capi.conf Beispiel):

    exten => _X.,1,Set(CALLERID(number)=50)
    exten => _X.,2,Dial(CAPI/ISDN1/${EXTEN})

    Wenn Ihr Eure Rufnummer unterdrücken wollt, so müsst Ihr vor dem Wählen den Befehl: SetCallerPres(prohib_not_screened) benutzen:

    exten => _X.,1,Set(CALLERID(number)=50)
    exten => _X.,2,SetCallerPres(prohib_not_screened)
    exten => _X.,3,Dial(CAPI/contr1/${EXTEN})


    Wollt Ihr EarlyB3 nutzen, so wird es durch ein B nach der zu wählenden Nummer erreicht, getrennt durch einen Slash ("b" immer, "B" on success):

    exten => _X.,1,Set(CALLERID(number)=50)
    exten => _X.,2,Dial(CAPI/contr1/${EXTEN}/b)
     
  6. blauerpeti

    blauerpeti Mitglied

    Registriert seit:
    28 Juni 2005
    Beiträge:
    723
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    bringt bei mir einen ERROR: Funktion CallerID not registered

    Asterisk 1.2.1 mit chan_capi 0.6.1
     
  7. Hupe

    Hupe Aktives Mitglied

    Registriert seit:
    8 Apr. 2004
    Beiträge:
    2,586
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Oh, das kann sein. Hatte den Obigen Beitrag kopiert und erweitert. Darum war es mir nicht aufgefalen. Das ist wohl case-sensitiv. Also:

    Set(CALLERID(number)=50)
     
  8. simoneh

    simoneh Neuer User

    Registriert seit:
    16 Feb. 2005
    Beiträge:
    27
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Hi,

    ich benutze chan_capi-cm-0.6.1 und bei mir funktioniert Set(CALLERID(number)=msn nicht! Ich muss wie "früher" die zu verwendende MSN mit in den Dialstring packen.

    Kann das jemand bestätigen?!
     
  9. Netview

    Netview IPPF-Promi

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    3,366
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Beruf:
    Dipl.-Inf.
    Ort:
    Westerwald
    ab asterisk 1.2.0 Set(CALLERID(number)=msn)
    davor (asterisk 1.0.x) SetCallerID(msn)
     
  10. simoneh

    simoneh Neuer User

    Registriert seit:
    16 Feb. 2005
    Beiträge:
    27
    Zustimmungen:
    0
    Punkte für Erfolge:
    1
    Das habe ich ja verstanden, aber das chan-capi_cm Modul erwartet die ausgehende MSN wohl wie früher auch das chan-capi Modul im Dial String.

    Es funktioniert nämlich weder Set(CALLERID(number)=msn) noch SetCallerID(msn)
     
  11. cibi

    cibi Mitglied

    Registriert seit:
    6 Apr. 2005
    Beiträge:
    561
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Ba-Wü
    #11 cibi, 1 Jan. 2006
    Zuletzt bearbeitet: 10 Apr. 2006
    In der neusten bristuff-0.3.0-PRE-1d wird chan_capi 0.4.0-PRE1 mitinstalliert.
    (es wird kein extra Verzeichnis angelegt, sondern direkt ins Asteriskverzeichnis installiert + gepacht)

    Wer trotzdem chan_capi_cm benutzen will, muss wie bei dem altbekannten Problem einer alten chan_capi Version, die app_capi* Module löschen.
    (nicht probiert).
    Oder aber in den Makefiles
    asterisk-1.2.1/channels/Makefile
    asterisk-1.2.1/apps/Makefile
    die capi Sektionen auskommentieren.
    Eine weitere Lösung wäre den Bristuff patch zu bearbeiten, aber dazu hatte ich keine Lust ;)
    => vielleicht sollte man aber auf Probleme achten, da u.a. die capi header in asterisk-1.2.1/include kopiert werden und bei make install dann auch nach /usr/include/asterisk installiert werden.


    BTW: chan_capi_cm 0.6.5 ist verfügbar
    ------------
    BTW2:
    Set(CALLERID(number)=msn)
    funktioniert bei mir ohne Probleme. Vielleicht dazu mal ein neues Thema aufmachen mit deinen Configs/Debuglog
     
  12. Corum

    Corum Neuer User

    Registriert seit:
    14 Juni 2007
    Beiträge:
    10
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    67661 Kaiserslautern
    Die aktuelle Version von chan_capi ist Version 1.0.1.
    http://www.melware.org/ChanCapi
    Laut README sind chan_capi und chan_capi-cm wieder zusammengeführt worden.
    Verbessert mich, wenn ich mich irre!
     
  13. armincm

    armincm Aktives Mitglied

    Registriert seit:
    3 Aug. 2005
    Beiträge:
    1,006
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    "Zusammengeführt" ist nicht das richtige Wort.
    Als ich (melware) das original chan-capi damals weiterentwickelt habe, wollte ich einen gleichen Namen vermeiden (die ursprüngliche Version hätte ja auch weiterentwickelt worden können).
    Deshalb habe ich dem Namen damals -cm hinzugefügt um es eindeutig zu machen. Da aber die ursprüngliche Version nicht weiterentwickelt wurde (hätte meiner Ansicht nach auch keinen Sinn gemacht ;-), habe ich den Namen wieder geändert und somit auch chan-capi.org ins Leben gerufen.

    Armin
     
  14. genbian

    genbian Neuer User

    Registriert seit:
    31 Mai 2009
    Beiträge:
    35
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Im Wiki ist unter http://wiki.ip-phone-forum.de/softw..._isdn_--_kann_ich_asterisk_daran_anschliessen
    nur Junghanns.net verlinkt. Da sollte chan-capi.org hin. (Meiner Meinung nach könnte man auch den Link auf Junghanns.net entfernen oder zumindest hinschreiben, dass es ursprünglich von dort kam, aber seit Jahren, ?2006?, nicht mehr betreut wird.)
    Leider ist editieren im Wiki mir (momentan?) nicht gestattet. (Für Anfänger wäre ein Hinweis sinnvoll, dass manche Distributionen wie Debian, z.T. chan_capi(-cm) direkt mitliefern, wenn Asterisk aus deren Repositories installiert wird.)

    Genbian