Наша текущая структура в настоящее время использует сочетание сервера и клиента. Вся наша логика в VoiceXML, а сервер используется для сохранения состояния и генерации компонентов распознавания. К сожалению, поскольку вся наша логика в voicexml, это затрудняет юнит-тестирование.
Вместо того, чтобы создавать большую страницу voicexml, которая поддиалогирует к каждому вопросу, и всю маршрутизацию, выполняемую на стороне клиента, отправляйте обратно на сервер после каждой коллекции, а затем решайте, куда идти. Очевидно, в этом есть свои плюсы и минусы, как указал Джим, но надежда состоит в том, чтобы абстрагировать часть IVR / callflow от VoiceXML и уменьшить зависимость от повышения квалификации разработчиков в VoiceXML.
Я смотрю на повторную разработку с использованием MVC3, создание различных представлений на основе базовых функций IVR, которые затем можно изменить на основе платформы VoiceXML для хостинга:
- Признание
- Запрашивает
- Перевод
- CTI Get / Set
- Disconnect
Я до сих пор работаю над тем, как создавать повторно используемые компоненты в MVC. Нужно ли создать что-то, для чего мы выполняем субдиалог, и вернуть результат (аналогично тому, как мы это делаем в настоящее время), или перенаправить на универсальный контроллер, а затем перенаправить на действие «Завершено» после завершения работы контроллера.