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?