Dan Fernandez
2004-May-12 15:58 UTC
[Asterisk-Users] problems with analog interface to PBX
Folks, For the last few days I've been trying to experiment with a Panasonic PBX and an X100P but have run into quite a few problems which I am not sure if they can be solved with this type of card (how about TDM01B?) 1) I wanted to use *'s IVR capabilities, so I routed the calls to the extension where the x100p was connected to. Asterisk should answer the call, playback a message, dial another PBX extension and if no one answers dial another extension (via IAX). The first problem I ran into was that the Flash application doesn't really work. To get around this I added another x100p to dial the new extension. The problem I ran here was that even though I specified in the Dial app to just dial for 30 seconds, it rang forever as if * cannot recongnize that no one had picked up. Asterisk does seem to detect hangups and busy tones (I have busydetect=yes and busycount=10) Am I trying to do something that the x100p is not capable of? Would making changes to the indications.conf help at all? 2) I would also like to use * for voicemail. The user should be able to dial the extension where the x100p is connected and asterisk recognized the extension the user is dialing and request for the password? Is this possible? Thanks Dan -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20040512/0043afc5/attachment.htm
On Wed, 12 May 2004, Dan Fernandez wrote:> Asterisk should answer the call, playback a message, dial another PBX > extension and if no one answers dial another extension (via IAX). > > The first problem I ran into was that the Flash application doesn't > really work. To get around this I added another x100p to dial the new > extension. The problem I ran here was that even though I specified in > the Dial app to just dial for 30 seconds, it rang forever as if * cannot > recongnize that no one had picked up. Asterisk does seem to detect > hangups and busy tones (I have busydetect=yes and busycount=10)In the absence of call progress detection settings, Zap analog channels tell Dial() that they are Connected more-or-less as soon as they have completed dialling (I see this on the display of my 7960: I see Proceeding for a second or two, then Connected, when I dial through an X100P). So, the timeout on your Dial() never gets triggered because the channel reports a connected call almost straight away. To do what you want, you would need callprogress=yes -- as long as your Panasonic PBX generates authentic US tones. busydetect will only detect busy (!), not ringback or congestion or any of the other tones you would need to make your application work the way you want -- call progress detection tries to do this for you. The bad news is that even if your PBX generates US tones, reports are that the detection is not too reliable.> Am I trying to do something that the x100p is not capable of? Would > making changes to the indications.conf help at all?It's not that the X100P can't do the job, it's more that analogue lines can't do the job :) Seriously, if your PBX generates US tones then give callprogress=yes a try. From my reading of the code, the tones specified in indications.conf are unrelated to the way the * DSP does call progress detection (have a look at functions like ast_dsp_call_progress() in dsp.c if you're really curious).> 2) I would also like to use * for voicemail. The user should be able to > dial the extension where the x100p is connected and asterisk recognized > the extension the user is dialing and request for the password? Is this > possible?On an analogue channel via an X100P, there is no "called number" indication. So you can't tell what number the caller dialled to reach you. If you wanted to use the * box as a voicemail-only machine, you could drop the caller straight into VoiceMailMain, but if you wanted other functions (conference rooms, VoIP gateway, etc) you would need to use an IVR... "press 1 to access Voicemail... press 2 to reach a Voice-over-IP user... press 3 to join a conference... ..." This doesn't really help your original need: to dial another number on the PBX and get control back if needed. If callprogress=yes doesn't work for you, you could try something like this (off the top of my head): exten => 4,1,Playback(trying-press-*-to-come-back) exten => 4,2,Dial(Zap/1/1234,,Hg) exten => 4,3,Goto(103) exten => 4,103,Playback(sorry-cant-reach) exten => 4,104,Goto(menu,s,1) On the Dial(), the option H enables caller hangup using '*', and g says go on in context when the destination channel hangs up. This would put your caller in the driver seat and get them to do the tone detection for you ;) Hope this helps, Vic Cross
On Wed, 12 May 2004, Dan Fernandez wrote:>Folks, > >For the last few days I've been trying to experiment with a Panasonic PBX >and an X100P but have run into quite a few problems which I am not sure >if they can be solved with this type of card (how about TDM01B?) > >1) I wanted to use *'s IVR capabilities, so I routed the calls to the > extension where the x100p was connected to. > >Asterisk should answer the call, playback a message, dial another PBX >extension and if no one answers dial another extension (via IAX). > >The first problem I ran into was that the Flash application doesn't >really work. To get around this I added another x100p to dial the new >extension. The problem I ran here was that even though I specified in the >Dial app to just dial for 30 seconds, it rang forever as if * cannot >recongnize that no one had picked up. Asterisk does seem to detect >hangups and busy tones (I have busydetect=yes and busycount=10)For about 6 months, we were using the same logical setup (a channelbank of FXO cards for a Merlin Legend switch, with asterisk doing incoming IVR / autoattendant, then transferring the calls out to the Legend, and handling voicemail). The first problem I encountered that I hadn't expected had to do with asterisk transferring the call back to the Legend. I did a Flash(), a SendDTMF(), and another Flash() - the Legend saw this as an attended transfer, and it caused some oddities. Turns out I needed to Flash(), SendDTMF(), Hangup(). Along the way, I found the Flash times that the legend was expecting to see, and adjusted them in the source code, so as to eliminate occasional flash detection problems. I'd take time to plug an analog set into the extension you have the X100P on, and make sure you can flash/transfer calls like you're expecting asterisk to. There's no reason (that I know of) that your flash can't give you exactly the behavior you're looking for. Good luck to you, Steve