fix(agi): обрыв диалога — отдаём результат в БД (иначе звонок задним числом записывался как «не взял трубку»)
This commit is contained in:
parent
c4e2c4a181
commit
feb3fc1b07
|
|
@ -37,6 +37,26 @@ getvar () { # $1=имя -> VAR
|
|||
}
|
||||
play () { say "STREAM FILE $1 \"\""; }
|
||||
|
||||
# Обрыв: клиент положил трубку посередине диалога. Asterisk шлёт SIGHUP и убивает
|
||||
# скрипт — без этого обработчика результат не уходил в БД, и звонок задним числом
|
||||
# записывался как «не взял трубку», хотя человек ответил. Сохраняем то, что успели.
|
||||
on_interrupt () {
|
||||
if [ -z "$OUTCOME" ]; then
|
||||
if [ -n "$HALF" ]; then
|
||||
OUTCOME=no_input_half # день выбрал, время не назвал
|
||||
elif [ -n "$DAY" ] && [ "$DAY" != "0" ] && [ "$DAY" != "9" ]; then
|
||||
OUTCOME=no_input_half # день выбран, до времени не дошло
|
||||
elif [ -z "$ANY_DIGIT" ] && [ "$RING_SEC" -ge 20 ]; then
|
||||
OUTCOME=no_answer # объявление оператора: человека не было
|
||||
else
|
||||
OUTCOME=no_input_day # ответил, но ничего не нажал
|
||||
fi
|
||||
save
|
||||
fi
|
||||
exit 0
|
||||
}
|
||||
trap on_interrupt HUP TERM INT
|
||||
|
||||
# Channel-переменные из call-файла (Setvar). Читаем ДО диалога, т.к. AGI
|
||||
# не видит их как bash-переменные — только через GET VARIABLE.
|
||||
getvar API_URL; API_URL=$VAR
|
||||
|
|
|
|||
Loading…
Reference in New Issue