[VoIP] Zaptel end-of-dialing

Greg Blakely greg at vyger.net
Thu Sep 6 14:29:05 CDT 2007


The problem with this scenario is that I need to know ahead of time how
many digits will be dialed.

What I need is some way to tell asterisk, "Yup, I'm done.  Take however
many digits I just sent, and then strip the # off the end." 

> -----Original Message-----
> From: voip-bounces at ckts.info [mailto:voip-bounces at ckts.info] 
> On Behalf Of Shane Young
> Sent: Thursday, September 06, 2007 2:22 PM
> To: voip at ckts.info
> Subject: Re: [VoIP] Zaptel end-of-dialing
> 
> Again, there are several ways to skin a cat (or dialplan)...
> 
> If you dial 18217301#
> Your EXTEN variable is set to 18217301#.
> 
> When it's passed to the macro, the variable name is 
> MACRO_EXTEN You could use ${MACRO_EXTEN:0:11) to skip 0 
> digits and use the next 11 digits, this eliminating the 12th digit (#)
> 
> The nice thing is you can use the same thing even if you 
> don't dial the #.
> It will still skip 0 digits and use the next 11.
> 
> 
> Another way might be to do something like this:
> 
> [somecontext]
> exten => _1X.,1,Macro(dial-cnet)
> exten => _1X.#,1,GoTo(somecontext,${EXTEN:0:11},1)
> 
> The first one would just fire after the timer and follow the 
> normal path.
> The second one would loop back and "start over" as if you had 
> dialed the number without the # ad the end, but would not 
> wait for any addtional digits.  It would then pick the first entry.
> 
> 
> 
> 
> 
> the voip-info wiki gives information about the use of 
> substrings within a variable:
> 
> http://www.voip-info.org/wiki/index.php?page=Asterisk+variables
> 
> Substrings
>     ${foo:offset:length}
> 
> returns a substring of the string foo, beginning at offset 
> offset and returning the next length characters.
> 
> If offset is negative, it is taken leftwards from the right 
> hand end of the string.
> If length is omitted or is negative, then all the rest of the 
> string beginning at offset is returned.
> 
> Examples:
> 
>     ${123456789:1}        - returns the string 23456789
>     ${123456789:-4}       - returns the string 6789
>     ${123456789:0:3}      - returns the string 123
>     ${123456789:2:3}      - returns the string 345
>     ${123456789:-4:3}     - returns the string 678
> 
> Examples of use:
> 
>     exten => _NXX.,1,SetVar(areacode=${EXTEN:0:3})   - get 
> the first 3  
> digits of ${EXTEN}
>     exten => _516XXXXXXX,1,Dial(${EXTEN:3})          - get 
> all but the  
> first 3 digits of ${EXTEN}
>     exten => 100,1,SetVar(whichVowel=4)
> 
>     exten => 100,2,SetVar(foo=AEIOU:${whichVowel}:1) - sets 
> ${foo} to the single letter 'U'
> 
> 
> 
> 
> Quoting Greg Blakely <greg at vyger.net>:
> 
> > Okay. That works, except for figuring out how to send the correct 
> > digits to the dial-cnet macro.
> >
> > I am wondering if it wouldn't be easiest to modify the 
> dial-cnet macro 
> > to ignore the # sign.  Any ideas on how to do that?  Or to send the 
> > macro the correct digits, for that matter?
> > _______________________________________________
> > VoIP mailing list
> > VoIP at ckts.info
> > http://lists.ckts.info/mailman/listinfo/voip
> > Project Web Page: http://www.ckts.info/
> >
> 
> --Shane
> +1-821-7311 CNET
> 
> 
> _______________________________________________
> VoIP mailing list
> VoIP at ckts.info
> http://lists.ckts.info/mailman/listinfo/voip
> Project Web Page: http://www.ckts.info/
> 
> 


More information about the VoIP mailing list