среда, 20 января 2016 г.

Проблемы при обновлении значения поля 'port' в Asterisk Realtime при использовании Mysql 5.7

При использовании MySQL 5.7 в качестве сервера баз данных для Asterisk Realtime столкнулся с проблемой когда, при хранении настроек SIP в Realtime, удаляется регистрация пользователя.

Asterisk в момент удаления регистрации пытается обновить данные в строке пользователя, чья регистрация удаляется, обнулить соответствующие поля, и при обновлении поля 'port' пытается выставить ему пустое значение, передавая в запросе port = '', очевидно такое действие с более старыми версиями MySQL прокатывало, а вот MySQL 5.7 Это не очень нравится.
В консоли Asterisk появляются вот такие ошибки:
[Jan 20 11:32:07] NOTICE[4432]: chan_sip.c:23396 handle_response_peerpoke: Peer 'test1' is now Reachable. (6ms / 2000ms) -- Unregistered SIP 'test1'
[Jan 20 11:32:13] WARNING[4432]: res_config_mysql.c:635 update_mysql: MySQL RealTime: Failed to update database: Incorrect integer value: '' for column 'port' at row 1
[Jan 20 11:32:13] WARNING[4432]: res_config_mysql.c:635 update_mysql: MySQL RealTime: Failed to update database: Incorrect integer value: '' for column 'port' at row 1 

Причём данная проблема уже известна c версии 11.16 и в 11.17 исправлена . Я наткнулся на эту проблему в версии Asterisk 11.6-cert11 пришлось править исходник chan_sip

Яндекс.Метрика