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

asterisk func_odbc + postgres

СообщениеДобавлено: 02 мар 2023, 12:25
script
Всем привет,

подскажите по такому вопросу:

имеется postgres 14, asterisk 18
появилась необходимость в обновлении определенных данных через dialplan в таблице cdr (в определенных ситуациях)
добавил новое поле в таблицу cdr, прописал alias в cdr_adaptive_odbc.conf (само подключения к БД настроено через res_odbc.conf)
настроил func_odbc.conf
[PG]
writehandle=pbx-cdr
writesql=${${ARG1}}

прописал в dialplane для теста (при звонке на 123 не отвечаю 5 секунд и жду выполнения ODBC_PG с запросом на update)
Код: выделить все
...
exten => 123,1,Set(QUERY=update cdr set data=1 where uniqueid='${UNIQUEID}') -- без апострофов тоже проверял
same => n,Dial(SIP/123,5)
same => n,Set(ODBC_PG(QUERY)=${QUERY})
same => n,Hangup()
...


в консоли ни одной ошибки, вижу запрос c данными uniqueid, а в postgres запрос на update не приходит - фигурирует только insert в cdr

варианты решения нашел (сделал иначе), но вот, а почему так не хочет обработать ? что-то нужно добавить / изменить ? или это все только для MySQL будет работать, я в документации не нашел инфы что с postgres это не будет работать (хотя все примеры только для MySQL) ?

Re: asterisk func_odbc + postgres

СообщениеДобавлено: 02 мар 2023, 12:42
ded
Update в незавершённую транзакцию CDR не получится. Чтобы реализовать свой сценарий вам нужно обратить внимание на другую таблицу - CEL - Call event logging, где изменён подход к CDR, как раз и записывается такая информация при трансферах, удержаниях, и пр.

Re: asterisk func_odbc + postgres

СообщениеДобавлено: 02 мар 2023, 12:54
script
понял, спасибо