Пишу диалплан на AEL. Логика такая: при звонке на внутренний номер проверяется статус Jabber абонента, если он занят - переводим звонок на мобильный телефон этого абонента.
Вынес проверку занятости абонента в макрос. Но мне не понятно, правильно ли то, что у меня уже несколько строк в которых есть Dial? Если макрос отработает - то звонок уйдёт на мобильный и сработает Dial из макроса, если он не отработает то сработает Dial внутри контекста.
Код: Выделить всё
macro transfer-if-busy (ext) {
jid=REALTIME_FIELD(info,ipPhone,${ext},mail);
if ("${jid}"!="") {
jabb_psi=${JABBER_STATUS(jabber,${jid}/Psi+)};
jabb_qip=${JABBER_STATUS(jabber,${jid}/QIP)};
jabb_status=${jabb_psi} + ${jabb_qip} - 7;
if (${jabb_status}=3 | ${jabb_status}=4) {
mobile=${REALTIME_FIELD(info,ipPhone,${ext},otherMobile)};
Dial(IAX2/hut/${mobile});
HangUp();
};
};
return;
};
Код: Выделить всё
_2XX => {
&transfer-if-busy(${EXTEN});
Dial(SIP/${EXTEN},25,tT);
HangUp();
};