Чтение онлайн

ЖАНРЫ

Asterisk™: будущее телефонии Второе издание
Шрифт:

Интерфейс управления FOP представлен на рис. 10.1. Копию FOP можно найти по адресуhttp://www.asternic.org.

Настраивать FOP несложно, но все-таки конфигурация включает несколько этапов. Эти вопросы выходят за рамки рассмотрения данной книги, но на веб-сайте, посвященном FOP, можно найти самую свежую документацию с подробным описанием процесса установки и настройки.

FOP имеет фантастическое сообщество разработчиков и пользующуюся большой популярностью рассылку. Успеху FOP также способствовало его включение в Trixbox.

Разработка в Asterisk с использованием Adhearsion

Не так давно появилась новая технология, которая

может изменить порядок составления диалпланов [106] .

Новый подход к диалпланам

Asterisk повзрослела с точки зрения как технологии, так и ее популярности, но при все большем погружении в этот чудесный мир невозможно не столкнуться с ограничениями. Созданию сложных сценариев уровня предприятия с использованием только Asterisk будет сопутствовать множество трудностей применения логики диалплана. Несмотря на всю гибкость и мощь диалплана, как язык программирования он довольно слаб и существенно менее гибок, чем большинство современных языков сценариев. При реализации расширенной логики диалплан, GUI и даже более развитый AEL (Asterisk Extension Language) могут разочаровать. Создавая все более сложные диалпланы, можно столкнуться с трудностями в следующих вопросах:

106

Мы хотим поблагодарить Джея Филлипса (Jay Phillips) за предоставление идей и кода для данного раздела книги.

• Условные циклы и переходы по условию.

• Переменные.

• Сложные структуры данных.

• Интеграция с базой данных/LDAP.

• Использование библиотек сторонних производителей.

• Обмен и распространение функциональности VoIP.

• Расширение конфигурационных языков.

• Плохая обработка ошибок.

• Плохая обработка даты и времени.

• Сопоставление с шаблонами.

• Единообразие использования.

• Организация исходного кода.

Многие решают эти проблемы, реализуя расширенную логику во внешних программах на таких языках программирования, как Perl и PHP, и соединяясь с Asterisk через AMI и AGI. К сожалению, обеспечивая желаемую мощь, эти решения не всегда упрощают жизнь разработчика. Наоборот, они зачастую еще более усложняют процесс разработки. Используя существующие технологии в Asterisk, но имея целью обеспечение мощи и простоты, Adhearsion предлагает новый подход.

Разработка в Asterisk с использованием Adhearsion

Adhearsion - это инфраструктура с открытым исходным кодом (распространяемая по лицензии LGPL), которая разработана с целью улучшения реализации решений Asterisk. Она располагается поверх системы Asterisk, обрабатывая части или весь диалплан, и обеспечивает несколько уникальных способов управления доступом к Asterisk посредством ряда улучшенных интерфейсов. Adhearsion выполняется в отдельном процессе-демоне и интегрируется через уже представленные выше интерфейсы Gateway (AGI) и Manager (AMI), поэтому конфигурирование контекста на ее использование заключается просто в добавлении нескольких строк в диалплан или пользователя в файл manager.conf.

Adhearsion преимущественно использует высокодинамичный объектно-ориентированный язык программирования Ruby, но может поддерживать другие языки, такие как С или Java. В мире VoIP многие вещи существуют как концептуальные объекты, то есть применение объектно-ориентированного программирования вполне логично. У тех, кто хорошо знаком с Python, Perl или другими языками сценариев, не должно возникнуть проблем с Ruby. Для тех, кто не работал до этого с языками сценариев, Ruby - замечательное

начало.

Установка Adhearsion

Программное обеспечение Ruby, как правило, устанавливается с помощью диспетчера пакетов (аналогичного диспетчерам пакетов Linux, но созданного специально для платформы Ruby). Adhearsion входит в стандарт RubyGems, поэтому, если установлены Ruby и RubyGems, вы находитесь на расстоянии одной команды от установки Adhearsion.

Установка Ruby/RubyGems в AsteriskNOW

AsteriskNOW стандартно поставляется с Ruby, но без RubyGems (по причинам поддержки). К счастью, RubyGems можно без труда установить из коллекции Ruby rPath, используя следующую команду:

conary update rubygems=ruby.rpath.org@rpl:devel source /etc/profile

Установка Ruby/RubyGems в Linux

Диспетчеры пакетов многих дистрибутивов Linux содержат пакет Ruby, хотя в некоторых до сих пор нет RubyGems. В предпочтительном приложении управления разработкой и сопровождением ПО своего дистрибутива установите Ruby 1.8.5 или более позднюю версию и RubyGems, если он доступен. Если RubyGems недоступен в CentOS, Ruby можно установить, введя следующее: yum install ruby

Далее необходим RubyGems. Чтобы получить его, перейдите в /usr/ src/ и введите следующее:

wgettar zxvf rubygems-0.9.3.tgz cd rubygems-0.9.3 ruby setup.rb

Установка Ruby/RubyGems в Mac OS X

Фактически Ruby поставляется с OS X, но понадобится обновить его и установить RubyGems с MacPorts, диспетчера пакетов OS X. Если

MacPorts установлен (доступен наhttp://www.macports.org, если у вас его еще нет), Ruby и RubyGems можно установить, используя следующую команду:

sudo port install ruby rb-rubygems

Также может понадобиться добавить /opt/local/bin в переменную PATH в/etc/profile.

Ruby/RubyGems в Windows

Для Windows существует замечательная программа установки «одним щелчком». Этот инсталлятор за несколько минут автоматически установит Ruby, RubyGems и несколько других обычно используемых пакетов. Инсталлятор можно скачать по адресуhttp://rubyforge.org/ projects/rubyinstaller.

Установка Adhearsion из RubyGems

Выполнив для своей системы все представленные выше инструкции и получив Ruby и RubyGems, установите Adhearsion, используя следующую команду:

gem install adhearsion

Если обнаружены какие-либо зависимости, вероятно, необходимо разрешить их установку, чтобы обеспечить нормальную работу Adhearsion.

Создание нового проекта Adhearsion

После того как Adhearsion установлена, можно приступать к созданию и запуску нового проекта Adhearsion с использованием новой команды ahn, утилиты командной строки, которая выполняет в Adhearsion практически все.

Вот пример команды для создания нового проекта Adhearsion:

ahn create ~/новыйпроект При этом в заданной папке создается подпапка, содержащая папку и иерархию файлов, необходимые для работы Adhearsion. У вас сразу же должно получиться запустить новое приложение по команде

ahn start ~/новыйпроект Чтобы ознакомиться с системой Adhearsion, просмотрите папки приложения и прочитайте сопутствующую документацию.

Написание диалплана в Adhearsion

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

Поделиться с друзьями: