Фреймворк Asterisk AGI для IVR; Альтернатива адгезии?

Я пытаюсь начать писать масштабируемые приложения для телекоммуникаций с помощью Asterisk и Ruby. Первоначально я намеревался использовать для этого фреймворк Adhearsion, но он не обладает необходимой зрелостью, а его документация сильно отсутствует. AsteriskRuby кажется хорошей альтернативой, так как он хорошо документирован и написан Vonage.

Есть ли у кого-нибудь опыт развертывания приложений IVR на основе AGI? Какой фреймворк, если таковой имеется, вы использовали? Я бы даже рассмотрел не-Ruby, если это оправдано. Спасибо!


person Ted B    schedule 18.09.2008    source источник


Ответы (9)


Вам следует пересмотреть Adhearsion, так как вышла версия 0.8.1, а документация совсем недавно стала намного лучше. Посмотрите здесь:

http://adhearsion.com http://docs.adhearsion.com http://api.adhearsion.com

person Community    schedule 29.01.2009
comment
Приверженность значительно выросла даже после версии 0.8.1. Adhearsion 1.0 был выпущен в прошлом году и включал в себя множество обзоров документации профессиональным техническим писателем (Спасибо, Джастин!), а также бесчисленные исправления ошибок и новые функции. Сообщество вокруг него продолжает расти. Текущая версия Adhearsion 1.2.0 была выпущена пару недель назад. Начать нужно с http://adhearsion.com. - person Ben Klang; 06.09.2011

SipX действительно неправильный ответ. Я написал очень сложный VoiceXML на SipX 3.10.2, и все это было напрасно, так как SipX 4 отказывается от SipXVXML для интерфейса, который требует, чтобы IVR были скомпилированы JAR. Вдобавок ко всему Nortel объявляет о банкротстве, крайне плохая документация по версии с открытым исходным кодом, плохое соответствие стандартам VXML 2.0 (начиная с 3.10.2) и SIP (начиная с 3.10.2, плохо совместим с ITSP). Я буду аплодировать ему за блестящую работу, выполняющую то, для чего он был разработан, быть АТС. Но как IVR, если бы мне пришлось делать это снова, я бы сделал что-то другое. Не знаю что точно, но что-то другое. Сейчас я играю с Trixbox CE и работаю над привязкой его к JVoiceXML или VoiceGlue.

Кроме того, не читайте эту ерунду из SipX wiki. Он сравнивает SipX 3.10 с AsteriskNOW 1 и Trixbox 1. Да ладно. Это как сравнивать Mac OS X с Win95! Более реалистичным было бы сравнение SipX 4 (ожидается в 1 квартале 2009 г.) с Asterisk 1.6 и Trixbox 2.6, которое показало бы, что они достигают почти идентичных результатов, за исключением области масштабируемости и высокой доступности; SipX выигрывает в этом. Но для зрелости и стабильности я бы поддержал Asterisk.

Кроме того, мои реальные результаты производительности с SipXVXML:
Dell PowerEdge R200, Xeon Dual Core 3,2 ГГц, обрабатывает 17 вызовов без дрожания.
HP DL380 G4, Dual Xeon HT 3,2 ГГц, обрабатывает 30 вызовов перед длительными паузами. .

Я опубликую свои выводы, когда закончу оценку VoiceGlue и JVoiceXML, но я думаю, что в конечном итоге я напишу собственный PHP, вызываемый из AGI, поскольку все инструменты являются родными для Asterisk.

person Community    schedule 18.12.2008

Если вы ищете приложения «телекоммуникационного класса», вы можете изучить SipXecs вместо звездочки. Это функциональный, бесплатный продукт с открытым исходным кодом, коммерческая поддержка которого предоставляется Nortel. Вы можете взаимодействовать с ним через API веб-сервисов на рубине (или любом другом языке).

См. вики SipXecs для получения дополнительной информации. На этом сайте есть сравнительная матрица, сравнивающая функции с AsteriskNOW и TrixBox.

person Mark Thomas    schedule 12.11.2008

Других фреймворков действительно нет. Конечно, есть привязки AGI к каждому языку, но что касается полноценных фреймворков для разработки приложений телефонии, то мы пока еще не готовы. По крайней мере, в мире открытого исходного кода.

person bmdhacks    schedule 18.09.2008

Я задавал несколько связанных вопросов здесь, здесь и здесь. Я использую Microsoft Speech Server, и мне очень интересно узнать о любых существующих альтернативах, особенно с открытым исходным кодом. Вы можете найти полезную информацию в ответах на один из этих вопросов.

person Eric Z Beard    schedule 18.09.2008

Я широко использовал JAGIServer, хотя он больше не находится в разработке, и он довольно хорош и прост в использовании. . Это интерфейс для FastAGI, который я рекомендую вам использовать вместо простого AGI.

Новая версия этого фреймворка — OrderlyCalls, которая, кажется, имеет гораздо больше функций, но поскольку мне не нужно их, я не пробовал.

Я думаю, все зависит от того, что вы хотите делать с AGI; обычно у меня есть несколько сложный диалплан для сбора и проверки всего пользовательского ввода, а затем просто использую AGI для подключения к приложению Java, которое будет читать некоторые переменные, делать с ним некоторые вещи (выполнять операции, запросы и т. д. и т. д.), а затем устанавливает еще некоторые переменные на канале AGI и отключается. На этом этапе диалплан продолжается в зависимости от результата переменных, установленных приложением Java.

Это работает очень быстро, потому что у вас есть ServerSocket в приложении Java, которое получает входящие соединения от AGI, создает JAGIClient с новым сокетом и новым экземпляром JAGIProcessor (который вы должны написать, это объект, который будет делать все ваши действия). обработки), а затем запустите JAGIClient внутри пула потоков. Ваш JAGIProcessor реализует метод processCall, где он выполняет всю необходимую ему работу, взаимодействуя с JAGIClient, переданным в качестве параметра, для чтения и установки переменных или выполнения всего, что позволяет вам интерфейс AGI.

Таким образом, у вас постоянно работает приложение Java, и это может быть простое приложение J2SE или приложение EE в контейнере, не имеет значения; после запуска он будет очень быстро обрабатывать запросы AGI, поскольку не нужно запускать новые процессы (в отличие от простого AGI, который запускает программу для каждого вызова AGI).

person Chochos    schedule 20.02.2009

Сми снова. После переноса IVR моего клиента с SipX на Asterisk с использованием PHPAGI, я должен сказать, что не встречал никакой другой архитектуры, которая была бы хоть сколько-нибудь близкой к такой же простой и функциональной. Сегодня я проведу стресс-тестирование Trixbox CE 2.8 на том же оборудовании, на котором ранее тестировал SipX. Но я должен сказать, что использование PHPAGI для IVR и CLI Asterisk для отладки отлично сработало и позволило мне разрабатывать IVR намного быстрее, чем любая другая компания. Сегодня я работаю над внедрением TTS и ASR и опубликую результаты стресс-тестов, когда смогу.

person Community    schedule 12.08.2009

Простой небольшой гибкий Asterisk AGI IVR, написанный на PHP http://freshmeat.net/projects/phpivr

person busc    schedule 11.03.2010

Для небольших и простых приложений я использую Asterisk::AGI на Perl. Существуют также расширения для Fast AGI. Для более крупных приложений, таких как серверные части оператора VoIP, я использую что-то похожее на OrderlyCalls, написанное на Java (мой собственный код). OrderlyCalls отлично подходит для того, чтобы начать с движка java fastagi и расширить его до своих нужд.

person Darek    schedule 31.05.2010