IVR Разработка в Java
Я собираюсь разработать онлайн-приложение IVR с использованием Java (без АТС). В требованиях к программному обеспечению есть некоторые математические вычисления и связь с базой данных, которые я предпочитаю реализовывать на стороне Java.
Как вы знаете, для интеграции с Java готовы различные технологии, такие как JTAPI, Zanzibar OpenIVR, Moho, VoiceXML, CCXML, Jive, Prophecy, Voicent, Voxeo и т. Д.
Теперь вопрос: что является лучшим решением? Какой из них легче всего достичь? Какой из них имеет лучшую эффективность? Вы рекомендуете фреймворки с открытым исходным кодом? Есть ли Windows API для работы с системами IVR?
4 ответа
Если вы собираетесь использовать VoiceXML с Java, вам стоит взглянуть на Rivr, механизм диалога с открытым исходным кодом VoiceXML.
Rivr позволяет вам естественным образом кодировать ваш поток вызовов на языке Java. Таким образом, вы можете повторно использовать все доступные инструменты Java (например, отладчик, инфраструктуру модульного тестирования, инструмент тестирования покрытия) для разработки потока вызовов. Вы также получаете выгоду от всех своих функций IDE (рефакторинг, навигация по источникам, контроль версий и т. Д.).
API очень прост. Вы можете кодировать полный поток вызовов с помощью одного метода. Нет необходимости определять "состояния" или манипулировать шаблонами или файлами XML.
Интеграция с логикой на стороне сервера тривиальна, так как вы программируете только на стороне сервера.
Я знаю, что это "стандарты де-юре". Но вы также должны принять Asterisk(вместе с AGI/AMI) в качестве рассмотрения вашего проекта. Если вы решите попробовать Asterisk и Java, посмотрите http://astivetoolkit.org/, это может быть очень полезно.
Здесь слишком мало информации, чтобы дать прямой ответ, но я постараюсь дать вам некоторые основы.
Стандарты разработки приложений IVR - VoiceXML для диалога (взаимодействие с вызывающим абонентом) и CCXML для управления вызовами. Последний не так общедоступен. Есть также множество фирменных решений. Ваш выбор открытого стандарта по сравнению с проприетарным решением должен больше зависеть от привязки поставщика / решения. Даже с открытыми стандартами вы, вероятно, будете использовать пользовательские усовершенствования и иметь некоторую блокировку, но переносимость будет проще. Вы можете кодировать напрямую на телефонные платы (сложные и обычно плохо документированные, если вы новичок в телефонии) или работать с решениями, которые обеспечивают сквозные возможности. Я нахожу очень мало людей, портирующих приложения IVR, поэтому я бы сосредоточился на поддержке вашего приложения, функциях и простоте использования в вашем решении.
Выбор платформы запускает спектр. У вас есть предпосылка (на месте) и размещенные решения. В основном у вас есть высокопроизводительные корпоративные решения и бюджетные решения. Существует очень мало решений среднего уровня. Функции (возможности телефонии и интеграции) существенно различаются.
С точки зрения телефонии, ничего не принимайте как должное. В частности, переводы. Есть много способов перевести звонок. Как это будет сделано, будет зависеть от вашей связи. Аналоговая линия к CO (телефонная компания) может иметь несколько механизмов, и один из них, как правило, будет диктоваться вам. Не все телефонные платформы будут поддерживать то, что вам нужно. Обнаружение зависания, по крайней мере, на аналоговых линиях, также может поймать новичка. Размещенные решения, как правило, позволяют избежать большинства из этих проблем. Решения VoIP еще более сложны из-за совместимости между устройствами (да, есть стандарты, их много, с множеством дополнительных компонентов, а затем есть собственные варианты).
В частности, для Windows вы можете использовать Lync, но это сложно... хотя многие решения, которые вы изучите, будут сложными.
Короче говоря, нет лучшего решения. Ваши знания о технологиях, требованиях и бюджете помогут вам принять решение. Как правило, я работал с корпоративными IVR в конфигурациях, основанных на размещении и размещении, которые обычно используются в крупных центрах обработки вызовов. Я познакомился со многими решениями с открытым исходным кодом. Все на месте, вероятно, будет сложно из-за конфигурации системы и телефонии. Хостинговые решения, как правило, делают большую часть этого для вас.
Рики из Twilio здесь.
Для меня выбор лучшего инструмента для конкретной проблемы - одна из моих любимых задач разработчика. Один из способов выяснить это - заблокировать день и потратить час или два с каждым потенциальным вариантом. Несколько вопросов, которые я обычно исследую:
- С каким инструментом легче всего начать?
- Какой инструмент имеет лучшую документацию?
- Какой инструмент имеет заинтересованное сообщество, из которого я могу поучиться?
Я уверен, что есть еще много вопросов в зависимости от вашего сценария, который вы хотели бы изучить (соответствует ли он моему бюджету? Могу ли я использовать его с технологиями, которые я уже знаю и люблю?).
Если вы смотрите на создание IVR, у нас есть API, который может помочь. Мы только что упустили несколько новых учебных пособий, в том числе нетривиальное готовое к использованию приложение IVR с использованием Java.