Доброго времени суток. Имеется сервер Астериcк, настроенный лет десять назад. Он работает с MySQL напрямую. Теперь для одного приложения-интегратора, требуется включить CEL, с подключением к MySQL через ODBC. Вопрос, если я переведу подключение к БД через ODBC, не сломается ли прямая запись? Или можно как-то в отдельную БД события CEL писать, чтобы он только к ней подключался через ODBC?
Для правильного вопроса надо знать половину ответа
По большому счёту, ODBC мешать не должен. Просто будет два соединения с базой - через нативный MySQL и через ODBC. Если сейчас CEL через MySQL не используется, то можно писать в ту же базу, просто это будет отдельная таблица `cel`.
Я, возможно, запутаю ещё больше. На данный момент, в конфиге /etc/odbc.ini указаны параметры используемой БД. Но при этом конфиг /etc/asterisk/res_odbc.conf не настроен.
Мне получается надо будет просто в нём указать тот же коннектор, который в odbc.ini, и запилить в БД нужную таблицу?
My_Second_Nickname,
Если сам ODBC уже настроен, то в Asterisk'е надо настроить res_odbc.conf, cel.conf и cel_odbc.conf, включить модули res_odbc.so и cel_odbc.so.
Ну и да, создать таблицу cel примерно так:
CREATE TABLE `cel` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
`eventtype` varchar(30) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
`eventtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`userdeftype` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
`cid_name` varchar(80) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
`cid_num` varchar(80) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
`cid_ani` varchar(80) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
`cid_rdnis` varchar(80) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
`cid_dnid` varchar(80) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
`exten` varchar(80) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
`context` varchar(80) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
`channame` varchar(80) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
`appname` varchar(80) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
`appdata` text CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci,
`amaflags` int NOT NULL,
`accountcode` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
`peeraccount` varchar(20) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
`uniqueid` varchar(150) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
`linkedid` varchar(150) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
`userfield` text CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
`peer` varchar(80) CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
`extra` text CHARACTER SET utf8mb3 COLLATE utf8mb3_unicode_ci NOT NULL,
UNIQUE KEY `id` (`id`),
KEY `uniqueid` (`uniqueid`),
KEY `linkedid` (`linkedid`),
KEY `eventtime` (`eventtime`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci