Gleiches Problem...
Hallo zusammen,
also ich habe exakt das gleiche, höchst eigenartige Problem, kann aber einige zusätzlichen Informationen geben...
Umgebung:
- Debian Sarge mit 2.4.27er Kernel
- Asterisk 1.2.1
- chan_capi-cm 0.6.1
- AVM B1 mit AVM Treibern
- B1 hängt am internen S0 Bus einer Hicom 118
Hier meine /etc/asterisk/capi.conf:
Code:
[general]
nationalprefix=00
internationalprefix=000
rxgain=0.8
txgain=0.8
;ulaw=yes ;set this, if you live in u-law world instead of a-law
; interface sections ...
[capi1] ;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=50,51,52,59 ;allow incoming calls to this list of MSNs/DIDs, * = any
defaultcid=51 ;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 ;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)
der zugehörige Kontext "capi"
Code:
[capi]
exten => 50,1,Goto(VBOX,s,1)
exten => 51,1,Goto(capi-in,s,1)
exten => 52,1,Goto(capi-in,s,1)
exten => 59,1,Goto(callback-in,s,1)
[capi-in]
exten => s,1,SetLanguage(de)
exten => s,2,Answer
exten => s,3,DigitTimeout,3
exten => s,4,ResponseTimeout,10
exten => s,5,Authenticate(${pass})
exten => s,6,Background(vm-enter-num-to-call)
...
Nach dem Umstieg von Asterisk 1.0.9 auf 1.2.1 erfolgte auch der Umstieg von chan_capi 0.3.5 (Junghanns) auf chan_capi-cm 0.6.1. CAPI läuft einwandfrei, bedeutet, ich kann externe Rufe von IAX sowie SIP aufbauen (zu Hicom internen Nummern, wie auch ISDN externen Nummern).
Und jetzt kommts:
Rufe ich z.B. die 51 von einem Hicom internen Telefon an, habe ich das Problem, dass Asterisk zwar einen Anruf in der CLI anzeigt, ihn aber nicht annimmt, bzw. in meinen Kontext leitet. Nach ca. 4 Sekunden bricht die Verbindung durch ein Capi Hangup ab.
In der CLI:
Code:
== capi1: Incoming call '10' -> '51'
== capi1: CAPI Hangingup
Rufe ich allerdings von Extern (ISDN-Amt -> Hicom -> Asterisk) an, funktioniert es einwandfrei, auf allen Nummern. (Es wurden für alle ISDN Nummern des Asterisk eigene MSNs vergeben)
Dieses Problem habe ich erst seit dem Umstieg auf Asterisk 1.2.1 und chan_capi-cm 0.6.1.
In der CLI:
Code:
== capi1: Incoming call '00221xxxxxxx' -> '51'
-- Executing Goto("CAPI/capi1/51-4", "capi-in|s|1") in new stack
-- Goto (capi-in,s,1)
-- Executing SetLanguage("CAPI/capi1/51-4", "de") in new stack
-- Executing Answer("CAPI/capi1/51-4", "") in new stack
== capi1: Answering for 51
-- Executing DigitTimeout("CAPI/capi1/51-4", "3") in new stack
-- Set Digit Timeout to 3
-- Executing ResponseTimeout("CAPI/capi1/51-4", "10") in new stack
-- Set Response Timeout to 10
Das Fehlerbild läßt mich auf zwei mögliche Ursachen schließen, zum einen könnte die Signalisierung der Hicom (oder Telefonanlagen) intern anders sein als extern, oder es könnte an der CallerID liegen, aber wenn ich die CallerID ausschalte (Inkognito), komme ich wieder extern ohne Probleme auf den Asterisk, Hicom intern nicht.
Nun hab ich leider keine Idee mehr, obwohl es nicht viel sein kann...
Hat jemand dazu eine Idee?
Vielen Dank im Voraus, und schonmal frohe Weihnachtszeit,
sMa aus Kölle