Чат  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

поключение Asterisk к PostgreSQL

Проблемы и их решения Asterisk как такового

Модератор: april22

поключение Asterisk к PostgreSQL

Сообщение Delari » 05 июн 2018, 16:33

Добрый день прошу помощи т.к. несколько дней уже пытаюсь подружить Cdr Asterisk с PostgreSQL

искал мануалы и вроде бы нашел как подключить через ODBC, но они как то не очень
https://voipnotes.ru/podkluchenie-aster ... iver-odbc/
взят за основу

стоит Freepbx Asterisk 13 с образа (STABLE SNG7-PBX-64bit-1805-1), перенес уже на VirtualBox (просто столько откатов я давно не делал)
0.1 назначен static IP
0.2 осуществлен вход на веб и заведение admin'a
0.3 заведено 2 внутренних номера - и осуществлен тест звонок между ними

Далее начинаю танец с бубном
Код: выделить все
yum install unixodbc unixodbc-devel libtool-ltdl libtool-ltdl-devel



Код: выделить все
[root@freepbx ~]# yum install unixodbc unixodbc-devel libtool-ltdl libtool-ltdl-devel
Loaded plugins: fastestmirror, versionlock
Loading mirror speeds from cached hostfile
No package unixodbc available.
  * Maybe you meant: unixODBC
No package unixodbc-devel available.
  * Maybe you meant: unixODBC-devel
Package libtool-ltdl-2.4.2-22.el7_3.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package libtool-ltdl-devel.x86_64 0:2.4.2-22.el7_3 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package                 Arch        Version                Repository     Size
================================================================================
Installing:
libtool-ltdl-devel      x86_64      2.4.2-22.el7_3         sng-base      167 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 167 k
Installed size: 752 k
Is this ok [y/d/N]: y
Downloading packages:
libtool-ltdl-devel-2.4.2-22.el7_3.x86_64.rpm               | 167 kB   00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : libtool-ltdl-devel-2.4.2-22.el7_3.x86_64                     1/1
  Verifying  : libtool-ltdl-devel-2.4.2-22.el7_3.x86_64                     1/1

Installed:
  libtool-ltdl-devel.x86_64 0:2.4.2-22.el7_3

Complete!


2. проверяю настройки драйверов
Код: выделить все
nano /etc/odbcinst.ini


Код: выделить все
[PostgreSQL]
Description     = ODBC for PostgreSQL
Driver          = /usr/lib/psqlodbcw.so
Setup           = /usr/lib/libodbcpsqlS.so
Driver64        = /usr/lib64/psqlodbcw.so
Setup64         = /usr/lib64/libodbcpsqlS.so
FileUsage       = 1


# Driver from the mysql-connector-odbc package
# Setup from the unixODBC package
[MySQL]
Description     = ODBC for MySQL
Driver          = /usr/lib/libmyodbc5.so
Setup           = /usr/lib/libodbcmyS.so


3. проверяем видит ли драйвера
Код: выделить все
odbcinst -q -d


Код: выделить все
[root@freepbx ~]# odbcinst -q -d
[PostgreSQL]
[MySQL]


4. редактируем
Код: выделить все
nano /etc/odbc.ini


- тут начинается тупняк

в файле только данные по MySQL

Добавляю данные по PostgreSQL 10.4 установленный на отдельном сервере (DBeaver - к нему подключается) и файл приобретает следующее содержание

Код: выделить все
[MySQL-asteriskcdrdb]
Description=MySQL connection to 'asteriskcdrdb' database
driver=MySQL
server=localhost
database=asteriskcdrdb
Port=3306
Socket=/var/lib/mysql/mysql.sock
option=3
Charset=utf8


[PostgreSQL-asteriskcdrdb]
Description         = PostgreSQL connection to 'asteriskcdrdb' database
Driver              = PostgreSQL
Database            = asteriskcdrdb
Servername          = 192.168.0.2
UserName            = asteriskuser
Password            = 123456
Port                = 5432
Protocol            = 10.4
ReadOnly            = No
RowVersioning       = No
ShowSystemTables    = No
ShowOidColumn       = No
FakeOidIndex        = No
ConnSettings        =



5. проверяем командой
Код: выделить все
echo "select 1" | isql -v PostgreSQL-asteriskcdrdb


получаю
Код: выделить все
[root@freepbx ~]# echo "select 1" | isql -v PostgreSQL-asteriskcdrdb
[01000][unixODBC][Driver Manager]Can't open lib '/usr/lib64/psqlodbcw.so' : file not found
[ISQL]ERROR: Could not SQLConnect
Delari
 
Сообщений: 16
Зарегистрирован: 05 июн 2018, 16:10

Re: поключение Asterisk к PostgreSQL

Сообщение ded » 05 июн 2018, 17:51

А Вы изучили по поиску подобные случаи -
https://www.google.com/search?q=Can%27t ... =firefox-b
ded
 
Сообщений: 13102
Зарегистрирован: 26 авг 2010, 19:00

Re: поключение Asterisk к PostgreSQL

Сообщение Delari » 05 июн 2018, 22:29

да нашел что не был установлен драйвер, хотя по умолчанию были прописаны пути на него

Код: выделить все
yum install postgresql-odbc.x86_64

однако, сейчас вроде все прописано, и проверка по
Код: выделить все
echo "select 1" | isql -v PostgreSQL-asteriskcdrdb


дает результат

Код: выделить все
echo "select 1" | isql -v PostgreSQL-asteriskcdrdb
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> select 1
+---------------------+
| 1                   |
+---------------------+
| 1                   |
+---------------------+
SQLRowCount returns 1
1 rows fetched


База создана

Изображение
однако при тестовом вызове по внутренним номерам в бд Postgres - ничего не добавляется

также odbc дает результат
Код: выделить все
freepbx*CLI> odbc show


Код: выделить все
freepbx*CLI> odbc show

ODBC DSN Settings
-----------------

  Name:   asteriskcdrdb
  DSN:    MySQL-asteriskcdrdb
    Last connection attempt: 2018-06-05 18:16:46
    Number of active connections: 0 (out of 5)

  Name:   asteriskcdrdb
  DSN:    PostgreSQL-asteriskcdrdb
    Last connection attempt: 1970-01-01 00:00:00
    Number of active connections: 0 (out of 1)
Delari
 
Сообщений: 16
Зарегистрирован: 05 июн 2018, 16:10

Re: поключение Asterisk к PostgreSQL

Сообщение Repz » 06 июн 2018, 11:36

cdr_odbc.conf в студию.
для postgres есть свой драйвер, odbc драйвер универсальный
Repz
 
Сообщений: 117
Зарегистрирован: 04 мар 2015, 12:35

Re: поключение Asterisk к PostgreSQL

Сообщение Delari » 06 июн 2018, 12:35

я так понял в Freebpx нету cdr_odbc.conf

на запрос по моему мнению предполагаемого размещения

Код: выделить все
[root@freepbx ~]# nano /etc/asterisk/c
ccss.conf                     cel_general_custom.conf
ccss_general_additional.conf  cel_odbc.conf
ccss_general_custom.conf      cel_odbc_custom.conf
cdr_adaptive_odbc.conf        chan_dahdi_additional.conf
cdr.conf                      confbridge_additional.conf
cel.conf                      confbridge.conf
cel_custom_post.conf          confbridge_custom.conf
cel_general_additional.conf
[root@freepbx ~]# nano /etc/asterisk/c
Delari
 
Сообщений: 16
Зарегистрирован: 05 июн 2018, 16:10

Re: поключение Asterisk к PostgreSQL

Сообщение Repz » 06 июн 2018, 13:52

У Вас хвост крутит собакой, freepbx натянут на asterisk а не наоборот. каталог /usr/src/asterisk* у Вас есть?
Repz
 
Сообщений: 117
Зарегистрирован: 04 мар 2015, 12:35

Re: поключение Asterisk к PostgreSQL

Сообщение Delari » 06 июн 2018, 15:20

Зашел через веб морду в раздел
Отчеты - Отчеты Cdr

Код: выделить все
Unable to connect to CDR Database using dsn 'pgsql:dbname=asteriskcdrdb;host=192.168.0.2;port=5432' with user 'asteriskuser' and password '123456' - could not find driver::could not find driver


исходников нету

Код: выделить все
[root@freepbx ~]# /usr/src/
debug/                        freepbx-sql-14.0.3.1/
freepbx_install.log-14.0.3.1  kernels/
[root@freepbx ~]# /usr/src/


ставился готовый образ с
http://asterisk.ru/installation
Скачать и установить
Готовый дистрибутив:
FreePBX

по сути я почти сразу после установки подключаю его к postgresql
Delari
 
Сообщений: 16
Зарегистрирован: 05 июн 2018, 16:10

Re: поключение Asterisk к PostgreSQL

Сообщение ded » 06 июн 2018, 15:38

В самых последних бесплатных дистрибутивах FreePBX есть такое пустое место с CDR в связи с переходом на PostGRE от MySQL.
Мы, например, сделали так: cdr_adaptive_odbc.conf
Код: выделить все
[asteriskcdrdb]
connection=asteriskcdrdb
loguniqueid=yes
table=cdr
alias start => calldate

и cdr_odbc.conf
Код: выделить все
[asteriskcdrdb]
connection=asteriskcdrdb
loguniqueid=yes
table=cdr
alias start => calldate
usegmtime=no             ; set to "yes" to log in GMT


Код: выделить все
*CLI> module show like cdr
Module                         Description                              Use Count  Status      Support Level
app_cdr.so                     Tell Asterisk to not maintain a CDR for  0          Running              core
app_forkcdr.so                 Fork The CDR into 2 separate entities    0          Running              core
cdr_adaptive_odbc.so           Adaptive ODBC CDR backend                0          Running              core
cdr_csv.so                     Comma Separated Values CDR Backend       0          Not Running      extended
cdr_manager.so                 Asterisk Manager Interface CDR Backend   0          Running              core
cdr_odbc.so                    ODBC CDR Backend                         0          Running          extended
cdr_pgsql.so                   PostgreSQL CDR Backend                   0          Not Running      extended
cdr_sqlite3_custom.so          SQLite3 Custom CDR Module                0          Not Running      extended
cdr_syslog.so                  Customizable syslog CDR Backend          0          Not Running          core
cdr_tds.so                     FreeTDS CDR Backend                      0          Not Running      extended
func_cdr.so                    Call Detail Record (CDR) dialplan functi 0          Running              core


Код: выделить все
*CLI> module show like sql
Module                         Description                              Use Count  Status      Support Level
cdr_pgsql.so                   PostgreSQL CDR Backend                   0          Not Running      extended
cdr_sqlite3_custom.so          SQLite3 Custom CDR Module                0          Not Running      extended
cel_pgsql.so                   PostgreSQL CEL Backend                   0          Running          extended
cel_sqlite3_custom.so          SQLite3 Custom CEL Module                0          Not Running      extended
res_config_pgsql.so            PostgreSQL RealTime Configuration Driver 0          Running          extended
res_config_sqlite.so           Realtime SQLite configuration            0          Running          extended
6 modules loaded


Если не критично - скачайте и установите предпоследнюю версию, или пред-предпоследнюю. Иначе ещё долго будете переписываться.
ded
 
Сообщений: 13102
Зарегистрирован: 26 авг 2010, 19:00

Re: поключение Asterisk к PostgreSQL

Сообщение Delari » 06 июн 2018, 15:55

А в текущей сборке допинать есть возможность?

попробую посмотреть на другой виртуалке версию
SNG7-FPBX-64bit-1712-2.iso
Delari
 
Сообщений: 16
Зарегистрирован: 05 июн 2018, 16:10

Re: поключение Asterisk к PostgreSQL

Сообщение ded » 06 июн 2018, 16:01

В текущей сборке надо через odbc подключиться к MySQL
Код: выделить все
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| asterisk           |
| asteriskcdrdb      |
| mysql              |
| performance_schema |
+--------------------+
5 rows in set (0.00 sec)

mysql> use asteriskcdrdb;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql>
mysql> show tables;
+-------------------------+
| Tables_in_asteriskcdrdb |
+-------------------------+
| cdr                     |
| cel                     |
+-------------------------+
2 rows in set (0.00 sec)
А чем так важна вам текущая сборка? Что там есть, чего в старой нету?
ded
 
Сообщений: 13102
Зарегистрирован: 26 авг 2010, 19:00

След.

Вернуться в Конфигурация и настройка Asterisk

Кто сейчас на форуме

Сейчас этот форум просматривают: Google [Bot] и гости: 11

© 2008 — 2018 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH