Внутренняя база данных Asterisk


Внутренняя база данных Asterisk использует Berkley DB версии 1, которая неплохо работает, даже не хуже registry в Windows.

Цитата из исходника db.c:
DB3 выпущена под лицензией Sleepycat Public License, которая несовместима с GPL. Для предотвращения взаимоисключающих моментов в этих лицензиях (и усложнения лицензирования в дальнейшем) была выбрана для использования DB1 с лицензией BSD.


Данные в базе группируются по семействам (families) и идентифицируются ключами (key), которые уникальны в пределах одного семейства.

Семейства (Families)


Приложения

Ниже приведены функции для работы с этой базой данных, которые Вы можете использовать при конфигурации плана набора extensions.conf:

  • DBdel: Удаление ключа из базы данных
  • DBdeltree: Удаление дерева ключей из базы данных
  • DBget: Получить значение из базы данных
  • DBput: Сохранить значение в базе данных

Есть и другие команды, которые Вы можете использовать в CLI консоли Asterisk.

Примеры

  • Простой web интерфейс для редактирования значений в базе данных Asterisk
  • Смотри: Asterisk call forwarding

Библиотеки скриптов : PERL и PHP

  • PERL: PERL Модуль DB_File поддерживает Berkeley DB версии 1, которая используется в Asterisk. Вы должны быть уверены, что скомпилировали его для версии 1, существует файл libdb1.a (который можно найти в директории db1-ast в Вашем дереве исходников.
Для создания DB_File, используя db1-ast, сделайте следующее:
отредактируйте config.in
INCLUDE = /usr/src/asterisk-cvs/asterisk/db1-ast/include
LIB = /usr/src/asterisk-cvs/asterisk/db1-ast
DBNAME= -ldb1
perl Makefile.PL
make && make pure_site_install


  • PHP: Обратите внимание на (устаревший) "dbm" обработчик DBA

Создание резервных копий и восстановление из них

Если Вы используете встроенную базу данных для хранения таких вещей, как номера CFD или номера для короткого набора, неплохой идеей будет создание периодических резервных копий этих данных. Обычно эта база данных храниться в файле /var/lib/asterisk/astdb. Также как обычный нормальный Berkely db1 (version185) файл, его содержимое может быть просмотрено или создан его дамп, с помощью стандартного набора утилит db1_dump185. Команда: db1_dump185 -p /var/lib/asterisk/astdb покажет вам полное дерево Вашей базы данных Asterisk.

Ссылки по теме:

  • Asterisk app_dbodbc: Решение тех же задачь, с использованием механизма unixODBC
  • Список команд