Asterisk Realtime Extensions with MySQL
Маршрутизация в реальном времени MySQL
Asterisk setup
/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 setup
Создайте базу данных 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.