[Asterisk-Users] Chan_capi: using both b-channels

Ben Liesfeld ben.liesfeld at gmx.de
Tue Sep 21 12:59:09 MST 2004


Hi there,

I just recently installed asterisk from cvs on SuSE 8.2 successfully. I was 
quite surprised since asterisk seems to be a quite complex and powerful
application. I also installed chan_capi 0.3.5 and am using a Fritz!PCI card at
an ISDN line (PtMP).

I already got some basic extension schemes to work, e. g. the capi callback
example from junghanns.net. One of my goals is to set up an extension for the 
capi channel that will allow me to forward a call (incoming on one of the 
ISDN b-channels) to another outbound destination. So, in the following, X is 
my local MSN and Y the destination that I would like to forward to.

(1) I tried the call deflection (capiCD) example from Junghanns which does not 
work. I was wondering if you need some services activated from your telephone 
provider (here: DTAG in Germany, Standardanschluss). There is just nothing 
mentioning it on junghanns webpage. Can anyone confirm that?

/var/log/messages shows:

Sep 20 21:33:17 themistokles isdnlog: Sep 20 21:33:17 * Call to tei 122 from X
on Y HANGUP Invalid information element contents (Public network serving local 
user)

The same happens with capiECT which I tried from the examples. But I am pretty 
sure that you need a service activated with your provider (so I am not 
surprised about that).

(2) On the other hand, accepting the call and immediately calling the 
destination Y on the other B channel should work. I tried

exten => s,1,Answer
exten => s,2,ResponseTimeout(30)
exten => s,3,Background(/var/lib/asterisk/sounds/hello)
exten => t,1,Goto(s,2)
exten => i,1,Playback(/var/lib/asterisk/sounds/invalid)
exten => i,2,Goto(s,2)
exten => 1,1,Dial,CAPI/XXXXXX:XXXXXXXXXX|30

But I always get an error message:

--snip--
Asterisk Ready.
*CLI>   == Starting CAPI[contr1/X]/0 at test,X,1 failed so falling back to 
exten 's'
    -- started pbx on channel (callgroup=0)!
    -- Executing Answer("CAPI[contr1/X]/0", "") in new stack
    -- Executing ResponseTimeout("CAPI[contr1/X]/0", "30") in new stack
    -- Set Response Timeout to 30
    -- Executing BackGround("CAPI[contr1/X]/0", 
"/var/lib/asterisk/sounds/demo-thanks") in new stack
    -- Playing '/var/lib/asterisk/sounds/demo-thanks' (language 'en')
  == CDR updated on CAPI[contr1/X]/0
    -- Executing Dial("CAPI[contr1/X]/0", "CAPI/X:Y|30") innew stack
    -- Called X:Y[some number]
    -- CAPI[contr1/X]/1 is busy
  == Everyone is busy/congested at this time
--snip--

Why does * say that the second channel is busy?

/var/log/messages indicates that the call was executed. the HANGUP happened 
when I terminated the first call. 

--snip--
Sep 21 21:41:32 themistokles isdnlog: Sep 21 21:41:32 * tei 64 calling Y with 
X RING (Speech)
Sep 21 21:41:32 themistokles isdnlog: Sep 21 21:41:32 * tei 64 calling Y with 
X HLC: CCITT, Telefonie
Sep 21 21:41:36 themistokles isdnlog: Sep 21 21:41:36 tei 86 calling ? with ?  
HANGUP ( 0:00:06)
--snip--

Any hints would be greatly appreciated. Thanks.

--
Ben Liesfeld



More information about the asterisk-users mailing list