Шрифт:
# cd /usr/src # или любая папка, в которую вы хотите загрузить исходный код
# svn coasterisk-gui
Установить GUI очень просто:
# cd asterisk-gui
# ./configure
# make
# make install
# make samples
После выполнения представленных выше команд файлы GUI будут установлены и станут частью вашего дистрибутива Asterisk.
Настройка httpd.conf и manager.conf
Конфигурация веб-сервера Asterisk для обработки запросов AJAM включает несколько простых шагов. В файл /etc/asterisk/http.conf необходимо добавить (или раскомментировать) следующее:
[general] enabled=yes
enablestatic=yes ; без этого вы можете только посылать команды AMI, ; но не отображать html-содержимое
bindaddr=0.0.0.0 ; адрес, на который HTTP-сервер Asterisk должен отвечать bind po rt=8088 ; порт, по которому HTTP-сервер Asterisk должен отвечать prefix=asterisk ; будет формировать часть URI, соответствующую имени папки
Теперь, когда httpd.conf настроен, можно передать содержимое в броузер. Чтобы веб-клиент мог посылать команды в Asterisk, необходимо внести некоторые изменения в Asterisk Manager Interface (AMI). Для этого добавим несколько строк в раздел [general] файла manager.conf и учетную запись пользователя с набором разрешений config. Откроем файл manager.conf и отредактируем его следующим образом: [general]
enabled=yes ; возможно, AMI уже активирован, если используется для других целей webenabled=yes ; это активирует взаимодействие между веб-сервером Asterisk и AMI
[asterisk_http] ; пользователю может быть присвоено любое имя secret = gooey
read = system,call,log,verbose,command,agent,user,config write = system,call,log,verbose,command,agent,user,config
Сохраните изменения и перезапустите Asterisk. У вас должно получиться подключиться в веб-серверу Asterisk посредством следующего URI:
http://localhost:8088/asterisk/static/ajamdemo.html Если по какой-то причине возникли проблемы с переходом на демонстрационную страницу, вернитесь в папку исходного кода asterisk-gui и выполните команду
# make checkconfig
Вот и все! Asterisk теперь поддерживает веб-доступ. Пора переходить к реальной разработке с использованием Asterisk GUI.
Формирование Asterisk GUI
После установки файлов для Asterisk GUI можно приступать к формированию GUI. В следующих нескольких разделах поэтапно рассматриваются настройка и объединение различных компонентов с целью улучшения и расширения возможностей GUI.
Передача команд интерфейса Manager по HTTP
Asterisk GUI формирует команды для Asterisk, вызывая специально созданные URL на веб-сервере Asterisk. В этом разделе представлены примеры некоторых обычно используемых команд (действий) и соответствующие ответы веб-сервера. Эти URL AMI имеют следующую общую структуру:
http://hostname:8088/asterisk/rawman9action=KOMaHfla&.. . .пары параметр=значение... http://hostname:8088/asterisk/manager?action=KOMaHfla&. ...пары параметр=значение... http://hostname:8088/asterisk/mxml9action=KOMaHfla&... .пары параметр=значение.. .
Разница между URL rawman, manager и mxml важна. Веб-сервер экспортирует три разных представления интерфейса AMI. Если используется URL rawman, сервер возвращает в HTTP-ответе последовательность пар ключевое слово/значение. Если используется URL manager, сервер возвращает результат в HTML-формате. Аналогично, если используется URL mxml, сервер возвращает результаты в XML-формате. Для современных приложений в стиле Ajax формы rawman и mxml, пожалуй, более полезны [108] .
108
По той же причине людям намного проще использовать для отладки форму
manager.
Действия с параметрами, которые могут быть переданы на сервер, являются обычными командами интерфейса управления, описываемыми в приложении F. Обратите внимание: действия LOGIN и CHALLENGE уникальны тем, что посылаются не непосредственно в Asterisk, а обрабатываются интерфейсом Manager для аутентификации пользователя. Если пользователь не прошел аутентификацию, сервер не передает действие на обработку в Asterisk, а возвращает ошибку.
Ознакомимся с некоторыми широко используемыми действиями и рассмотрим, как их можно использовать для управления сервером.
LOGIN
Команда LOGIN аутентифицирует учетные данные для доступа к HTML- представлению интерфейса Manager. Как только вы зарегистрировались, Asterisk сохраняет в вашем броузере объект cookie (который действителен в течение времени, заданного настройкой httptimeout). Этот cookie используется для подключения к одному и тому же сеансу. URL
http://localhost:8088/asterisk/rawman?action=login&username= asterisk_http &secret=gooey
отправляет на веб-сервер команду на регистрацию, которая включает учетные данные. Если регистрация прошла успешно, сервер отвечает следующим образом: