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

Asterisk RealTime + rtcachefriends

Добавлено: 27 июн 2012, 10:32
Ferrum
Установил опцию

Код: Выделить всё

rtcachefriends=yes
Так как необходима работа call-limit
Но тут вылез баг который заключается в потери регистрации voip устройства через 10 сек
Шлюз посылает запрос на регистрацию, 10 сек все нормально, а далее Aстериск начинает считать, что устройство не зарегистрировано.
Такая проблема возникает с 1-2 voip шлюзами из всех, после sip reload проблемные шлюзы начинают работать нормально, но может возникнуть проблема с ранее нормально работающим оборудованием.

Re: Asterisk RealTime + rtcachefriends

Добавлено: 27 июн 2012, 10:37
Vlad1983
rtcachefriends=yes
rtautoclear=yes
defaultexpiry=600
minexpiry=60
maxexpiry=3600

mysql> describe sipfriends;

Re: Asterisk RealTime + rtcachefriends

Добавлено: 03 июл 2012, 16:34
Ferrum
Еще такой вопрос, каким образом можно сделать обновление кеша, скажем при изменении данных в базе ?
к примеру у нас есть контекст local мы меняем в базе на local2, но в кеше остается local и пока не сделать sip reload ничего не измениться.

Re: Asterisk RealTime + rtcachefriends

Добавлено: 06 ноя 2015, 11:12
goba
Добрый день.

Собираю на RealTime на Asterisk 11. Тоже иду по всем граблям.

Не подскажете состояние переменных в sip.conf [geneal] , чтобы все нормально в режиме реалтайма бралось из базы и sip клиенты не отваливались.
Так же отдельный вопрос по call-limit. В исходниках в структуре БД этого поля вообще нет. Может его переименовали или еще что.
Я это поле добавил в БД , по команде realtime load sippeers name 1001 значение его обновляет. Но вот на ограничение одновременных вызовов работать не хочет.
Заранее спасибо.

Re: Asterisk RealTime + rtcachefriends

Добавлено: 06 ноя 2015, 13:48
_Pavel_
У меня так настроено, описание читаем в конфиге:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
rtcachefriends=yes ; Cache realtime friends by adding them to the internal list
; just like friends added from the config file only on a
; as-needed basis? (yes|no)

rtsavesysname=yes ; Save systemname in realtime database at registration
; Default= no

rtupdate=yes ; Send registry updates to database using realtime? (yes|no)
; If set to yes, when a SIP UA registers successfully, the ip address,
; the origination port, the registration period, and the username of
; the UA will be set to database via realtime.
; If not present, defaults to 'yes'. Note: realtime peers will
; probably not function across reloads in the way that you expect, if
; you turn this option off.
rtautoclear=no ; Auto-Expire friends created on the fly on the same schedule
; as if it had just registered? (yes|no|<seconds>)
; If set to yes, when the registration expires, the friend will
; vanish from the configuration until requested again. If set
; to an integer, friends expire within this number of seconds
; instead of the registration interval.

ignoreregexpire=yes ; Enabling this setting has two functions:
;
; For non-realtime peers, when their registration expires, the
; information will _not_ be removed from memory or the Asterisk database
; if you attempt to place a call to the peer, the existing information
; will be used in spite of it having expired
;
; For realtime peers, when the peer is retrieved from realtime storage,
; the registration information will be used regardless of whether
; it has expired or not; if it expires while the realtime peer
; is still in memory (due to caching or other reasons), the
; information will not be removed from realtime storage

Calllimit - https://wiki.asterisk.org/wiki/display/ ... ce+Options

Re: Asterisk RealTime + rtcachefriends

Добавлено: 06 ноя 2015, 13:51
_Pavel_
Еще надо не забыть про вот этот баг при клиентах за NAT.

Re: Asterisk RealTime + rtcachefriends

Добавлено: 06 ноя 2015, 17:12
goba
Может я не совсем всё так понимаю.

Но как вы работаете с rtcachefriends=yes ?
При таком режиме когда меняешь в базе контекст или пароль то изменения вступают в силу только после разлогина и последующей регистрации peer (со стороны клиента), что не совсем подходит.

Если сделать rtcachefriends=no то изменения в базе данных вступают в силу при следующем же звонке.

Однако так же установлено, что при rtcachefriends=no не воспринимается заданное в БД значение call-limit.
А вот если rtcachefriends=no, то call-limit работает как при использовании sip.conf


P/S/ Вообще идея какая, надо чтобы при отрицательном балансе у peer менялся контекст и он мог звонить только к примеру в экстренные службы. Ну и чтобы пользователей можно было на лету добавлять, удалять и редактировать. Может я не по тому пути иду, подскажите.

Re: Asterisk RealTime + rtcachefriends

Добавлено: 08 ноя 2015, 05:44
_Pavel_
У меня при любом изменении данных в базе через веб выполняется sip prune peer. Скорее всего решение не совсем правильное но работает.
Для ограничения по деньгам делается проверка из диалплана через AGI.

Re: Asterisk RealTime + rtcachefriends

Добавлено: 08 ноя 2015, 15:24
Pechen
goba писал(а):Добрый день.
Так же отдельный вопрос по call-limit. В исходниках в структуре БД этого поля вообще нет.
в сип френдс нет а в sip_buddies есть)

Re: Asterisk RealTime + rtcachefriends

Добавлено: 09 ноя 2015, 02:44
_Pavel_
Pechen Где ты sip_buddies нашел в 11 ветке ?

Смотрим в в wiki и что0то там такого нема.
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
Defined well-known family names are:

sippeers, sipusers - SIP peers and users
sipregs - SIP registrations
iaxpeers, iaxusers - IAX2 peers and users
voicemail - Voicemail accounts
extensions - Realtime extensions (switch)
meetme - MeetMe conference rooms
queues - Queues
queue_members - Queue members
musiconhold - Music On Hold classes
queue_log - Queue logging