четверг, 8 декабря 2022 г.

UnixODBC и Asterisk 16 (и 18). Функции func_odbc обрезают ответ базы до первых 14 знаков.

Бага в libodbcpsql.so из самого пакета unixODBC.

Решение: установка psqlodbc. Psqlodbc создаёт библиотеки psqlodbca.so и psqlodbcw.so. Их и используем для подключения в odbcinst.ini.

[PostgreSQL]

Description=ODBC for PostgreSQL

Driver=/usr/lib64/psqlodbcw.so

Setup=/usr/lib64/libodbcpsqlS.so

Threading=5

UsageCount=1

FileUsage=1


In addition, the "w" and "a" at the end of the file names almost certainly refer to the Unicode ("w" for "wide") and ANSI ("a") versions of the driver.

psqlodbca.so - ANSI

psqlodbcw.so - widechar


пятница, 25 ноября 2022 г.

Отображение DTMF-кода командой RECORD в Asterisk

 Команда RECORD имеет опцию "y", завершающую запись при получении любого DTMF-кода. При этом переменная RECORD_STATUS принимает значение "DTMF". Сам набранный абонентом код нигде не фиксируется. Исправляем эту ситуацию.

пятница, 29 апреля 2022 г.

Логирование запросов к базе Postgresql

Для всех баз данных: в файле postgresql.conf указываем параметр log_statement = 'all' и перезапускаем сервис.

Для конкретной базы: ALTER DATABASE %имя_базы% SET log_statement = 'all';


воскресенье, 17 апреля 2022 г.

среда, 6 апреля 2022 г.

Настройка сервиса XML на Cisco SPA504G

 На телефонах Cisco кроме встроенного WEB-сервера есть WEB-браузер, который может обрабатывать определенные элементы XML.

Сервис XML можно повесить на кнопку линии:

Extension: Disabled

Share Call Appearance: private

Extended Function: fnc=xml;url=http://10.10.10.10:883/xml.php?name=$UID1;nme=Меню

Где,

fnc - вызов функции xml;

url - путь к файлу XML/HTTP/PHP и т.п., через параметры можно передавать некоторые переменные, в данном случае UID. Подробнее в документации на ТА;

nme - имя, отображаемое напротив кнопки линии.

понедельник, 27 декабря 2021 г.

Диалоги и транзакции SIP.

Транзакция описывает запрос и любое количество ответов на него. Исключение- метод ACK. ACK входит в транзакцию INVITE, если соединение не было установлено, т.е. окончательный ответ не был 2xx. Если соединение успешно установлено, то ACK является отдельной транзакцией. Причина этого- важность доставки ответов 2хх. Ядро UAS берёт на себя ответственность за их доставку, а UAC - за их подтверждение запросами ACK,

вторник, 12 октября 2021 г.

Автоматический ответ на телефонах Cisco SPA

 Достигается передачей answer-after=0 в заголовке Call-Info


...

same => n,SIPAddHeader(Call-Info:<AA>\;answer-after=0)

same => n,Dial(SIP/4444,,G(autoanswer_play,s,1))

...

[autoanswer_play]
exten => s,1,NoOp()
same => n,Playback(my_anno)
same => n,Hangup




Для шлюзов SPA2102 может сработать заголовок  Alert-Info: <AA>\;info=alert-autoanswer