Incoming Calls an Anlagenanschluß mit Diva Server 4Bri und Chan-Capi-CM

torstenkrueger

Neuer User
Mitglied seit
29 Jan 2005
Beiträge
45
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

ich bräuchte ein wenig Hilfe beim Thema Overlap-Dial und Chan-Capi CM.
Folgendes Setup:

- Eicon Diva Server 4Bri sowohl mit Eicon-Capi als auch mit Melware 3.0, kein Unterschied). Die Karte ist an 4 BRI-Anschlüsse DTAG im TE-Mode PtP angeschlossen. Es wird ein zweistelliger Durchwahlblock genutzt.
In der Diva-Konfiguration ist der DID-Modus so eingestellt, dass die ankommenden Nummern transparent durchgereicht werden, also
Code:
CCardDIDLEN[4]="0"
- Asterisk 1.2.9.1 ohne weitere Patches
- Chan-Capi CM (sowohl 0.6.5 als auch HEAD getestet)

die relevanten Einträge aus /etc/asterisk/capi.conf sind wie folgt:
Code:
[ISDN4]
isdnmode=did
incomingmsn=*
controller=1
group=1
softdtmf=off
relaxdtmf=off
context=from-pstn
immediate=no
echocancel=yes
echotail=0
bridge=yes
devices=2

Wenn ich nun einen Anruf auf eine der DIDs mache klappt das wunderbar so lange Blockwahl verwendet wird. Sobald ich ein analoges Telefon nehme und somit überlappend wähle schaltet die PBX bereits nach der ersten Ziffer der DID durch und der Call rennt gegen die Wand bzw. landet per Dialplan und Invalid-Handler bei der Zentrale.

Hier ein Log eines solchen Calls mit Verbose 5 und Capi Debug. Angwählte Nummer ist xxxxx-3866996.

Code:
CONNECT_IND ID=001 #0x0584 LEN=0051
  Controller/PLCI/NCCI            = 0x103
  CIPValue                        = 0x10
  CalledPartyNumber               = <c1>386699
  CallingPartyNumber              = <21 83>XXX1859483
  CalledPartySubaddress           = default
  CallingPartySubaddress          = default
  BC                              = <80 90 a3>
  LLC                             = default
  HLC                             = <91 81>
  AdditionalInfo
   BChannelinformation            = default
   Keypadfacility                 = default
   Useruserdata                   = default
   Facilitydataarray              = default
   SendingComplete                = default

    -- CONNECT_IND (PLCI=0x103,DID=386699,CID=XXX1859483,CIP=0x10,CONTROLLER=0x3)
       > ISDN3#02: msn='*' DNID='386699' DID
  == ISDN3#02: setting format alaw - 0x8 (alaw)
  == ISDN3#02: Incoming call '0XXX1859483' -> '386699'
INFO_IND ID=001 #0x0585 LEN=0022
  Controller/PLCI/NCCI            = 0x103
  InfoNumber                      = 0x70
  InfoElement                     = <c1>386699

INFO_RESP ID=001 #0x0585 LEN=0012
  Controller/PLCI/NCCI            = 0x103

    -- ISDN3#02: info element CALLED PARTY NUMBER
    -- ISDN3#02: Updated channel name: CAPI/ISDN3#02/386699-10
    -- ISDN3#02: CAPI/ISDN3#02/386699-10: 386699 matches in context from-pstn
  == Started pbx on channel CAPI/ISDN3#02/386699-10
INFO_IND ID=001 #0x0586 LEN=0016
  Controller/PLCI/NCCI            = 0x103
  InfoNumber                      = 0x18
  InfoElement                     = <89>

INFO_RESP ID=001 #0x0586 LEN=0012
  Controller/PLCI/NCCI            = 0x103

    -- ISDN3#02: info element CHANNEL IDENTIFICATION 89
INFO_IND ID=001 #0x0587 LEN=0015
  Controller/PLCI/NCCI            = 0x103
  InfoNumber                      = 0x8005
  InfoElement                     = default

INFO_RESP ID=001 #0x0587 LEN=0012
  Controller/PLCI/NCCI            = 0x103

    -- ISDN3#02: info element SETUP
    -- Executing Wait("CAPI/ISDN3#02/386699-10", "0.1") in new stack
       > CAPI devicestate requested for ISDN3#02/386699
    -- Executing NoOp("CAPI/ISDN3#02/386699-10", "EXTEN: 386699") in new stack
    -- Executing NoOp("CAPI/ISDN3#02/386699-10", "DNID: 386699") in new stack
    -- Executing NoOp("CAPI/ISDN3#02/386699-10", "CALLEDTON: 65") in new stack
    -- Executing NoOp("CAPI/ISDN3#02/386699-10", "CALLEDSUBADDRESS: ") in new stack
    -- Executing NoOp("CAPI/ISDN3#02/386699-10", "CONNECTEDNUMBER: ") in new stack
    -- Executing Goto("CAPI/ISDN3#02/386699-10", "inbound|386699|1") in new stack
    -- Goto (inbound,386699,1)
    -- Executing Macro("CAPI/ISDN3#02/386699-10", "callerid-in") in new stack
    -- Executing Set("CAPI/ISDN3#02/386699-10", "inTrunk=1") in new stack
    -- Executing GotoIf("CAPI/ISDN3#02/386699-10", "0?3:6") in new stack
    -- Goto (macro-callerid-in,s,6)
    -- Executing GotoIf("CAPI/ISDN3#02/386699-10", "1?7:8") in new stack
    -- Goto (macro-callerid-in,s,7)
    -- Executing Set("CAPI/ISDN3#02/386699-10", "CALLERID(name)=02311859483") in new stack
    -- Executing GotoIf("CAPI/ISDN3#02/386699-10", "0?9:10") in new stack
    -- Goto (macro-callerid-in,s,10)
    -- Executing Set("CAPI/ISDN3#02/386699-10", "numPrefix=0") in new stack
    -- Executing Set("CAPI/ISDN3#02/386699-10", "CALLERID(number)=0XXXX1859483") in new stack
    -- Executing Set("CAPI/ISDN3#02/386699-10", "CALLERID(name)=XXXX1859483") in new stack
    -- Executing MacroExit("CAPI/ISDN3#02/386699-10", "") in new stack
    -- Executing GotoIf("CAPI/ISDN3#02/386699-10", "1?3:4") in new stack
    -- Goto (inbound,386699,3)
    -- Executing Set("CAPI/ISDN3#02/386699-10", "FROMCONTEXT=from-external") in new stack
    -- Executing Set("CAPI/ISDN3#02/386699-10", "theNumber=386699") in new stack
    -- Executing GotoIf("CAPI/ISDN3#02/386699-10", "0?6:7") in new stack
    -- Goto (inbound,386699,7)
    -- Executing GotoIf("CAPI/ISDN3#02/386699-10", "0?8:9") in new stack
    -- Goto (inbound,386699,9)
    -- Executing GotoIf("CAPI/ISDN3#02/386699-10", "0?10:11") in new stack
    -- Goto (inbound,386699,11)
    -- Executing GotoIf("CAPI/ISDN3#02/386699-10", "1?12:13") in new stack
    -- Goto (inbound,386699,12)
    -- Executing Set("CAPI/ISDN3#02/386699-10", "theNumber=9") in new stack
    -- Executing GotoIf("CAPI/ISDN3#02/386699-10", "0?16:14") in new stack
    -- Goto (inbound,386699,14)
    -- Executing Set("CAPI/ISDN3#02/386699-10", "INTIME=opened") in new stack
    -- Executing Goto("CAPI/ISDN3#02/386699-10", "25") in new stack
    -- Goto (inbound,386699,25)
    -- Executing Goto("CAPI/ISDN3#02/386699-10", "receptionist|9|1") in new stack
    -- Goto (receptionist,9,1)
    -- Sent into invalid extension '9' in context 'receptionist' on CAPI/ISDN3#02/386699-10
    -- Executing Set("CAPI/ISDN3#02/386699-10", "CALLERID(name)=INVALID-9-02311859483") in new stack
    -- Executing NoOp("CAPI/ISDN3#02/386699-10", "DNID: 386699") in new stack
    -- Executing Hangup("CAPI/ISDN3#02/386699-10", "17") in new stack
  == Spawn extension (receptionist, i, 3) exited non-zero on 'CAPI/ISDN3#02/386699-10'
    -- Executing Macro("CAPI/ISDN3#02/386699-10", "dial-result|16") in new stack
    -- Executing Wait("CAPI/ISDN3#02/386699-10", "1") in new stack
INFO_IND ID=001 #0x0588 LEN=0017
  Controller/PLCI/NCCI            = 0x103
  InfoNumber                      = 0x70
  InfoElement                     = <c1>6

INFO_RESP ID=001 #0x0588 LEN=0012
  Controller/PLCI/NCCI            = 0x103

    -- ISDN3#02: info element CALLED PARTY NUMBER
    -- ISDN3#02: Updated channel name: CAPI/ISDN3#02/3866996-11
    -- CAPI queue frame:[ TYPE: DTMF (1) SUBCLASS: 6 (54) ] [ISDN3#02]
INFO_IND ID=001 #0x0589 LEN=0015
  Controller/PLCI/NCCI            = 0x103
  InfoNumber                      = 0x807b
  InfoElement                     = default

INFO_RESP ID=001 #0x0589 LEN=0012
  Controller/PLCI/NCCI            = 0x103

    -- ISDN3#02: info element INFORMATION
    -- Executing ResetCDR("CAPI/ISDN3#02/3866996-11", "w") in new stack
    -- Executing NoCDR("CAPI/ISDN3#02/3866996-11", "") in new stack
    -- Executing GotoIf("CAPI/ISDN3#02/3866996-11", "0?7:5") in new stack
    -- Goto (macro-dial-result,s,5)
    -- Executing Set("CAPI/ISDN3#02/3866996-11", "RC=16") in new stack
    -- Executing Goto("CAPI/ISDN3#02/3866996-11", "s|9") in new stack
    -- Goto (macro-dial-result,s,9)
    -- Executing Goto("CAPI/ISDN3#02/3866996-11", "rc-16|1") in new stack
    -- Goto (macro-dial-result,rc-16,1)
    -- Executing NoOp("CAPI/ISDN3#02/3866996-11", "NORMAL_CLEARING") in new stack
    -- Executing Goto("CAPI/ISDN3#02/3866996-11", "s|10") in new stack
    -- Goto (macro-dial-result,s,10)
    -- Executing Hangup("CAPI/ISDN3#02/3866996-11", "16") in new stack
  == Spawn extension (macro-dial-result, s, 10) exited non-zero on 'CAPI/ISDN3#02/3866996-11' in macro 'dial-result'
  == Spawn extension (macro-dial-result, s, 10) exited non-zero on 'CAPI/ISDN3#02/3866996-11'
  == ISDN3#02: CAPI Hangingup for PLCI=0x103 in state 7
    -- ISDN3#02: activehangingup (cause=16) for PLCI=0x103
CONNECT_RESP ID=001 #0x0584 LEN=0034
  Controller/PLCI/NCCI            = 0x103
  Reject                          = 0x3490
  BProtocol
   B1protocol                     = 0x0
   B2protocol                     = 0x0
   B3protocol                     = 0x0
   B1configuration                = default
   B2configuration                = default
   B3configuration                = default
   GlobalConfiguration            = default
  ConnectedNumber                 = default
  ConnectedSubaddress             = default
  LLC                             = default
  AdditionalInfo
   BChannelinformation            = default
   Keypadfacility                 = default
   Useruserdata                   = default
   Facilitydataarray              = default
   SendingComplete                = default

INFO_IND ID=001 #0x058a LEN=0017
  Controller/PLCI/NCCI            = 0x103
  InfoNumber                      = 0x8
  InfoElement                     = <80 90>

INFO_RESP ID=001 #0x058a LEN=0012
  Controller/PLCI/NCCI            = 0x103

    -- ISDN3#02: info element CAUSE 80 90
INFO_IND ID=001 #0x058b LEN=0015
  Controller/PLCI/NCCI            = 0x103
  InfoNumber                      = 0x805a
  InfoElement                     = default

INFO_RESP ID=001 #0x058b LEN=0012
  Controller/PLCI/NCCI            = 0x103

    -- ISDN3#02: info element RELEASE COMPLETE
DISCONNECT_IND ID=001 #0x058d LEN=0014
  Controller/PLCI/NCCI            = 0x103
  Reason                          = 0x3490

DISCONNECT_RESP ID=001 #0x058d LEN=0012
  Controller/PLCI/NCCI            = 0x103

       > ISDN3#02: CAPI INFO 0x3490: Normal call clearing
  == ISDN3#02: Interface cleanup PLCI=0x103
       > CAPI devicestate requested for ISDN3#02/3866996
       > CAPI devicestate requested for ISDN3#02/3866996

Nun kenne ich es von den Zaptel-Sachen her so, dass im Fall eines Incoming-Calls und immediate=no und overlapdial=yes erstmal ein
"Starting simple Switch on xxxxxx" kommt, und die PBX wartet bis die Nummer komplett scheint oder wirklich matched. Der Diva-Karte zu sagen, dass sie in der Capi die DIDs zusammensammeln soll ist auch keine Lösung; in dem Fall kann ich zwar prima meine Durchwahlen anrufen aber komme nicht mehr an die -0. Any Idea?
 
temporäre Lösung

Zwar funktioniert Overlap Recieving nach wie vor nicht richtig, aber das Problem ließ sich erst mal dadurch lösen, dass der Eingangscontext von
Code:
[from-pstn]
exten => _X.,1,Goto(inbound|${EXTEN}|1)
zu
Code:
[from-pstn]
exten => 386690,1,Goto(inbound|${EXTEN}|1)
exten => _38669X.,1,Goto(inbound|${EXTEN}|1)
geändert wurde.

Es wäre trotzdem schöner, wenn Overlap Recieving genau so funktionieren würde, wie man es erwartet und von Zaptel kennt.
 
Das ist auch genau die Loesung!
Wenn chan-capi einen Call bekommt, wird nachgeschaut ob es zu einem 'match' im context kommt. Ist dies der Fall, wird der Anruf an Asterisk uebergeben.
Wenn Du also auf zwei Ziffern Durchwahl warten willst, dann musst du auf jeden Fall
1234XX (also zwei X) verwenden.

So kannst Du genau bestimmen, welche Rufnummernbereiche wann angenommen werden sollen.

Armin
 

Statistik des Forums

Themen
245,105
Beiträge
2,224,571
Mitglieder
371,957
Neuestes Mitglied
Maverick2024
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.