Hi I have set up an asterisk system which allows the use of Overlap Dialing from SIP handsets. In order to do this I had to list the various patterns of numbers which can be dialed in the UK. We also dial with a prefix of '9' for and outside line so much of my dialplan looks like this :- [084x] exten => _9084XXXXXXXX,1,Macro(dialout-pstn) [outbound-national] exten => _90[1-2]XXXXXXXXX,1,Macro(dialout-pstn) [087x] exten => _9087XXXXXXXX,1,Macro(dialout-pstn) [0906] exten => _90906XXXXXXX,1,Macro(dialout-pstn) ... I was able to download the mappings for 0800 numbers and other special ranges from the ofcom website and I have incorporated these. For international dialing I have not been able to find an easy way of doing this so I created the folling contexts whcih make use of the WaitExten feature :- [outbound-international] exten => _900XXXXXXXXXX,1,Set(oldexten=${EXTEN}) exten => _900XXXXXXXXXX,2,Goto(international-number-length-check,s,1) [international-number-length-check] exten => s,1,Answer exten => s,2,WaitExten(8) exten => _X,1,Set(enddigits=${EXTEN}) exten => _X,2,NoOp(${TIMESTAMP} ok 13 digits - we dial ${oldexten}${enddigits}) exten => _X,3,Dial(${OUTBOUNDTRUNK}/${oldexten}${enddigits}) exten => _X,4,Congestion() exten => _X,104,Busy() exten => _XX,1,Set(enddigits=${EXTEN}) exten => _XX,2,NoOp(${TIMESTAMP} ok 14 digits - we dial ${oldexten}${enddigits}) exten => _XX,3,Dial(${OUTBOUNDTRUNK}/${oldexten}${enddigits}) exten => _XX,4,Congestion() exten => _XX,104,Busy() exten => _XXX,1,Set(enddigits=${EXTEN}) exten => _XXX,2,NoOp(${TIMESTAMP} ok 15 digits - we dial ${oldexten}${enddigits}) exten => _XXX,3,Dial(${OUTBOUNDTRUNK}/${oldexten}${enddigits}) exten => _XXX,4,Congestion() exten => _XXX,104,Busy() exten => t,1,Dial(${OUTBOUNDTRUNK}/${oldexten}) exten => t,2,Congestion() exten => t,102,Busy() This works fairly well but I have noticed that occasionally the WaitExten feature does not seem to catch the first digits if they are dialed too quickly. It is almost as if there is a some sort of delay and the thirteenth digit is sometimes missed. Can anyone suggest why WaitExten might be ocasionally missing a digit or can anyone think of a better way of doing this? Thanks Ben Thompson
i can see from your dialplan that all the extensions except international extension are of 12 digits. International extensions are of 13 or more digits. here is what you can do with the international extensions, all other extensions remain the same: [084x] exten => _9084XXXXXXXX,1,Macro(dialout-pstn) [outbound-national] exten => _90[1-2]XXXXXXXXX,1,Macro(dialout-pstn) [087x] exten => _9087XXXXXXXX,1,Macro(dialout-pstn) [0906] exten => _90906XXXXXXX,1,Macro(dialout-pstn) [outbound-international] exten => _900XXXXXXXXXX.,1,Dial(SIP/${OUTBOUNDTRUNK@${EXTEN}}) exten => _900XXXXXXXXXX.,2,Congestion If you see closely i have put a dot at the end of each international extension, this will allow you to dial atleast 13 digits. so no need to crate extension of every length. On Mon, Jul 21, 2008 at 9:10 PM, Ben Thompson <bt4 at york.ac.uk> wrote:> Hi > > I have set up an asterisk system which allows the use of Overlap Dialing > from > SIP handsets. In order to do this I had to list the various patterns of > numbers > which can be dialed in the UK. We also dial with a prefix of '9' for and > outside > line so much of my dialplan looks like this :- > > [084x] > exten => _9084XXXXXXXX,1,Macro(dialout-pstn) > > [outbound-national] > exten => _90[1-2]XXXXXXXXX,1,Macro(dialout-pstn) > > [087x] > exten => _9087XXXXXXXX,1,Macro(dialout-pstn) > > [0906] > exten => _90906XXXXXXX,1,Macro(dialout-pstn) > > ... > > > I was able to download the mappings for 0800 numbers and other special > ranges > from the ofcom website and I have incorporated these. For international > dialing > I have not been able to find an easy way of doing this so I created the > folling > contexts whcih make use of the WaitExten feature :- > > [outbound-international] > exten => _900XXXXXXXXXX,1,Set(oldexten=${EXTEN}) > exten => _900XXXXXXXXXX,2,Goto(international-number-length-check,s,1) > > [international-number-length-check] > exten => s,1,Answer > exten => s,2,WaitExten(8) > > exten => _X,1,Set(enddigits=${EXTEN}) > exten => _X,2,NoOp(${TIMESTAMP} ok 13 digits - we dial > ${oldexten}${enddigits}) > exten => _X,3,Dial(${OUTBOUNDTRUNK}/${oldexten}${enddigits}) > exten => _X,4,Congestion() > exten => _X,104,Busy() > > exten => _XX,1,Set(enddigits=${EXTEN}) > exten => _XX,2,NoOp(${TIMESTAMP} ok 14 digits - we dial > ${oldexten}${enddigits}) > exten => _XX,3,Dial(${OUTBOUNDTRUNK}/${oldexten}${enddigits}) > exten => _XX,4,Congestion() > exten => _XX,104,Busy() > > exten => _XXX,1,Set(enddigits=${EXTEN}) > exten => _XXX,2,NoOp(${TIMESTAMP} ok 15 digits - we dial > ${oldexten}${enddigits}) > exten => _XXX,3,Dial(${OUTBOUNDTRUNK}/${oldexten}${enddigits}) > exten => _XXX,4,Congestion() > exten => _XXX,104,Busy() > > exten => t,1,Dial(${OUTBOUNDTRUNK}/${oldexten}) > exten => t,2,Congestion() > exten => t,102,Busy() > > > This works fairly well but I have noticed that occasionally the WaitExten > feature does > not seem to catch the first digits if they are dialed too quickly. It is > almost as if > there is a some sort of delay and the thirteenth digit is sometimes missed. > > Can anyone suggest why WaitExten might be ocasionally missing a digit or > can anyone think > of a better way of doing this? > > Thanks > > Ben Thompson > > > > _______________________________________________ > -- 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 >-- Best Regards Rizwan Hisham -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20080722/757893a8/attachment.htm
On Mon, 21 Jul 2008, Ben Thompson wrote:> Hi > > I have set up an asterisk system which allows the use of Overlap Dialing from > SIP handsets. In order to do this I had to list the various patterns of numbers > which can be dialed in the UK. We also dial with a prefix of '9' for and outside > line so much of my dialplan looks like this :- > > [084x] > exten => _9084XXXXXXXX,1,Macro(dialout-pstn) > > [outbound-national] > exten => _90[1-2]XXXXXXXXX,1,Macro(dialout-pstn)You'd better learn more about the UK before going further... Don't forget that we now have 03 numbers too. And UK geographic numbers can be 10 or 11 digits long. Mine is 11 digits, but the town down the road from me is 10 digits. (So locally, I can dial a 5 or 6 digit number!)> [087x] > exten => _9087XXXXXXXX,1,Macro(dialout-pstn) > > [0906] > exten => _90906XXXXXXX,1,Macro(dialout-pstn)york.ac.uk and you're allowing 0906 numbers? Where do I sign up ;-)> I was able to download the mappings for 0800 numbers and other special ranges > from the ofcom website and I have incorporated these. For international dialing > I have not been able to find an easy way of doing this so I created the folling > contexts whcih make use of the WaitExten feature :- > > [outbound-international] > exten => _900XXXXXXXXXX,1,Set(oldexten=${EXTEN}) > exten => _900XXXXXXXXXX,2,Goto(international-number-length-check,s,1) > > [international-number-length-check] > exten => s,1,Answer > exten => s,2,WaitExten(8) > > exten => _X,1,Set(enddigits=${EXTEN}) > exten => _X,2,NoOp(${TIMESTAMP} ok 13 digits - we dial ${oldexten}${enddigits}) > exten => _X,3,Dial(${OUTBOUNDTRUNK}/${oldexten}${enddigits}) > exten => _X,4,Congestion() > exten => _X,104,Busy() > > exten => _XX,1,Set(enddigits=${EXTEN}) > exten => _XX,2,NoOp(${TIMESTAMP} ok 14 digits - we dial ${oldexten}${enddigits}) > exten => _XX,3,Dial(${OUTBOUNDTRUNK}/${oldexten}${enddigits}) > exten => _XX,4,Congestion() > exten => _XX,104,Busy() > > exten => _XXX,1,Set(enddigits=${EXTEN}) > exten => _XXX,2,NoOp(${TIMESTAMP} ok 15 digits - we dial ${oldexten}${enddigits}) > exten => _XXX,3,Dial(${OUTBOUNDTRUNK}/${oldexten}${enddigits}) > exten => _XXX,4,Congestion() > exten => _XXX,104,Busy() > > exten => t,1,Dial(${OUTBOUNDTRUNK}/${oldexten}) > exten => t,2,Congestion() > exten => t,102,Busy() > > > This works fairly well but I have noticed that occasionally the WaitExten feature does > not seem to catch the first digits if they are dialed too quickly. It is almost as if > there is a some sort of delay and the thirteenth digit is sometimes missed.> Can anyone suggest why WaitExten might be ocasionally missing a digit or can anyone think > of a better way of doing this?I'm sure there are some codes in Germany that are only about 7 digits long... (My brothers is 9 digits though + 49 for the country takes it to 11 + 00 is 13) Where do you draw the line? I think it's always going to be hard to guess every country (and our own!) dialling lengths... Personally I think you're making life hard for yourself, although potentially nice for the users, I guess. Or maybe you want to look at the ! match pattern, or just give-up on overlap dialling. I like to be able to 'edit' numbers on my phone before hitting the 'send' button. Too used to doing in on mobiles and DECT handsets or years now I guess, and this is what I teach my customers - pretend the handset is a mobile, dial the number, push 'send' (or the "green button", or the 'tick' key, or whatever the phone uses to transmit the number) So I have: exten => _0.,1,Noop(Outside line request: Dialled 0... for ${EXTEN}) exten => _0.,n,Macro(dialOut,${EXTEN}) exten => _0.,n,Hangup() ; Dial 9 for an outside line: exten => _9.,1,Noop(Outside line request: Dialled 9... for ${EXTEN:1}) exten => _9.,n,Macro(dialOut,${EXTEN:1}) exten => _9.,n,Hangup() I make sure the SIP phones have early/overlap dial turned off, and it "just works" for me... (That Macro does other "stuff" for me, it might as well be a Dial(${OUTBOUNDTRUNK}/${ARG1}) as far as this is concerned) Gordon
On Mon, Jul 21, 2008 at 05:10:15PM +0100, Ben Thompson wrote:> [outbound-international] > exten => _900XXXXXXXXXX,1,Set(oldexten=${EXTEN}) > exten => _900XXXXXXXXXX,2,Goto(international-number-length-check,s,1) > > [international-number-length-check] > exten => s,1,Answer > exten => s,2,WaitExten(8) > > exten => _X,1,Set(enddigits=${EXTEN}) > exten => _X,2,NoOp(${TIMESTAMP} ok 13 digits - we dial ${oldexten}${enddigits}) > exten => _X,3,Dial(${OUTBOUNDTRUNK}/${oldexten}${enddigits}) > exten => _X,4,Congestion() > exten => _X,104,Busy() > > exten => _XX,1,Set(enddigits=${EXTEN}) > exten => _XX,2,NoOp(${TIMESTAMP} ok 14 digits - we dial ${oldexten}${enddigits}) > exten => _XX,3,Dial(${OUTBOUNDTRUNK}/${oldexten}${enddigits}) > exten => _XX,4,Congestion() > exten => _XX,104,Busy() > > exten => _XXX,1,Set(enddigits=${EXTEN}) > exten => _XXX,2,NoOp(${TIMESTAMP} ok 15 digits - we dial ${oldexten}${enddigits}) > exten => _XXX,3,Dial(${OUTBOUNDTRUNK}/${oldexten}${enddigits}) > exten => _XXX,4,Congestion() > exten => _XXX,104,Busy() > > exten => t,1,Dial(${OUTBOUNDTRUNK}/${oldexten}) > exten => t,2,Congestion() > exten => t,102,Busy() > > > This works fairly well but I have noticed that occasionally the WaitExten feature does > not seem to catch the first digits if they are dialed too quickly. It is almost as if > there is a some sort of delay and the thirteenth digit is sometimes missed.In answer to my own email I have found that the Background() function works slightly better :- [outbound-international] exten => _900XXXXXXXXXX,1,Set(oldexten=${EXTEN}) exten => _900XXXXXXXXXX,2,Goto(international-number-length-check,s,1) [international-number-length-check] exten => s,1,Background() exten => _X,1,Set(enddigits=${EXTEN}) exten => _X,2,NoOp(${TIMESTAMP} ok 13 digits - we dial ${oldexten}${enddigits}) exten => _X,3,Goto(international-dialout,${oldexten}${enddigits},1) exten => _XX,1,Set(enddigits=${EXTEN}) exten => _XX,2,NoOp(${TIMESTAMP} ok 14 digits - we dial ${oldexten}${enddigits}) exten => _XX,3,Goto(international-dialout,${oldexten}${enddigits},1) exten => _XXX,1,Set(enddigits=${EXTEN}) exten => _XXX,2,NoOp(${TIMESTAMP} ok 15 digits - we dial ${oldexten}${enddigits}) exten => _XXX,3,Goto(international-dialout,${oldexten}${enddigits},1) exten => t,1,NoOp(timeout so dial just 12 digits ${oldexten}) exten => t,2,Goto(international-dialout,${oldexten}${enddigits},1) [international-dialout] exten => _900XXXXXXXXXX,1,Macro(dialout-pstn) exten => _900XXXXXXXXXXX,1,Macro(dialout-pstn) exten => _900XXXXXXXXXXXX,1,Macro(dialout-pstn) exten => _900XXXXXXXXXXXXX,1,Macro(dialout-pstn) In general I have found that Overlap Dialing works very well and it is a worthwhile feature to have. If there are any others in the UK who would like to collaborate with me on maintaining an up to date list of UK mappings please let me know. I would be happy to maintain a webpage or somthing like that where people could access the info in an asterisk friendly format. Ben Thompson