rendered paste bodymacro outbound (number, route1, route2, route3, route4, route5) {
if (${LEN(${CALLERID(number)})} < 10 & ${LEN(${CALLERID(number)})} > 0) {
if (${LEN(${DB(callerid/${CDR(accountcode)})})} > 9) {
CALLERID(number)=${DB(callerid/${CDR(accountcode)})};
} else
Set(CALLERID(number)=);
};
dialstart:
switch (${route1}) {
case dundi:
if (${number:0:2} = 00) {
&dundi-e164 (${number:2});
} else if (${number:0:1} = 0) {
&dundi-e164 (44${number:1});
} else
&dundi-e164 (${number});
break;
case provider1:
&dialout (IAX2/provider1/${number});
break;
case provider2:
&dialout (IAX2/provider2/${number});
break;
case provider3:
&dialout (IAX2/provider3/${number});
break;
case pstn:
&dialout (Zap/g1/${number});
break;
default:
NoOp (invalid route: ${route1});
};
if (${LEN(${route2})} > 0) {
route1=${route2};
} else {
Playtones (congestion);
Congestion ();
};
if (${LEN(${route3})} > 0)
route2=${route3};
if (${LEN(${route4})} > 0)
route3=${route4};
if (${LEN(${route5})} > 0)
route4=${route5};
goto dialstart;
};
// DIAL NUMBER (ignoring anything except busy)
macro dialout (dialstring) {
Dial (${dialstring},,TW);
switch (${DIALSTATUS}) {
case BUSY:
Playtones (busy);
Busy ();
break;
case CONGESTION:
Playtones (busy);
Busy ();
break;
};
};