Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Voicemail storage ODBC

1

Добрый день.
Проблема записать сообщения голосовой почты в БД Postgresql 8.4

Настраивал по всем известной книге на русском языке.
При попытке оставить голосовое сообщение, в логе пишет такое:

.....

    -- Recording the message
    -- x=0, open writing:  /var/spool/asterisk/voicemail/default/1002/tmp/fJd1kd format: wav49, 0x8c14ae0
    -- User ended message by pressing #
    -- <SIP/1001-00000003> Playing 'auth-thankyou.slin' (language 'ru')
  == Parsing '/var/spool/asterisk/voicemail/default/1002/INBOX/msg0000.txt':   == Found
WARNING[3927]: app_voicemail.c:3736 insert_data_cb: SQL Direct Execute failed!
WARNING[3927]: res_odbc.c:601 ast_odbc_direct_execute: SQL Execute error! Verifying connection to asterisk [asterisk-connector]...
WARNING[3927]: res_odbc.c:744 ast_odbc_sanity_check: Connection is down attempting to reconnect...
NOTICE[3927]: res_odbc.c:1480 odbc_obj_connect: Connecting asterisk
NOTICE[3927]: res_odbc.c:1510 odbc_obj_connect: res_odbc: Connected to asterisk [asterisk-connector]
WARNING[3927]: app_voicemail.c:3736 insert_data_cb: SQL Direct Execute failed!
WARNING[3927]: res_odbc.c:744 ast_odbc_sanity_check: Connection is down attempting to reconnect...
NOTICE[3927]: res_odbc.c:1480 odbc_obj_connect: Connecting asterisk
NOTICE[3927]: res_odbc.c:1510 odbc_obj_connect: res_odbc: Connected to asterisk [asterisk-connector]
WARNING[3927]: app_voicemail.c:3846 store_file: SQL Execute error!
[INSERT INTO voicemessages (dir,msgnum,recording,context,macrocontext,callerid,origtime,duration,mailboxuser,mailboxcontext,flag) VALUES (?,?,?,?,?,?,?,?,?,?,?)]

Аsterisk 1.8 собран с опцией ODBS STORAGE в разделе Voicemail Build Options.
База работает, Asterisk к ней подключается, CDR- записи пишет в БД без проблем.
Уже не знаю куда копать....

Лог СУБД:

ERROR:  invalid large-object descriptor: 24741
ERROR:  current transaction is aborted, commands ignored until end of transaction block
ERROR:  current transaction is aborted, commands ignored until end of transaction block
LOG:  could not send data to client: Обрыв канала
STATEMENT:  ROLLBACK
ERROR:  invalid large-object descriptor: 24742
ERROR:  current transaction is aborted, commands ignored until end of transaction block
ERROR:  current transaction is aborted, commands ignored until end of transaction block
LOG:  could not send data to client: Обрыв канала
STATEMENT:  ROLLBACK

Таблица в БД:

asterisk=> SELECT * FROM voicemessages;
 uniqueid | msgnum | dir | context | macrocontext | callerid | origtime | duration | mailboxuser | mailboxcontext | recording | label | read | flag 
----------+--------+-----+---------+--------------+----------+----------+----------+-------------+----------------+-----------+-------+------+------
(0 rows)
удалить закрыть спам изменить тег редактировать

спросил 2011-08-03 18:35:07 +0400

pilat Gravatar pilat
21 1 3

обновил 2011-08-04 12:00:27 +0400

3 Ответа

0

думаю проблема с полем recording, попробуй ДБ создать как ниже написано:
https://wiki.asterisk.org/wiki/display/AST/Storing+Voicemail+in+PostgreSQL+via+ODBC

ссылка удалить спам редактировать

ответил 2011-08-04 12:09:45 +0400

alexcr Gravatar alexcr
3124 10 9 51
http://asterisk-service.c...

обновил 2011-08-04 12:10:19 +0400

Comments

поле recording типа lo, все делал также как описано в wiki pilat ( 2011-08-04 12:30:40 +0400 )редактировать
0

таблица в базе есть? в ней есть все поля из запроса?

ссылка удалить спам редактировать

ответил 2011-08-03 19:23:50 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

зайдите через isql odbs_source_here и попробуйте инсерт сделать. также попробуйте включить лог запросов в постгресе(я уже не помню как, помню для mysql) и посмотрите тчо реально делает. meral ( 2011-08-03 23:30:49 +0400 )редактировать
да, добавил pilat ( 2011-08-04 12:02:57 +0400 )редактировать
0

Все работает. Проблема была в БД. У пользователя БД asterisk не было прав SUPERUSER. Поэтому он не мог создать необходимые функции (loin,loout,..) и сам тип lo. Создавал их от пользователя postgres, но обычный юзер asterisk БД ими воспользоваться не мог. Следовательно проблема решилась, когда пользователя базы сделал суперюзером. Пробовал подарить права на функции обычному юзеру базы , но так не вышло.

ссылка удалить спам редактировать

ответил 2011-08-04 13:13:32 +0400

pilat Gravatar pilat
21 1 3

обновил 2011-08-04 13:19:41 +0400

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2011-08-03 18:35:07 +0400

Просмотрен: 1,083 раз

Обновлен: Aug 04 '11

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.