Подскажите в какую сторону копать, нужно реализовать запись в базу и удаление из неё информации по состоянию пира, online-offline. Спасибо
делаете так
1) переводите все пиры в реалтайм.
2) ставите
rtcachefriends=no
rtupdate=yes
rtautoclear=yes; это по жделанию
3) ставите триггер на табличку beforeupdate. при регистрации апдейтиться адрес и порт девайса. тоесть если идет апдейт с этой инфой, то это регистрация. если идет апдейт с нулевыми значеними - это unregister. если вашей подготовки на триггер не хватает - идем читать mysql.com или просим помощь у мускл-комьюнити.
ami + sip|iax2 show peers
А если у пира поставить qualify=yes, а потом мониторить лог messages на предмет записей:
[May 24 08:53:22] NOTICE[3102] chan_sip.c: Peer 'peer1' is now UNREACHABLE! Last qualify: 25
[May 24 08:55:39] NOTICE[3102] chan_sip.c: Peer 'peer1' is now Reachable. (23ms / 2000ms)
при желании можно фильтровать это в отдельный лог,
параметрами qualifyfreqok, qualifyfreqnotok можно добится сверхонлайна :)
не подойдет?
этот способ рассматривался, так же как и через manager. но интересует именно по каждому register-unregister так как при ami это можно делать например по крону раз в минуту. а нужна оперативная информация. Спасибо
Попробую Ваш способ с триггером, пункт 1-2 и так выполнен, а ещё параллельно вопрос, пример: девайс прислал register, а потом его просто выткнули из сети, то есть не успел отправить unregister. Я так полагаю, что инфа в таблице останется на вечно, как этот момент проверять? Спасибо
Задан: 2011-05-23 16:15:46 +0400
Просмотрен: 316 раз
Обновлен: May 24 '11
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.