Vlad1983 писал(а):у всех нормально у вас h
покажите контекст
у меня контекст на AEL. Вот кусок.
_5xxx => {
PEER_EXISTS=${EXISTS(${ODBC_AST(SELECT name FROM sip WHERE name=${EXTEN})})};
if(${PEER_EXISTS})
{
redial_number=${ODBC_AST(SELECT number FROM redirects WHERE mailbox=${EXTEN})};
redial_flag=!${ISNULL(${redial_number})};
voicemail=${ODBC_AST(SELECT voicemail FROM redirects WHERE mailbox=${EXTEN})};
email=${ODBC_AST(SELECT email FROM redirects WHERE mailbox=${EXTEN})};
if(${redial_flag})
{
redial_timeout=${ODBC_AST(SELECT timeout FROM redirects WHERE mailbox=${EXTEN})};
}
else
{
redial_timeout=${DEF_TIMEOUT};
};
&record(${EXTEN});
Dial(SIP/${EXTEN},${redial_timeout},tTr); // далее анализ DIALSTATUS если не дозвонились, либо таймаут ожидания вышел
switch("${DIALSTATUS}")
{
case "CHANUNAVAIL":
if(${voicemail}=1)
{
Wait(1);
Playback(ru/ru/vm-theperson);
Playback(ru/ru/vm-isunavail);
Playback(ru/ru/vm-intro);
VoiceMail(s${EXTEN});
}
else
{
if(${redial_flag})
{
goto office|${redial_number}|1;
}
else
{
Wait(2);
Playback(ru/ru/unavilibal);
Playback(ru/ru/try-again);
}
};
break;
case "NOANSWER":
if(${voicemail}=1)
{
Wait(1);
Playback(ru/ru/vm-theperson);
Playback(ru/ru/vm-isunavail);
Playback(ru/ru/vm-intro);
VoiceMail(s${EXTEN});
}
else
{
if(${redial_flag})
{
goto office|${redial_number}|1;
}
else
{
NoOp(Channel not answering);
Wait(2);
Playback(ru/ru/no-answer);
Playback(ru/ru/try-again);
}
};
break;
}
else
{
Wait(2);
Playback(ru/ru/pbx-invalid);
};
};
h => {
PEER_EXISTS=${EXISTS(${redial_number})};
if(${PEER_EXISTS})
{
if(${DIALSTATUS}=NOANSWER||${DIALSTATUS}=BUSY||${DIALSTATUS}=CANCEL||${DIALSTATUS}=CONGESTION)
{DeadAGI(sms.agi,7${redial_number:2},${CALLERID(number)});};
};
};
Если я втыкаю то, что в контексте h после DIAL, то нифига не работает
В данном случае DeadAGI, но я пробовал банальный NoOp - тоже не срабатывает