[asterisk-dev] [Code Review] Add FEATURE() and FEATUREMAP() functions.
Mark Michelson
reviewboard at asterisk.org
Fri Apr 27 16:44:28 CDT 2012
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/1871/#review6103
-----------------------------------------------------------
Ship it!
Looks good.
- Mark
On April 24, 2012, 7:50 p.m., Russell Bryant wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/1871/
> -----------------------------------------------------------
>
> (Updated April 24, 2012, 7:50 p.m.)
>
>
> Review request for Asterisk Developers.
>
>
> Summary
> -------
>
> This patch adds two new dialplan functions: FEATURE() and FEATUREMAP().
> FEATURE() is indended to be used to allow customizing general feature
> settings on a per-channel basis. It currently allows you to set a
> custom parkingtime for a channel.
>
> FEATUREMAP() is similar, but allows customizing the built-in feature
> mappings on a per-channel basis. Currently you can customize the digit
> string for activating blind or attended transfers.
>
> More options and feature mappings could be added to this over time as
> desired.
>
>
> Diffs
> -----
>
> /trunk/main/features.c 363426
>
> Diff: https://reviewboard.asterisk.org/r/1871/diff
>
>
> Testing
> -------
>
> Using the following dialplan:
>
> 1) Dial 101, make sure normal transfers work (I tested transferring to 100).
> 2) Dial 102, make sure transfers using channel specific feature mappings work.
> 3) Dial 101, transfer to parking and observe normal parkingtime.
> 4) Dial 103, transfer to parking and verify that the custom parkingtime is used.
>
>
> [featuretest]
>
> include => parkedcalls
>
> ; Dummy extension for a Local channel. We'll call this and transfer it.
> exten => foo,1,Answer()
> same => n(wait),Wait(300)
> same => n,Goto(wait)
>
> ; Transfer target.
> exten => 100,1,Answer()
> same => n(wait),Wait(300)
> same => n,Goto(wait)
>
> ; Call this and make sure blindxfer and atxfer still work using default mappings.
> exten => 101,1,Answer()
> same => n,Verbose(0,Regular transfer test.)
> same => n,Verbose(0,Blind Transfer: ${FEATUREMAP(blindxfer)})
> same => n,Verbose(0,Attended Transfer: ${FEATUREMAP(atxfer)})
> same => n,Dial(Local/foo at featuretest,,tT)
>
> ; Call this and make sure blindxfer and atxfer work with custom mappings.
> exten => 102,1,Answer()
> same => n,Verbose(0,Custom transfer test.)
> same => n,Verbose(0,Setting blindxfer to '77' and atxfer to '88')
> same => n,Set(FEATUREMAP(blindxfer)=77)
> same => n,Set(FEATUREMAP(atxfer)=88)
> same => n,Verbose(0,Blind Transfer: ${FEATUREMAP(blindxfer)})
> same => n,Verbose(0,Attended Transfer: ${FEATUREMAP(atxfer)})
> same => n,Dial(Local/foo at featuretest,,tT)
>
> ; Test setting a parkingtime. Start with calling '101' and then parking.
> ; Then, call this and verify that the new parkingtime is used.
> exten => 103,1,Answer()
> same => n,Verbose(0,Test custom parkingtime.)
> same => n,Verbose(0,Blind Transfer: ${FEATUREMAP(blindxfer)})
> same => n,Dial(Local/foo at featuretest,,tTU(setparkingtime^3))
>
>
> ; GoSub routine for setting parkingtime on a dialed channel.
> [setparkingtime]
>
> exten => s,1,Verbose(0,Setting custom parkingtime to '${ARG1}')
> same => n,Verbose(0,Old value: ${FEATURE(parkingtime)})
> same => n,Set(FEATURE(parkingtime)=${ARG1})
> same => n,Verbose(0,New value: ${FEATURE(parkingtime)})
> same => n,Return()
>
>
> Thanks,
>
> Russell
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20120427/4d4663fc/attachment.htm>
More information about the asterisk-dev
mailing list