LINUX.ORG.RU

Asterisk, не устанавливается cdr_odbc (Depends on: res_odbc(M))

 ,


0

1

Добрый день! Прошу помощи, ибо я сломался (или сломался гуглояндекс :) ). Вводные: Asterisk 14.6.1 Linux aster 3.10.0-693.2.2.el7.x86_64 #1 SMP Tue Sep 12 22:26:13 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux Виртуальная машина на VBox, сеть мост

Потихоньку ковыряю чистый Asterisk, не ищу легких путей, потому поставил последний Asterisk и 7 CentOS (везде мануалы на более ранние версии). С Linux (как и с Asterisk) на Вы. но мануалов хватает на все, их можно курить, грызть, это очень помогает.

Осталось совсем немного, настроить CDR.

Мануалов много, в принципе все одинаковы. возьмем https://voipnotes.ru/podkluchenie-asterisk-k-mysql-cherez-draiver-odbc/ . Установил MariaDB, пытаюсь создать таблицу, ошибка ERROR 1067 (42000): Invalid default value for 'calldate' помучался часок, поставил MySql, ошибка та же, может кому полезно будет:

в последних версиях введено ограничение, дата и время не может быть нулевым. решение: в /etc/my.cnf дописать: sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION (отключаем sql_mode «NO_ZERO_IN_DATE,NO_ZERO_DATE»)

далее yum install unixodbc unixodbc-devel libtool-ltdl libtool-ltdl-devel mysql-connector-odbc

# odbcinst -q -d [PostgreSQL] [MySQL] [MySQL ODBC 5.3 Unicode Driver] [MySQL ODBC 5.3 ANSI Driver] все видит.

nano /etc/odbc.ini

[MySQL-asteriskcdrdb] Description=MySQL connection to 'asterisk' database driver=MySQL server=localhost database=asteriskcdrdb UserName=asterisk*** Password=******** Port=3306 Socket=/var/lib/mysql/mysql.sock option=3

проверяем

echo «select 1» | isql -v MySQL-asteriskcdrdb +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> select 1 +---------------------+ | 1 | +---------------------+ | 1 | +---------------------+ SQLRowCount returns 1 1 rows fetched

А далее самое интересное. Т.к. в модулях отсутствует cdr_odbc, идем пересобирать ядро Asterisk, а в менюселект сказано XXX cdr_odbc , по причине нехватки res_odbc(M).

Что мне необходимо еще поставить, чтоб астериск установил модуль cdr_odbc?

Спасибо!

оффтоп. как делать спойлеры? www.linux.org.ru/help/lorcode.md

как то не работает :(

Проверил ради интереса с 14 астером - указанной проблемы не увидел. В menuselect по-дефолту были выбраны и res_odbc и cdr_odbc. Что и как вы пересобираете?

P.S. в данном случае редактирование my.cnf - не самый лучший вариант. А если базу в другой mysql переносить будете? опять править my.cnf? А если нельзя? Лучше дефолт-дату сделать 1970-01-01 00:00:01

keir ★★ ()

зачем мучиться со сборкой?

когда уже есть собранные образы или даже есть srpm в гитхабе, специально для тех кому нужно лично пересобрать пакеты.

Nurmukh ★★★ ()
Ответ на: комментарий от keir

про дату — если так можно, значит буду писать просто не пустую дату и время. я не вникал, почему там нули, но раз везде, во всех мануалах, написаны нули, решил проблему по другому :) спасибо, буду иметь ввиду.

видимо у Вас установлено по дефолту то, чего нет у меня :) CentOS ставил с образа minimal, там много нет по дефолту. захожу в папку /usr/src/asterisk/asterisk* ./configure --libdir=/usr/lib64 && make menuselect && make && make install

в Call Detail Recording

XXX cdr_adaptive_odbc * cdr_custom

* cdr_manager

* cdr_syslog

--- Extended

* cdr_csv

XXX cdr_odbc

XXX cdr_pgsql

ODBC CDR Backend Depends on: res_odbc(M)

в cli соответсвенно odbc show module show like cdr_mysql.so ... 0 modules loaded

Elektronik123 ()
Ответ на: комментарий от Nurmukh

оно не занимает много времени, почему нет? сборки это хорошо, но зачем? я поднимаю и учусь. а с таким подходом проще FreePBX или Elastix поставить и не мучаться, верно ведь? некоторые поднимают сразу их и много лет их обслуживают и бед не знают. Лично мое мнение — прежде чем поднимать их, сначала надо понимать, как оно работает изнутри, а не галочки ставить и меню тыкать. Хотя могу быть и не прав :) В любом случае надо глубже изучать CentOS и Asterisk.

Elektronik123 ()
Ответ на: комментарий от Elektronik123

до ./configure следует выполнить

./contrib/scripts/install_prereq install
что установит необходимые для астера пакеты в систему. Я использовал это только на debian, но скрипт расчитан и на RH-системы тоже.

P.S. манипуляции я проводил на астериске, полученном по ссылке http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-14-current.tar.gz

P.P.S. в конце вы так же можете выполнить make samples, чтобы получить примеры конфиг-файлов в /etc/asterisk (заменит ли имеющиеся, не знаю, не проверял).

keir ★★ ()
Ответ на: комментарий от Elektronik123

ну вот я тебе и рекомендую поставить mock, скачать с гитхаба srpm и научится заодно правильно собирать пакеты для центос под свои нужды.

Nurmukh ★★★ ()
Ответ на: комментарий от keir

Спасибо!!!

./contrib/scripts/install_prereq install именно этого мне и не хватало :) установил 113 зависимостей. Теперь собирается все четко и правильно. Спасибо! 2 дня гугления :)

нет, make samples делать не стоит. образцы уже собирал, они в системе есть, с которыми работаю переименовываю и создаю пустой, а если надо, подглядываю в переименованный.

я раньше пользовался ubuntu, там при установке пакеты сразу тянули все зависимости сами. но и из исходников я там ничего не собирал...

Elektronik123 ()
Ответ на: комментарий от Nurmukh

я поначалу не так понял. спасибо, намотал на ус, будет время — буду учиться. Спасибо! :)

Elektronik123 ()

Тащемта cdr_odbc.so depricated, сейчас модно cdr_adaptive_odbc.so

Turbid ★★★★★ ()
Ответ на: комментарий от keir

./contrib/scripts/install_prereq install

Лучше `install_prereq test`, и аккуратно доустановить то что он покажет самому. Да бунте и дебиане этот скрипт по дефолту юзает aptitude, причем сразу с `-y`, который очень коряво резолвит зависимости.

emcode ()
Ответ на: комментарий от emcode

Согласен, проблемы с зависимостями на уже эксплуатируемой системе могут возникнуть, но при чистой установке проходит все гладко.

keir ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.