Страница 1 из 4

asterisk 1.8.11 + oracle 11g2 cdr проблема с настройкой

Добавлено: 12 сен 2012, 15:00
holf
Здравствуйте!. столкнулся с задачей писать cdr в оракл(на удаленный сервер) и вот бьюсь...
исходные данные:
Centos 5.7 x64
Asterisk 1.8.11-cert7(взял сертифицированный на всякий случай для стабильности)
unixODBC-2.2.15pre(пробовал уже и дефолтный(2.2.11), и последний, и 2.2.14, поэтому собран из исходников)

odbcinst.ini

Код: Выделить всё

[ODBC]
Trace = yes
TraceFile = /var/log/odbc.log

#driver for oracle 11.2 
[ora11odbc]
Description     = Oracle ODBC driver for Oracle 11g
Driver          = /usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1
Setup           = /usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1
FileUsage       = 1
CPTimeout       =
CPReuse         =

odbc.ini

Код: Выделить всё

[ora11odbc]
Application Attributes = T
Attributes = W
BatchAutocommitMode = IfAllSuccessful
BindAsFLOAT = F
CloseCursor = F
DisableDPM = F
DisableMTS = T

Driver = ora11odbc
DSN = ora11odbc

EXECSchemaOpt =
EXECSyntax = T
Failover = T
FailoverDelay = 10
FailoverRetryCount = 10
FetchBufferSize = 64000
ForceWCHAR = F
Lobs = T
Longs = T
MetadataIdDefault = F
QueryTimeout = T
ResultSets = T

ServerName = //xx.xx.xx.xx:port/sid
SQLGetData extensions = F
Translation DLL =
Translation Option = 0
DisableRULEHint = T

UserID = asterisk
Password = asterisk
res_odbc.conf

Код: Выделить всё

[ora11]
enabled=>yes
dsn=>ora11odbc
username=>asterisk
password=>asterisk
pre-connect=>yes
cdr_odbc.conf

Код: Выделить всё

[global]
dsn=ora11odbc
username=asterisk
password=asterisk
loguniqueid=yes
table=intercdr
окружение

Код: Выделить всё

LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib
LIBPATH=/usr/lib/oracle/11.2/client64/lib
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/beau/bin:/usr/sbin/:/usr/local/bin:/sbin/:/bin/:/etc/init.d/:/usr/lib/oracle/11.2/client64/bin/:/usr/sbin/:/usr/local/bin:/sbin/:/bin/:/etc/init.d/:/usr/lib/oracle/11.2/client64/bin/
TNS_ADMIN=/etc/oracle
ODBCSYSINI=/usr/local/etc
ODBCINI=/usr/local/etc/odbc.ini
CLASSPATH=/usr/lib/oracle/11.2/client64/lib
ORACLE_HOME=/usr/lib/oracle/11.2/client64
modules.conf

Код: Выделить всё

[modules]
autoload=yes

preload => res_odbc.so
;preload => res_config_odbc.so
что происходит.

Код: Выделить всё

isql -v ora11odbc asterisk asterisk
отрабатывает, селектится и инсертится.

при старте астериска с загрузкой в modules.conf res_odbc.so при указанных выше настройках астериск ложится и не грузится.
ошибки в /var/log/asterisk/messages отсутствуют. в режиме debug тоже ничего.
если в res_odbc.conf сделать

Код: Выделить всё

[ora11]
enabled=>yes
dsn=>ora11odbc
username=>asterisk
password=>asterisk
[b]pre-connect=>no[/b]

то всё загружается,
odbc show в консоли астериска выдает

Код: Выделить всё

*CLI> odbc show

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

  Name:   ora11
  DSN:    ora11odbc
    Last connection attempt: 1970-01-01 03:00:00
а cdr_odbc.so выдает на попытке записи cdr(что естественно, по-моему, так как res_odbc.so не создал оракловый коннект)
ERROR[19081]: cdr_odbc.c:149 odbc_log: Unable to retrieve database handle. CDR failed.
но на этом фантазия заканчивается.
может, подскажет кто, где искать?
нативные драйвера постгреса ставил, ставлю и использую без проблем, а вот odbc никогда не использовал, но вроде делал всё по многочисленным в сети мануалам и isql работает вполне корректно.

Re: asterisk 1.8.11 + oracle 11g2 cdr проблема с настройкой

Добавлено: 12 сен 2012, 17:45
holf
ну что ж, спасибо, попробую. сегодня обновлюсь до последнего в 1.8
может и поможет.

Re: asterisk 1.8.11 + oracle 11g2 cdr проблема с настройкой

Добавлено: 12 сен 2012, 22:18
holf
ну, прикинув, я это и делаю - изолировал проблему и смотрю все отладочные данные, может, увижу какую-нибудь инфу, которая подскажет, где что зарыто.

Re: asterisk 1.8.11 + oracle 11g2 cdr проблема с настройкой

Добавлено: 12 сен 2012, 22:39
holf
итак, попробовал стартануть астериск в конфигурации, когда он ложится с выводом дебага и всего-всего в /var/log/messages
вышло вот что:

Код: Выделить всё

[Sep 12 22:28:24] VERBOSE[24506] config.c:   == Parsing '/etc/asterisk/logger.conf': [Sep 12 22:28:24] VERBOSE[24506] config.c:   == Found
[Sep 12 22:28:24] VERBOSE[24506] config.c:   == Parsing '/etc/asterisk/asterisk.conf': [Sep 12 22:28:24] DEBUG[24506] config.c: Parsing /etc/asterisk/asterisk.conf
[Sep 12 22:28:24] VERBOSE[24506] config.c:   == Found
[Sep 12 22:28:24] DEBUG[24506] xmldoc.c: gl_pathc 3
[Sep 12 22:28:24] VERBOSE[24506] pbx.c:   == Registered custom function 'MESSAGE'
[Sep 12 22:28:24] VERBOSE[24506] pbx.c:   == Registered custom function 'MESSAGE_DATA'
[Sep 12 22:28:24] VERBOSE[24506] pbx.c:   == Registered application 'MessageSend'
[Sep 12 22:28:24] DEBUG[24506] xmldoc.c: Cannot find variable 'description' in tree 'MessageSend'
[Sep 12 22:28:24] VERBOSE[24506] manager.c:   == Manager registered action MessageSend
[Sep 12 22:28:24] VERBOSE[24506] manager.c:   == Manager registered action DataGet
[Sep 12 22:28:24] VERBOSE[24506] config.c:   == Parsing '/etc/asterisk/codecs.conf': [Sep 12 22:28:24] DEBUG[24506] config.c: Parsing /etc/asterisk/codecs.conf
[Sep 12 22:28:24] VERBOSE[24506] config.c:   == Found
[Sep 12 22:28:24] VERBOSE[24506] loader.c:  Asterisk Dynamic Loader Starting:
[Sep 12 22:28:24] VERBOSE[24506] config.c:   == Parsing '/etc/asterisk/modules.conf': [Sep 12 22:28:24] DEBUG[24506] config.c: Parsing /etc/asterisk/modules.conf
[Sep 12 22:28:24] VERBOSE[24506] config.c:   == Found
[Sep 12 22:28:24] NOTICE[24506] loader.c: 1 modules will be loaded.
[Sep 12 22:28:24] VERBOSE[24506] config.c:   == Parsing '/etc/asterisk/res_odbc.conf': [Sep 12 22:28:24] DEBUG[24506] config.c: Parsing /etc/asterisk/res_odbc.conf
[Sep 12 22:28:24] VERBOSE[24506] config.c:   == Found
[Sep 12 22:28:24] NOTICE[24506] res_odbc.c: Connecting ora11
от предсмертной фразы Connecting ora11 яснее пока не стало...

Re: asterisk 1.8.11 + oracle 11g2 cdr проблема с настройкой

Добавлено: 12 сен 2012, 23:06
holf
в свою очередь, трэйс odbc выдал

Код: Выделить всё

[ODBC][9794][__handles.c][444]
                Exit:[SQL_SUCCESS]
                        Environment = 0x31f2990
[ODBC][9794][SQLSetEnvAttr.c][182]
                Entry:
                        Environment = 0x31f2990
                        Attribute = SQL_ATTR_ODBC_VERSION
                        Value = 0x3
                        StrLen = 0
[ODBC][9794][SQLSetEnvAttr.c][349]
                Exit:[SQL_SUCCESS]
[ODBC][9794][SQLAllocHandle.c][345]
                Entry:
                        Handle Type = 2
                        Input Handle = 0x31f2990
[ODBC][9794][SQLAllocHandle.c][463]
                Exit:[SQL_SUCCESS]
                        Output Handle = 0x31f2f70
[ODBC][9794][SQLSetConnectAttr.c][318]
                Entry:
                        Connection = 0x31f2f70
                        Attribute = SQL_ATTR_LOGIN_TIMEOUT
                        Value = 0xa
                        StrLen = 0
[ODBC][9794][SQLSetConnectAttr.c][500]
                Exit:[SQL_SUCCESS]
[ODBC][9794][SQLSetConnectAttr.c][318]
                Entry:
                        Connection = 0x31f2f70
                        Attribute = SQL_ATTR_CONNECTION_TIMEOUT
                        Value = 0xa
                        StrLen = 0
[ODBC][9794][SQLSetConnectAttr.c][500]
                Exit:[SQL_SUCCESS]
[ODBC][9794][SQLConnect.c][3549]
                Entry:
                        Connection = 0x31f2f70
                        Server Name = [ora11odbc][length = 9 (SQL_NTS)]
                        User Name = [asterisk][length = 8 (SQL_NTS)]
                        Authentication = [********][length = 8 (SQL_NTS)]
                UNICODE Using encoding ASCII 'ISO8859-1' and UNICODE 'UCS-2LE'

Re: asterisk 1.8.11 + oracle 11g2 cdr проблема с настройкой

Добавлено: 12 сен 2012, 23:08
holf
ddkprog писал(а):запускайте астериск через gdb

gdb asterisk
там не помню c или r
continue или run
и когда упадет
набираете bt
ентер
и все будет видно
спасибо, сейчас тоже попробую.

Re: asterisk 1.8.11 + oracle 11g2 cdr проблема с настройкой

Добавлено: 13 сен 2012, 01:27
holf
с gdb мне не очень понятно.
делаю так

Код: Выделить всё

#gdb /usr/sbin/asterisk
GNU gdb (GDB) Red Hat Enterprise Linux (7.0.1-37.el5_7.1)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/sbin/asterisk...done.
(gdb) run -vvvcgf
Starting program: /usr/sbin/asterisk -vvvcgf
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x2aaaaaaab000
[Thread debugging using libthread_db enabled]

[1]+  Stopped                 gdb /usr/sbin/asterisk
# ps ax | grep ast
 2655 ?        S<     0:00 [ib_mcast]
 4854 pts/1    T      0:00 gdb /usr/sbin/asterisk
 4856 pts/1    Tl     0:00 /usr/sbin/asterisk -vvvcgf
 4864 pts/1    S+     0:00 grep ast
непонятно. и никаких дамп-файлов в системе тоже не появляется. совсем непонятно.

Re: asterisk 1.8.11 + oracle 11g2 cdr проблема с настройкой

Добавлено: 13 сен 2012, 02:00
ded
У меня вот так запустился -
(gdb) run -vvvgc

Код: Выделить всё

# ps auxwf|grep asterisk
root     12213 29.8  1.9  47656 34580 pts/11   S    00:08   0:49  |               \_ gdb /usr/sbin/asterisk
root     12255  4.0  0.7  37616 13132 pts/11   Sl+  00:09   0:02  |                   \_ /usr/sbin/asterisk -vvvgc

Re: asterisk 1.8.11 + oracle 11g2 cdr проблема с настройкой

Добавлено: 13 сен 2012, 10:33
holf

Код: Выделить всё

#gdb /usr/sbin/asterisk
GNU gdb (GDB) Red Hat Enterprise Linux (7.0.1-37.el5_7.1)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/sbin/asterisk...done.
(gdb) run -vvvgc
Starting program: /usr/sbin/asterisk -vvvgc
warning: no loadable sections found in added symbol-file system-supplied DSO at 0x2aaaaaaab000
[Thread debugging using libthread_db enabled]

[2]+  Stopped                 gdb /usr/sbin/asterisk
# ps ax | grep ast
те же яйца. вид сбоку.

Re: asterisk 1.8.11 + oracle 11g2 cdr проблема с настройкой

Добавлено: 13 сен 2012, 12:07
ded
Я бы ещё указал сначала в modules.conf -
autoload = yes
noload => res_odbc.so

Тогда это позволит загрузить сначала астериск нормально, а потом командой
module load res_odbc.so
вызвать обрушение.

Но по-моему это всё сложняки, наверняка ошибка в конфиге, и к гадалке не ходи. Какая? Анализировать, изучать одним словом.