Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

Code Block
languagesql
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) like "0004*%sip.domain.com%"

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

...

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

 
/* или с одновременным поиском идентификатора клиента */
select distinct( inet_ntoa(device_ip) ) from cdr where  init_time_gmt>='2016-01-01' and 
locate('0004*', ext_name
client_owner_id=(select rc.id from ringme.client rc, ringme.domain rd where rc.domain_id=rd.id and prefix='0004' and rd.name='mydomain') and ext_type='phone' and device_ip>0 
Code Block
languagesql
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 
Warning
titleИндексы

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

Code Block
languagesql


Warning
titleИндексы

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


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

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

Code Block
languagesql
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
)


...