Asterisk 1.09 + Chan_capi-cm-.6 + Eicon DIVAS Server BRI

Thanks to the help of others I finally have my ISDN BRI / Asterisk system working. A single ISDN BRI is my only home phone service, and I was hoping to replace my combination of ISDN phones and POTS converting router to connect analog phones with an Asterisk system. I believe I may have taken things as far as I can, but have since discovered what I believe to be show-stopping limitations of the chan_capi/Asterisk implemenation.

What works:

  1. I can make or receive a single call on EACH SPID/Bearer channel simultaneously (from my SIP phone in/out ISDN to the PSTN).
  2. Inbound and Outbound Caller ID work (I don’t get Caller ID with Name, limitation of the Nortel DMS-100 switches used by SBC Ameritech in Michigan)

What doesn’t work / doesn’t work yet:

  1. ISDN Hold. Despite enabling ISDN/Capi hold in my capi.conf (via the holtype=hold statement), placing calls on hold still results in a ‘local hold’ with Music On Hold etc. This is probably my fault, I’m guessing I have to do something special in my extensions.conf to make this work. Not a huge deal, but I don’t want Music On Hold going out my ISDN channel when I put a conference call I have dialed into on hold, etc.

  2. Call waiting / Additional Call Offering (ACO). This is huge problem number one. I have both B channels of my ISDN BRI provisioned with Additional Call Offerning, which allows me to receive additional calls while either (or both) B channels are in use with other calls. CAPI is sending the call-waiting message up to Asterisk when the 2nd call comes in on a given bearer channel, but Asterisk ignores it. There doesn’t appear to be any configuration options in capi.conf or elsewhere in Asterisk to deal with this. Worse than not being able to answer the additional call, the caller gets a fast busy and is left wondering what’s wrong with my phone setup. My guess is at this point, that answering an Additional Call Offering call is impossible / unimplemented in chan_capi and Asterisk. It looks like in Europe, noone has this Additional Call Offering service and instead use simple Call Deflection to ‘forward’ additional calls on a busy Bearer channel elsewhere (though elsewhere would presumably be off of the Asterisk system, so that would seem unacceptable also assuming you wanted the caller in question to be able to leave a message).

  3. ISDN Conference Calling. Same problem as #2. AFAIK, Asterisk has a limitation that it assumes only one call can be processed on a given BEARER channel of an ISDN BRI, period. This means that I have to tie up my entire BRI (both channels) to make a conference call. When I have ISDN phones connected to my BRI, I can have simultaneous conference calls going on both channels. With Asterisk, ISDN Conference calling appears to be impossible.

Does anyone have any thoughts / comments? It looks like i’m one of only a tiny handful of people to attempt to use Asterisk with an ISDN BRI in the United States. FYI, my ISDN BRI is provisioned with the International Ordering Code of S1, which gives me Call Hold, Conference Calling, Caller ID, and Additional Call Offering on both SPIDS.

One more problem, this one again, probably my fault:

  1. I do not get call progress indication (ringing tones in my headset when I dial out to the PSTN from my SIP phone). No configuration of ‘b’ or ‘B’ in my dialstring to manipulate the Early B3 disconnect / progress toggling has any effect. When I dial out, I hear nothing until the other party answers.

I fixed problem#4. Not only did I have to specify the /B like this:

exten => _18XXNXXXXXX,4,Dial(CAPI/g1/${EXTEN}/B)

which didn’t work, I had to do it like this:

exten => _NXXXXXX,6,Dial(CAPI/g2/${EXTEN}/B,60,r)

with the ‘60’ I believe being the timeout value (if no one answers in 60 seconds the call times out), but I had to have that trailing ‘,r’ in there). Oh well. learning!

the README that comes with the make file gives better information on how to implement the ISDN HOLD, but I’m still looking for a dumned down example of how to do it in my extensions.conf.

Lastly, as far as Additional Call Offering call processing (call waiting), I communicated with Armin and it looks like i’m out of luck for now. Stinks.