Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

SIP авторизации

Если есть задача получить IP адреса, с которых наблюдалась активность клиента за определенный промежуток времени, то можно использвать таблицу sip_auth_log.

Например, как получить такие данные для клиента  с префиксом "0004*" c первого по девятое апреля включительно (в любом домене):

select distinct inet_ntoa(ip) from sip_auth_log where date_gmt>='2017-04-01 00:00:00' and date_gmt<'2017-04-10 00:00:00' and locate('0004*', ext_name)

Логика сбора данных следующая:

  1. Существует кэш IP, с которых авторизовывался добавочный, длительностью сутки (отсчет от последнего рестарта kamailio). Ключом кэша являтется "имя добавочного + IP"
  2. При каждом авторизованном запросе от добавочного (REGISTER, INVITE...) данные записываются в базу и кэш, если их нет в кеше и ничего не делается, если они там есть

Таким образом, не более раза в сутки возможны повторные ip адреса для добавочного. (кроме случаев, когда кэш очищается при перезагрузке kamailio)

Адреса медиа

В таблице cdr при  вызовах, уходящих на добавочный или приходящих с него, сохраняется IP адрес медиа. Например для клиента с идентифиактором id=2944 (проще всего выяснить из пути url в административном интерфейсе)

select distinct( inet_ntoa(device_ip) ) from cdr where  init_time_gmt>='2016-01-01' and client_owner_id=2944 and ext_type='phone' and device_ip>0 

Индексы

в запросе обязательно нужно указывать период и id клиента, иначе индексы не будут работать. Например, нельзя написать запрос так

select distinct( inet_ntoa(device_ip) ) from cdr where  init_time_gmt>='2016-01-01' and locate('0004*', ext_name) and ext_type='phone' and device_ip>0

Локальные Адреса

Иногда (около 5%) для одного и того же добавочного в адресе медиа кроме внешних адресов оказываются локальные адреса (например, вида 192.168.xxx.xxx). Для их фильтрации можно делать запрос

select distinct( inet_ntoa(device_ip) ) from cdr where  init_time_gmt>='2016-01-01' and client_owner_id=2944 and ext_type='phone' and device_ip>0
and not (
device_ip>>24 in (10, 127, 224) or 
device_ip>>24=192 and  (device_ip&0xFF0000)>>16=168 or
device_ip>>24=172 and  (device_ip&0xFF0000)>>16=16 or
device_ip>>24=169 and  (device_ip&0xFF0000)>>16=204
)


особенности добавочных

Некоторые услуги могут работать, как добавочные. Например, регистрация внешнего номера или алиасы (FMC). В этом случае адресами медиа будут выступать адреса транков



  • No labels