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