Недавно я столкнулся с проблемой с глаголом TwiML <Hangup>
. У меня простая установка, которая работает следующим образом:
У меня есть номер Twilio, настроенный для приема входящих вызовов, и я настроен на использование корзины TwiML, которая выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Record timeout="5" transcribe="false" trim="trim-silence" maxLength="10"/>
<Hangup/>
</Response>
Цель заключалась в том, чтобы номер перехватил входящий звонок, записал с него не более 10 секунд звука, отключил тишину и затем положил трубку. Все это делает правильно, кроме зависания.
В этот момент вместо того, чтобы повесить трубку, после того, как запись закончится по достижении maxLength
10 секунд, начнется новая запись. Это продолжается до конца разговора и обычно приводит к 2-5 записям на звонок. Как будто глагол <Hangup>
полностью игнорируется. Вот пример того, что я имею в виду: Экран сведений о вызове Twilio
Я хотел бы знать, сталкивался ли кто-нибудь с этим раньше (и что вы сделали, чтобы обойти это), или что я могу сделать, чтобы мой вызов зависал правильно после записи. Мое текущее решение таково:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<!-- This is a hacky solution. I found by accident that passing an invalid action argument causes the call to forcibly hangup (after the recording is completed) - hence the action "breakcall" below. = -->
<Record timeout="5" transcribe="false" trim="trim-silence"
action="breakcall" maxLength="10"/>
</Response>
Однако это взлом, и я бы предпочел найти правильный способ сделать это.
Спасибо!