fix(agi): обрыв диалога — отдаём результат в БД (иначе звонок задним числом записывался как «не взял трубку»)
This commit is contained in:
parent
c4e2c4a181
commit
feb3fc1b07
|
|
@ -37,6 +37,26 @@ getvar () { # $1=имя -> VAR
|
||||||
}
|
}
|
||||||
play () { say "STREAM FILE $1 \"\""; }
|
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
|
# Channel-переменные из call-файла (Setvar). Читаем ДО диалога, т.к. AGI
|
||||||
# не видит их как bash-переменные — только через GET VARIABLE.
|
# не видит их как bash-переменные — только через GET VARIABLE.
|
||||||
getvar API_URL; API_URL=$VAR
|
getvar API_URL; API_URL=$VAR
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue