Гм. давайте начнем с начала.
У меня вот на 1.4 и на 1.6(0) по крайней мере func_odbc прекрасно работает и я сильно подозреваю что никто его не ломал.
Во-первых, озвучьте версию odbc. Я очень надеюсь, что мы говорим про unixODBC 2.2+
Во-вторых, сделайте человеческий файл с коннектором
Я подозреваю, что от ЭТОГО
Protocol = 7.4
RowVersioning = No
ShowOidColumn = No
FakeOidIndex = No
ODBC внутри астериска запросто может гм, удивляться.
На дворе 8.4 уже практически.
Description = PostgreSQL connector to our DB
Driver = PostgreSQL
Database = asterisk
Servername = ...
UserName = ...
Password = ...
Port = 5432
ReadOnly = No
Как показывает практика вполне хватает такого DSN.
В-третьих, надо разобраться с дебагом:
Добавил в /etc/odbc.ini параметры дебага ODBC
Есть предложение попробовать так:
# To enable unixODBC tracing, add this section to odbcinst.ini.
# Include the [ODBC] section heading.
[ODBC]
Trace = yes
TraceFile = trace_file_path
Ну и далее по результатам отписываться..
P.S.
Как я понял, этих прямых обращений вообще нет напрямую в пострге (аналог MYSQL()). Хотел через ODBC прикрутить нормально.
Людей, придумавших MYSQL() надо анально покарать. Есть умеренно нормальная логика - диалплан, взаимодействие с внешним миром - через функции. Конфигурация функций для запроса к базе - в отдельном файле. Нормальное разделение представления и реализации. Так нет же..