конфигурации для файла extensions.conf. Это всего лишь малая часть того, что можно рассказать об интерфейсе AJAM и Asterisk GUI, но данный пример служит только для того, чтобы продемонстрировать вам, как просто вводить новую функциональность в GUI. В следующем примере будет показано, как легко выводить в GUI настройки из конфигурационных файлов.

Вывод настроек конфигурации в GUI

Как говорилось ранее, одно из уникальных преимуществ Asterisk GUI по сравнению с другими графическими интерфейсами для Asterisk в том, что он обновляет существующие конфигурационные файлы, предпринимая при этом специальные меры для предотвращения перезаписи или удаления каких-либо дополнительных настроек, которые могут присутствовать в конфигурационных файлах. Чтобы продемонстрировать ту простоту, с которой можно предоставлять новые настройки в GUI, добавим в GUI простой флажок, обеспечивающий возможность задавать настройку nat в файле users.conf.

Если открыть GUI и щелкнуть по вкладке Users (Пользователи), GUI загрузит файл users.html в iframe. Откроем afqk users.html (обычно располагающийся в gfgrt /var/lib/asterisk/static-http/config) и начнем изменять его, чтобы добавить наш флажок.

Сначала посмотрим в начало файла, где описана переменная fieldnames (имена полей). Эта переменная содержит список всех имен полей, которые будут заданы на данной странице GUI. Просто добавьте nat в конец списка или вставьте следующую строку прямо под текущим описанием fieldnames.

fieldnames.push('nat'); Таким образом мы сообщаем Asterisk GUI о том, что хотим иметь возможность видеть, а также задавать значение nat. Однако, чтобы увидеть или задать значение, необходимо добавить элемент в HTML-фор- му. Для этого найдите в файле users.html флажок IAX и добавьте следующие строки между ним и флажком CTI.

<tr>

<td align=right><input type='checkbox' id='nat'></td> <td>NAT</td> </tr>

Просто перезагрузите страницу - вот и все. Всего несколько дополнительных строк кода - и мы можем выводить настройку nat в GUI. Проще быть не может!

Занимаясь формированием Asterisk GUI, вы, вероятно, обнаружите, что отладка кода Ajax и JavaScript порой может вызывать некоторые трудности. Мы настоятельно рекомендуем использовать расширение для Mozilla/Firefox под названием Firebug, которое существенно упрощает задачу по отладке Ajax, JavaScript и HTML. Его можно найти по адресу http://www.getfirebug.com. Существует также упрощенная версия для Internet Explorer, известная как Firebug Lite, которую можно скачать на том же веб- сайте.

Дополнительная информация

В данной главе были представлены Asterisk GUI и инфраструктура AJAM. Мы рассмотрели модель работы GUI и то, как его можно изменять. Дополнительную информацию по разработке графического интерфейса для Asterisk можно найти в руководстве для разработчиков GUI (GUI Developers Guide) по адресу http://asterisknow.org/developers/gui- guide.

По договору между издательством «Символ-Плюс» и Интернет-магазином «Books.Ru - Книги России» единственный легальный способ получения данного файла с книгой ISBN 978-5- 93286-128-8, название «Asterisk™: будущее телефонии, 2-е издание» - покупка в Интернет-магазине «Books.Ru - Книги России». Если Вы получили данный файл каким-либо другим образом, Вы нарушили международное законодательство и законодательство Российской Федерации об охране авторского права. Вам необходимо удалить данный файл, а также сообщить издательству «Символ-Плюс» ([email protected]), где именно Вы получили данный файл.12

Интеграция с реляционной базой данных

Ничто так не раздражает, как хороший пример.

- Марк Твен

Введение

В данной главе мы собираемся исследовать вопросы интеграции некоторых функций Asterisk и системы управления базами данных (СУБД). Для работы с Linux доступно несколько СУБД, но мы решили ограничить наше обсуждение PostgreSQL. Мы прекрасно понимаем, что MySQL - тоже чрезвычайно популярная СУБД, но надо было остановиться на какой-то одной, и наш опыт работы с PostgreSQL перевесил чашу весов в ее пользу. Фактически будет обсуждаться ODBC-коннек- тор, поэтому, если ваша база данных поддерживает работу через ODBC, содержание данной главы будет вам полезным.

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

Установка СУБД PostgreSQL

Первое, что надо сделать, - это установить сервер базы данных Post- greSQL[110].

# yum install -y postgresql-server

Затем запускаем базу данных; первая инициализация займет несколько секунд:

# service postgresql start

Далее создаем пользователя asterisk, под учетной записью которого будут выполняться соединение и управление базой данных. Выполним следующие команды:

# su - postgres $ createuser -P

Enter name of user to add: asterisk Enter password for new user: Enter it again:

Shall the new role be a superuser? (y/n) n Shall the new user be allowed to create databases? (y/n) y Shall the new user be allowed to create more new users? (y/n) n CREATE USER

По умолчанию PostgreSQL не слушает TCP/IP-соединение, которое будет использовать Asterisk. Необходимо внести изменения в файл /var/ lib/pgsql/data/postgresql.conf, чтобы Asterisk могла устанавливать IP- соединения с базой данных. Для этого просто удалим символ комментария перед параметрами tcpip_socket и port. Не забудьте изменить значение tcpip_socket с false на true. tcpip_socket = true max_connections = 100

# примечание: увеличение max_connections стоит

# выделения примерно 500 байтов совместно

# используемой памяти на каждое соединение,

# кроме памяти, выделяемой под shared_buffers

# и max_locks_per_transaction. #superuser_reserved_connections = 2 port = 5432

Теперь редактируем файл /var/lib/pgsql/data/pg_hba.conf, чтобы обеспечить возможность только что созданному пользователю asterisk устанавливать соединения с сервером PostgreSQL через TCP/IP. В конце файла замените все под комментарием # Разместите здесь свою фактическую конфигурацию следующим[111]:

host all asterisk 127.0.0.1 255.255.255.255 md5 local all asterisk trust

Теперь можно создать базу данных, которая будет использоваться в данной главе. Мы собираемся создать базу данных asterisk и задать в качестве владельца нашего пользователя asterisk. $ createdb -- owner=asterisk asterisk CREATE DATABASE

Выйдя из учетной записи postgres и вернувшись в административную учетную запись, перезапустите сервер PostgreSQL: $ exit

# service postgresql restart

Наше соединение с сервером PostgreSQL через TCP/IP можно проверить следующим образом:

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату