Можно ли собрать несколько значений с помощью Twilio IVR? - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть функция просмотра, которая должна собирать несколько фрагментов информации за один вызов (это быстрый исходящий вызов - пользователь отвечает и должен быть немедленно запрошен для этих точек данных) на основе данных, извлеченных из БД. Я хотел бы, чтобы функция view выполняла что-то вроде следующего:

group_id = <get group id>
params = data_element_select_params.DataElementSelectParams(group_id=group_id)
data_elements = worker.select(params) # function I wrote which returns a list of objects, in this case objects called DataElements

vr = VoiceResponse()
say_msg = 'Enter {element}, then press star.'

for element in data_elements:
    say_message = say_msg.format(element=element.name)
    <Gather input with say_message and save it>

Может ли это быть достигнуто без перенаправления на один и тот же URL снова и снова? Я не видел никакого другого решения, и я бы предпочел не постоянно перенаправлять на один и тот же URL-адрес, поскольку нам придется снова получать список элементов из БД для каждого элемента.

Извиняюсь, если что-то неясно - пожалуйста, укажите это, и я уточню как можно быстрее.

1 Ответ

0 голосов
/ 13 ноября 2018

Разработчик Twilio здесь.

Вы можете использовать только один <Gather> для каждого документа TwiML, поэтому нет, вы не можете задавать несколько вопросов и делать несколько входов в рамках одного веб-крюка.

Вам нужно будет перенаправить URL-адрес, который получает входные данные от каждого <Gather>, а затем задать следующий вопрос.

Чтобы не извлекать все элементы из БД каждый раз, вы можете исследовать сохранение элементов в сеансе HTTP и извлечение их оттуда. Twilio - это хорошо ведущийся HTTP-клиент , поэтому вы можете использовать такие вещи, как файлы cookie, для хранения информации о текущем звонке / разговоре.

...