Asterisk AstDB - внутренняя база данных для Asterisk

Asterisk AstDB - внутренняя база данных для Asterisk

В сегодняшней статье проведем краткий обзор использования внутренней базы данных Asterisk AstDB. Как известно, Asterisk поставляется с базой данных, которая предоставляется программистам и администраторам Asterisk для использовани япо своему усмотрению. Начиная с Asterisk 10-й версии база данных AstDB встроена в SQLite3.

Назначение внутренней базы AstDB

На самом деле у БД AstDB всего две цели:

  1. Asterisk использует её для хранения информации, которая должна сохраняться между перезагрузкой сервера или перезапуска службы. Еще некоторые модули могут также использовать её в автоматическом режиме.
  2. Пользователи могут использовать её для хранения произвольных данных.

Данные могут помещаться с помощью таких функций, как:

  • DB
  • DB_DELETE
  • DB_EXISTS
  • DB_KEYS

И с помощью приложений:

  • DBdeltree

DB()

Эта функция выполняет чтение или запись в базу данных Asterisk. При чтении эта функция возвращает соответствующее значение из БД или пустое значение, если его не существует. Чтение значения БД также устанавливает переменную DB_RESULT. Если необходимо узнать существует ли запись в AstDB, используйте функцию DB_EXISTS. Синтаксис следующий:

DB(family/key)

DB_DELETE()

Функция извлекает значение из БД Asterisk, а затем удаляет ключ (key) из БД. Переменная DB_RESULT позволит установить значение ключа, если оно существует.

Если для live_dangerously в asterisk.conf установлено значение no, эта функция может быть прочитана только из диалплана. Однако он может быть выполнен как операция записи (DB_DELETE(family, key)=ignored).

Синтаксис функции:

DB_DELETE(family/key)

DB_EXISTS()

Эта функция проверяет существование ключа в БД Asterisk. Если ключ существует, функция вернет 1. Если не существует возвратится 0. Проверка на наличие ключа в БД также установит значение ключа для переменной DB_RESULT, если оно существует.

Синтаксис:

DB_EXISTS(family/key)

DB_KEYS()

Эта функция будет возвращать список ключей с префиксом разделенные запятыми, которые указаны в БД Asterisk. Если аргумент не указан, будет возвращен список ключевых семейств. Синтаксис:

DB_KEYS(prefix)

DBdeltree()

Это приложение позволяет удалять семейство (family) или дерево ключей (keytree) из БД Asterisk. Синтаксис:

DBdeltree(family/[keytree])

Команды AstDB в CLI

Команды позволяют выполнять различные операции из консоли CLI Asterisk:

*CLI> core show help database
database del - Удаляет базу данных key/value
database deltree - Удаляет базу данных keytree/values
database get - Получает значения из БД 
database put - Добавляет/обновляет значение в БД
database query - Запускает указанный пользователем запрос к базе AstDB
database show - Показывает содержимое AstDB
database showkey - Показывает содержимое AstDB

SQLite3 AstDB

Начиная с 10-й версии Asterisk AstDB, используется SQLite3 для внутренней базы данных вместо базы данных Berkeley DB, используемой в Asterisk 1.8 и предыдущих версиях.

 


Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.