[asterisk-users] Logical AND (resent due to bounces)

James Sneeringer jsneerin at gmail.com
Mon May 26 09:47:06 CDT 2008


On Sun, May 25, 2008 at 6:17 AM, Adrian Marsh
<Adrian.Marsh at ubiquisys.com> wrote:
> I'm trying to figure out why in the below code, the PSTN_NUM variable is
> always amended
>
> exten => s,n,NoOp(${PSTN_NUM})
> exten => s,n,ExecIf( $[ "${PSTN_NUM:0:1}" != "0" ] & $[ ${LEN(${PSTN_NUM})}
> = 10 ]|Set|PSTN_NUM=001${PSTN_NUM})
> exten => s,n,NoOp(${PSTN_NUM})
>
> -- Executing [s at macro-setpstncli:8] NoOp("SIP/427-b7d0f518", "0123456789")
> in new stack
>     -- Executing [s at macro-setpstncli:9] ExecIf("SIP/427-b7d0f518", " 0 &
> 1|Set|PSTN_NUM=0010123456789") in new stack
>     -- Executing [s at macro-setpstncli:10] NoOp("SIP/427-b7d0f518",
> "0010123456789") in new stack

Remove the space between "ExecIf(" and "$[". It's causing the first
comparison to evaluate to the string " 0" (space-zero) and not the
digit 0, and a string will always evaluate to "true" if its length is
greater than zero.

-James



More information about the asterisk-users mailing list