Hallo,
ich versuche meinen Computer als Wahlhilfe zu verwenden, d.h. er baut die Verbindung auf und gibt diese dann an ein ISDN-Telefon hier weiter.
Ich habe eine FritzCard v2 sowie 2 ISDN-Telefone die direkt am NTBA hängen und verwende Asterisk v1.4.18 sowie chan-capi v1.1.1 aus Debian/unstable.
Kann sowas überhaupt funktionieren? Meine Idee war folgende: Ich baue via .call-Datei von Asterisk eine Verbindung zu einem lokalen Telefon auf und setze die Verbindung auf hold. Im Context wird dann eine weitere Verbindung aufgebaut und via ECT werden beide "gebridget".
Meine extensions.conf-Contexte sehen so aus:
Meine capi.conf sieht so aus:
Und die .call-Datei:
Grundsätzlich klappt das soweit auch, d.h. die Verbindung zu meinem lokalen ISDN-Telefon wird aufgebaut, auf hold gesetzt und dann wählt Asterisk die andere Nummer im Call-plan.
Allerdings schlägt das Bridging dann fehlt. Hier ein Auszug aus dem Asterisk-Debug-Log:
Woran kann das "Supplementary service not subscribed" liegen? Wenn ich capiinfo aufrufe, steht dort unter Supplementary services auch ECT:
Gibt es noch weitere Dinge, die ich probieren könnte? Ich hab schon alle möglichen Kombinationen der bridge und holdtype Parameter in der capi.conf getestet, jedes mal mit dem gleichen Ergebnis. Hat jemand eine andere Idee, wie ich die Grundidee einer Wahlhilfe lösen kann?
Vielen Dank im voraus.
Grüße aus Berlin,
Dounme
ich versuche meinen Computer als Wahlhilfe zu verwenden, d.h. er baut die Verbindung auf und gibt diese dann an ein ISDN-Telefon hier weiter.
Ich habe eine FritzCard v2 sowie 2 ISDN-Telefone die direkt am NTBA hängen und verwende Asterisk v1.4.18 sowie chan-capi v1.1.1 aus Debian/unstable.
Kann sowas überhaupt funktionieren? Meine Idee war folgende: Ich baue via .call-Datei von Asterisk eine Verbindung zu einem lokalen Telefon auf und setze die Verbindung auf hold. Im Context wird dann eine weitere Verbindung aufgebaut und via ECT werden beide "gebridget".
Meine extensions.conf-Contexte sehen so aus:
Code:
[macro-capiect]
exten => s,1,Wait(2)
exten => s,2,capicommand(ect)
[calltest]
exten => s,1,Wait(2)
exten => s,2,capicommand(hold)
exten => s,3,Wait(2)
exten => s,4,Dial(CAPI/ISDN1/9237****:01577154****,60,M(capiect))
Meine capi.conf sieht so aus:
Code:
[general]
nationalprefix=0
internationalprefix=00
rxgain=1.0 ;linear receive gain (1.0 = no change)
txgain=1.0 ;linear transmit gain (1.0 = no change)
language=de ;set default language
;ulaw=yes ;set this, if you live in u-law world instead of a-law
;jb..... ;with Asterisk 1.4 you can configure jitterbuffer,
;see Asterisk documentation for all jb* setting available.
;mohinterpret=default ;Asterisk 1.4: default music on hold class when placed on hold.
; interface sections ...
[ISDN1] ;this example interface gets name 'ISDN1' and may be any
;name not starting with 'g' or 'contr'.
;Use one interface section for each isdn port!
;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 of this interface/port
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
faxdetect=off ;enable faxdetection and redirection to EXTEN 'fax' for incoming and/or
;outgoing calls. (default='off', possible values: 'incoming','outgoing','both')
accountcode= ;PBX accountcode to use in CDRs
;amaflags=default;AMA flags for CDR ('default', 'omit', 'billing', or 'documentation')
context=isdn-in ;context for incoming calls
holdtype=hold ;when the PBX puts the call on hold, ISDN HOLD will be used. If
;set to 'local' (default value), no hold is done and the PBX 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. Disable this before you start recording voicemail
;or your files may get choppy. (you can use capicommand(echosquelch|no) for this)
;echocancel=yes ;Dialogic Diva (Capi) echo cancelation (yes=g165)
;(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 (default=0 for maximum)
;echocancelnlp=1 ;activate non-linear-processing; this improves echo cancel ratio, but might
;incorporate variable gain in the signal path.
bridge=no ;native bridging (CAPI line interconnect) if available
;callgroup=1 ;PBX call group
;pickupgroup=1 ;PBX pickup group (which call groups are we allowed to pickup)
;transfergroup=1 ;Controller(s) where a transfer on native bridge is allowed to.
;language=de ;set language for this device (overwrites default language)
;disallow=all ;RTP codec selection (valid with Dialogic Diva only)
;allow=all ;RTP codec selection (valid with Dialogic Diva only)
devices=2
Und die .call-Datei:
Code:
Channel: CAPI/ISDN1/9237****:9237****
Context: calltest
Extension: s
MaxRetries: 0
RetryTime: 10
Grundsätzlich klappt das soweit auch, d.h. die Verbindung zu meinem lokalen ISDN-Telefon wird aufgebaut, auf hold gesetzt und dann wählt Asterisk die andere Nummer im Call-plan.
Allerdings schlägt das Bridging dann fehlt. Hier ein Auszug aus dem Asterisk-Debug-Log:
Code:
-- CAPI/ISDN1#01/01577154****-2 answered CAPI/ISDN1#02/9237****-0
-- Executing [s@macro-capiect:1] Wait("CAPI/ISDN1#01/01577154****-2", "2") in new stack
-- Executing [s@macro-capiect:2] capicommand("CAPI/ISDN1#01/01577154****-2", "ect") in new stack
-- ISDN1#02: ECT confirmed (PLCI=0x101)
-- Native bridging CAPI/ISDN1#02/9237****-0 and CAPI/ISDN1#01/01577154****-2 ended
> ISDN1#02: CAPI INFO 0x3600: Supplementary service not subscribed
> ISDN1#01: CAPI INFO 0x3490: Normal call clearing
== ISDN1#01: CAPI Hangingup for PLCI=0xdead0000 in state 4
== Spawn extension (calltest, s, 4) exited non-zero on 'CAPI/ISDN1#02/9237****-0'
== ISDN1#02: CAPI Hangingup for PLCI=0x101 in state 10
[Apr 6 01:23:07] NOTICE[15976]: pbx_spool.c:371 attempt_thread: Call completed to CAPI/ISDN1/9237****:9237****
Woran kann das "Supplementary service not subscribed" liegen? Wenn ich capiinfo aufrufe, steht dort unter Supplementary services auch ECT:
Code:
Supplementary services support: 0x000003ff
Hold / Retrieve
Terminal Portability
ECT
3PTY
Call Forwarding
Call Deflection
MCID
CCBS
Gibt es noch weitere Dinge, die ich probieren könnte? Ich hab schon alle möglichen Kombinationen der bridge und holdtype Parameter in der capi.conf getestet, jedes mal mit dem gleichen Ergebnis. Hat jemand eine andere Idee, wie ich die Grundidee einer Wahlhilfe lösen kann?
Vielen Dank im voraus.
Grüße aus Berlin,
Dounme