Asterisk™: будущее телефонии Второе издание
Шрифт:
Action: UpdateConfig Filename: users.conf Reload: yes
SrcFilename: users.conf DstFilename: users.conf Action-00000: delcat Cat-00000: 6003 ActionID: 5298795987243
Конечно, мы лишь слегка коснулись возможностей Asterisk Manager Interface и рассмотрели лишь несколько из множества предоставляемых им разнообразных действий. Более подробный список доступных команд приведен в приложении F.
Flash Operator Panel
Flash Operator Panel (FOP) - один из наиболее популярных примеров, демонстрирующих мощь интерфейса Manager. FOP обеспечивает визу-
Рис. 10.1.
альное веб-представление вашей системы и возможность управления вызовами.
FOP чаще всего используется для того, чтобы дать возможность оператору-человеку видеть пользователей системы и устанавливать соединения между ними. Также он может применяться в инфраструктуре центра обработки звонков для обеспечения инициируемых CRM всплывающих экранов [105] .
105
Customer Relationship Management (CRM) - это интерфейс, используемый компаниями для помощи в управлении информацией и взаимодействиями клиентов.
Интерфейс управления 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 можно установить, используя следующую команду: