Не обнавляется context из MySQL
При апдейте БД sip peers не обновляется...
Сообщений: 4
|
Не обнавляется context из MySQL
asterisk:/var/lib/mysql # asterisk -rx 'sip show users'
MySQL-server-community-5.0.67-0.sles10.i586.rpm
Asterisk 1.6.0.1
extconfig.conf
[general]
dbhost = localhost
dbname = asterisk
dbuser = asterisk
dbpass = asterisk
dbport = 3306
dbsock = /var/lib/mysql/mysql.sock
новые данные по sip выгружаются только при перезапуски *
Username Secret Accountcode Def.Context ACL NAT
5020 test cat-3 No RFC3581
mysql> select context from sip_buddies where name=5020;
+---------+
| context |
+---------+
| cat-6 |
+---------+
1 row in set (0.00 sec)
Как я понимаю все что RealTime вообще не хранится в памяти, и динамически трется,
подргружается только при звонке...
Где ошибка в моем понимании?
|
Сообщений: 1573
|
Re: Не обнавляется context из MySQL
Как настроен - RealTime? (dynamic, static)
Если вы о таблице с юзерами, то если dynamic, они и не появяться ...
Только после регистрации юзера на сервере. И нужно еще настраивать несколько параметров, что бы юзеры были видны ...
Потому что без доп. телодвижений они исчезают периодически ... )
|
Откуда: Москва
Сообщений: 3421
|
Re: Не обнавляется context из MySQL
Поставьте rtcachefriend=no ;-)
|
Сообщений: 1573
|
Re: Не обнавляется context из MySQL
litnimax: Поставьте rtcachefriend=no ;-)
Макс, при всем уважении, но здесь нужно сделать все, с точностью до наоборот ... )
+ установить параметр regcontext.
А в основном все подробно расписано в стандартном sip.conf (он же asterisk-1.4.X/configs/sip.conf.sample) ...
Пример с рабочего сервера:
regcontext=sipusers
rtcachefriends=yes
rtupdate=yes
rtautoclear=yes
Этот сервер стоит в кластере.
Если речь об одиночной машине, может быть понадобиться добавить параметр - ignoreregexpire=yes.
P.S. Все это относиться к "RealTime dynamic"
|
Откуда: Москва
Сообщений: 3421
|
Re: Не обнавляется context из MySQL
Дружище, насколько я понял, человеку хочется, чтобы все изменения вступали в силу немедленно! Т.е. каждый раз чтобы делался SELECT. Если включить кэширование, то SELECT делается один раз во внутренние структуры данных, и потом следующий раз сделается только после истечения 120 sec:
rtautoclear = yes|no|number : Auto-Expire friends created on the fly. If yes the autoexpire will be in 120 seconds. Default yes. (New in v1.2.x).
Так что ставить надо rtcachefriends=no, и тогда каждый раз будут запросы в базу.
P.S. Другое дело, что при выключении кеширования не работает поддержка абонентов за NAT и еще пару вещей.
|
Сообщений: 1573
|
Re: Не обнавляется context из MySQL
Я и говорю, что это относиться к конфигурации - dynamic. SELECT - выполняется только при регистрации абонента, а не при "звонке" ему. Так что кеширование на данный момент не влияет. Оно устраняет другие проблемы ... )
|
Откуда: Москва
Сообщений: 3421
|
Re: Не обнавляется context из MySQL
SELECT - выполняется только при регистрации абонента, а не при "звонке" ему.
А ты debug включи и посмотри ;-)
|
Сообщений: 1573
|
Re: Не обнавляется context из MySQL
:) - сказал все наоборот. Хотел - "SELECT - выполняется не только при регистрации абонента, а при "звонке" ему. Так что кеширование на данный момент не влияет."
Т.е. изменения вступят в силу - сразу
А вот то, что исправляется с включением кеширования - цитата:
есть некоторые проблемы с поддержкой функционирования клиентов, которые работают через NAT: keep-alives (qualify=) или индикация о новых сообщениях в voicemail для данных пиров не будут работать без специальных мер по кэшированию этих записей.
если вы включите кэширование данных полученных через RealTime в Вашем файле sip.conf, iax.conf Voicemail MWI работает, а так же работают команды типа: 'sip show peers' - смотри описание параметра: rtcachefriends=yes
|
Сообщений: 80
|
Re: Не обнавляется context из MySQL
asterisk -rx 'sip prune realtime <name>'
каждый раз в момент обновления записи
и время регистрации поменьше
|
Сообщений: 1573
|
Re: Не обнавляется context из MySQL
to Rom1kz
RealTime - сделан для того что бы можно было оперативно менять данные (хранить данные в одном месте для многих серверов и т.д.), а не для того, что бы вводить дополнительные команды ...
С таким же успехом можно сделать - asterisk -rx 'sip reload' и не париться с RealTime ... )
А если, к тому же, у вас серверов с десяток?
В случае кластера - нужно будет вначале найти на каком в данный момент висит этот пир и ввести команду ...
Мягко говоря - не удобно, не так ли?
P.S. А вообще, что имелось ввиду? Для чего это нужно? Это не решит поставленной задачи ...
|
|