AEL and CUT

CUT doesn’t seem to work like I would expect.

This works:

macro route-enum-2(exten, Timeout, DialOpts, dns) { Set(ENLCOUNT=${ENUMLOOKUP(+${exten},ALL,c,,${dns})}); if (${ENLCOUNT} > 0 ) { for(count=1;${count} <= ${ENLCOUNT};count=${count} + 1) { Set(ENL=${ENUMLOOKUP(+${exten},ALL,,${count},${dns})}); if (${LEN(${ENL})} > 0) { if ("${ENL:0:3}" = "sip") { Dial(SIP/${ENL:4},${Timeout},o${DialOpts}); } else if ("${ENL:0:4}" = "iax2") { Dial(IAX2/${ENL:5},${Timeout},o${DialOpts}); } else if ("${ENL:0:4}" = "h323") { Dial(H323/${ENL:5},${Timeout},o${DialOpts}); }; }; }; }; };

This doesn’t work:

switch (${CUT(ENL,:,1)}) { case sip: Dial(SIP/${ENL:4},${Timeout},o${DialOpts}); break; case iax2: Dial(IAX2/${ENL:5},${Timeout},o${DialOpts}); break; case h323: Dial(H323/${ENL:5},${Timeout},o${DialOpts}); break; default: NoOp(blah); };

Asterisk 1.4.11, gcc 4.1.2, glibc 2.5, amd64

Is my usage wrong?

bugs.digium.com/view.php?id=10870