All pastes #502430 Raw Edit

Something

public text v1 · immutable
·published 2007-05-22 14:50 UTC
rendered paste body
macro 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;
	};
};