Hi, Sorry this is so long, but I am reasonably desparate. I am having real fun with hooking an Avaya system to Asterisk using ISDN30. I have the ISDN signalling all sorted one way, and can pass calls from the "real world" (ie. the telco and asterisk) TO the avaya box, and it accepts that and sets up the call perfectly. The problem is that the Avaya box is signalling outbound calls using an "odd" method, which smacks of an analogue system with ISDN30 bolted on for a bit of a laugh. They send a q931 SETUP message. This contains the correct callerID, but only the first 1 to 4 of the dialled number's digits - The remainder of the number is I believe passed through using DTMF!!! From the look of it they intentionally do not send an IE 161 "Sending Complete" with the SETUP, so that the far end continues to listen for these DTMF tones, until it resolves to a legal number. My questions for some ISDN expert out there... Part 1) I need to receive the number in the SETUP, which I guess will be in ${EXTEN}, then I assume I can use Read() to collect DTMF digits, and check the dialplan to see if it is a locally terminated number. Once I am 100% sure it is not local, I can then dial the collected number through the Telco ISDN channel. Make sense? I think I can probably handle that. The problem is that I do not know whether I have received all digits from the Avaya at that point, which leads to... Part 2) Can I dial through Zaptel (via a Sangoma card if that makes a difference) without sending the IE 161 call complete? I thought that Dial(Zap/G1||D(${INITIAL})) might send the initial digits using DTMF, and then leave the channel open so that more DTMF could follow over the now bridged channel. In fact I get an immediate failure as if the far end thinks I have finished dialling. Can I assume that libpri does not currently support this method of dialling? If not, how might it be added? I can hack the code, I just need suggestions of where to look and how it might sanely be added :) Part 3) It is possible that the Avaya is not using DTMF at-all, and that it will send more bits of the called-party number using the D-Channel as you would expect, but Asterisk does not seem to be waiting for them. Can this be changed in Zaptel/Asterisk. Does anyone know the Avaya systems well enough to suggest how it might be working? Many many thanks for any feedback. Regards, Steve
Steve, what kind of Avaya system is this? They make several. On Tue, Aug 5, 2008 at 11:36 AM, Steve Davies <davies147 at gmail.com> wrote:> Hi, > > Sorry this is so long, but I am reasonably desparate. > > I am having real fun with hooking an Avaya system to Asterisk using > ISDN30. I have the ISDN signalling all sorted one way, and can pass > calls from the "real world" (ie. the telco and asterisk) TO the avaya > box, and it accepts that and sets up the call perfectly. > > The problem is that the Avaya box is signalling outbound calls using > an "odd" method, which smacks of an analogue system with ISDN30 bolted > on for a bit of a laugh. > > They send a q931 SETUP message. This contains the correct callerID, > but only the first 1 to 4 of the dialled number's digits - The > remainder of the number is I believe passed through using DTMF!!! From > the look of it they intentionally do not send an IE 161 "Sending > Complete" with the SETUP, so that the far end continues to listen for > these DTMF tones, until it resolves to a legal number. > > My questions for some ISDN expert out there... > > Part 1) I need to receive the number in the SETUP, which I guess will > be in ${EXTEN}, then I assume I can use Read() to collect DTMF digits, > and check the dialplan to see if it is a locally terminated number. > Once I am 100% sure it is not local, I can then dial the collected > number through the Telco ISDN channel. Make sense? I think I can > probably handle that. The problem is that I do not know whether I have > received all digits from the Avaya at that point, which leads to... > > Part 2) Can I dial through Zaptel (via a Sangoma card if that makes a > difference) without sending the IE 161 call complete? I thought that > Dial(Zap/G1||D(${INITIAL})) > might send the initial digits using DTMF, and then leave the channel > open so that more DTMF could follow over the now bridged channel. In > fact I get an immediate failure as if the far end thinks I have > finished dialling. Can I assume that libpri does not currently support > this method of dialling? If not, how might it be added? I can hack the > code, I just need suggestions of where to look and how it might sanely > be added :) > > Part 3) It is possible that the Avaya is not using DTMF at-all, and > that it will send more bits of the called-party number using the > D-Channel as you would expect, but Asterisk does not seem to be > waiting for them. Can this be changed in Zaptel/Asterisk. Does anyone > know the Avaya systems well enough to suggest how it might be working? > > Many many thanks for any feedback. > > Regards, > Steve > > _______________________________________________ > -- Bandwidth and Colocation Provided by http://www.api-digital.com -- > > AstriCon 2008 - September 22 - 25 Phoenix, Arizona > Register Now: http://www.astricon.net > > asterisk-users mailing list > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users >-------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20080805/a5ec0c1d/attachment.htm
2008/8/5 Steve Davies <davies147 at gmail.com>:> Hi, > > Sorry this is so long, but I am reasonably desparate. > > I am having real fun with hooking an Avaya system to Asterisk using > ISDN30. I have the ISDN signalling all sorted one way, and can pass > calls from the "real world" (ie. the telco and asterisk) TO the avaya > box, and it accepts that and sets up the call perfectly. > > The problem is that the Avaya box is signalling outbound calls using > an "odd" method, which smacks of an analogue system with ISDN30 bolted > on for a bit of a laugh. >[...] Okay, I think I am progressing in terms of my understanding. Firstly, I had missed out "overlapdial=yes" from the inbound PRI_NET channel from the Avaya. I have not been able to check, but that should allow Asterisk to collect the remaining digits until it finds a match in the dialplan. This begs the following questions: If an inbound overlapdial uniquely matches: exten => _XXXXX.,1,NoOp() Then I assume it will match after any 6 digits have been received, and drop into the dialplan. Given that this is a Zap channel, how do I receive any subsequent digits if they are dialled? Are they converted to inband DTMF??? I cannot find any useful documentation on what overlapdial=yes really does - Pointers welcome. Also, what if the overlap dialled number will never be unique, so I need to trap both: exten => _XXXXX.,1,NoOp() and exten => 01234567890,1,NoOp() Will overlapdial ever start executing one of those 2 patterns if I dial 01234567890 and nothing else? I appreciate that I could probably do the following instead - perhaps I've answered my own question? exten => 01234567890,1,NoOp() exten => _!.,1,Goto(passthru,${EXTEN},1) Then, importantly, how do I overlap dial outbound using Zaptel? The Dial() command is designed to send a number and wait for a response. There is no opportunity for further input AFAIK. Does enabling overlapdial=yes mean that I can Dial() and it will not assume the number is complete? Perhaps Asterisk simply cannot do this? It is a pretty horrible requirement! Regards, Steve