Asterisk AGI Framework для IVR; Альтернатива адгезии? - PullRequest
1 голос
/ 19 сентября 2008

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

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

Ответы [ 9 ]

2 голосов
/ 18 декабря 2008

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

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

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

1 голос
/ 29 января 2009

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

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

1 голос
/ 12 ноября 2008

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

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

0 голосов
/ 31 мая 2010

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

0 голосов
/ 11 марта 2010

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

0 голосов
/ 12 августа 2009

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

0 голосов
/ 20 февраля 2009

Я широко использовал 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).

0 голосов
/ 19 сентября 2008

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

0 голосов
/ 19 сентября 2008

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

...