Asterisk Realtime Extensions with MySQL

Маршрутизация в реальном времени MySQL

/etc/asterisk/modules.conf

autoload=yes


load => res_config_mysql.so
load => app_realtime.so
load => func_realtime.so
load => pbx_realtime.so 

/etc/asterisk/res_mysql.conf

[general]
dbhost = localhost
dbname = asterisk
dbuser = myuser
dbpass = mypass
dbport = 3306
dbsock = /var/lib/mysql/mysql.sock

/etc/asterisk/extconfig.conf

[settings]
extensions => mysql,general,extensions

Формат - family ⇒ database type, контекст в res_mysql.conf :!:, table name

extensions.conf

[default]
switch => Realtime/mycontext@extensions 

Формат - switch ⇒ Realtime/контекст-в-mysql@family

Создайте базу данных MYSQL (если не создана) и требуемую таблицу:

CREATE DATABASE IF NOT EXISTS asterisk;
use asterisk;
CREATE TABLE extensions (
id int(11) NOT NULL auto_increment,
context varchar(20) NOT NULL default "",
exten varchar(20) NOT NULL default "",
priority tinyint(4) NOT NULL default "0",
app varchar(20) NOT NULL default "",
appdata varchar(128) NOT NULL default "",
PRIMARY KEY  (context,exten,priority),
KEY id (id)
) TYPE=MyISAM; 


GRANT ALL ON ASTERISK.* TO myuser@localhost IDENTIFIED BY "mypass";

Добавление данных

USE asterisk;
INSERT INTO extensions VALUES (1, 'mycontext', '_8921.', 1, 'Dial', 'SIP/sipnet/${EXTEN}');
INSERT INTO extensions VALUES (NULL, 'mycontext', '_8911.', 2, 'Dial', 'SIP/sipnet/${EXTEN}');

REBOOT

Тестирование установки

asterisk*CLI> realtime mysql status
Connected to asterisk@localhost, port 3306 with username myuser for 1 minutes, 1 seconds.

Команды mysql

  • artikle/mysql_realtime.txt
  • Последние изменения: 2018/03/12