Как постоянно хранить данные в функциях Twilio?

Я пытаюсь записать звук во время разговора, обрабатывая его и возвращая результаты вызывающему абоненту, используя только Twilio.

Для элемента <Record> TwiML я могу предоставить отдельный URL-адрес обратного вызова после завершения записи (параметр action, таким образом, обработка вызовов будет перенесена туда) и еще один URL-адрес после сохранения записи.

Здесь возникают две проблемы.

Во-первых, обработка записанного звука может занять произвольное количество времени, поэтому я могу легко выйти за предел 5 секунд (к счастью, не в моем случае).

Во-вторых, мне нужно обмениваться данными между этими двумя обратными вызовами. Поскольку эти два обратных вызова выполняются отдельно, память между ними не распределяется. Я не нашел API для хранения каких-либо постоянных данных с помощью Twilio, поэтому похоже, что мне нужно полагаться на какую-то стороннюю службу базы данных.

Могу ли я как-то добиться этого, не полагаясь на какие-либо внешние службы для обработки этих обратных вызовов?


Примечание. Я нашел этот ответ StackOverflow, в котором говорится, что сохранение данных в Twilio невозможно, но вопрос задан другим. Я также надеюсь, что с тех пор технология развивалась.


person lezsakdomi    schedule 12.04.2019    source источник


Ответы (2)


Вы можете использовать Twilio Sync для сохранения между функциями. Вы можете узнать больше здесь.

Простой документ синхронизации должен соответствовать тому, что вам нужно.

Sync REST API

Тем не менее, почему бы вам просто не использовать Gather Виджет «Ввод по вызову» с речью, так как SpeechResult (преобразование речи в текст) будет автоматически доступен вам после завершения работы этого виджета через поток «пользователь что-то сказал».

person Alan    schedule 13.04.2019

Я не знаю, можете ли вы делать то, что хотите, в функциях времени выполнения, но вы можете делать это в Studio, если вам нужна только постоянство в рамках одного потока вызовов. В Studio есть «переменные потока», которые можно задавать и изменять в потоке с помощью жидкости. Я использую его для разделения, объединения и преобразования различных входных данных. Если вы хотите, чтобы данные сохранялись после одного вызова, вам нужно использовать что-то внешнее.

person mike    schedule 12.04.2019