Архив рубрики: Публикации

Asterisk. Соединение абонента с тем же оператором, при обрыве связи

Задача

Имеется небольшой call-центр. Все входящие звонки с разных линий и номеров сначала поступают на сервер Asterisk (FreeBSD+Asterisk 11.14.1), а он в свою очередь распределяет эти звонки между всеми операторами по определенному сценарию (queues).

При звонке, клиент сначала прослушивает голосовое приветствие, потом его сервер соединяет со свободным оператором, и начинается общение. Но часто бывает, что при плохой связи – звонок обрывает. Клиенту приходится заново перезванивать, слушать опять голосовое приветствие (которое порой может длиться до полуминуты), и попадает на оператора… на другого оператора. Приходится заново  рассказывать о своей проблеме другому оператору и решать все по новой. Порой “качество” связи (мобильной) может упасть на столько, что приходится перезванивать по 5-10 раз !!!

Поэтому было решено сделать так, что бы при обрыве, при повторном звонке, от одного и того же клиента – звонок шел без очереди на того же оператора, без голосовых приветсвий и т.д.

Решение

Решение оказалось довольно простым.

Будем использовать существующую базу Asterisk’а – CDRВ этой базе хранятся все записи и входящих и исходящих звонках нашего телефонного сервера.

Открываем файл /etc/asterisk/extensions.conf и правим нужный нам входящий канал. Добавляем такой блок:

 exten => 100,1,MYSQL(Connect connid IP_MYSQL ЛОГИН_MYSQL ПАРОЛЬ_MYSQL БАЗА_MYSQL)

 exten => 100,n,MYSQL(Query resultid ${connid} select dstchannel from cdr where clid like '%${CDR(src)}' and calldate like '${STRF TIME(${EPOCH},,%Y-%m-%d %H)}%')

 exten => 100,n,MYSQL(Fetch fetchid ${resultid} operator)

 exten => 100,n,GotoIf($["${operator}" = ""]?8:5)

 exten => 100,n,MYSQL(Clear ${resultid})

 exten => 100,n,MYSQL(Disconnect ${connid})

 exten => 100,n,Dial(SIP/${operator:-12:3},20,tT)

 exten => 100,n,Background(hello)

 exten => 100,n,Queue(support)

Что мы делаем

При входящем звонке, соединяемся с базой, делаем запрос, на поиск в таблице cdr в поле clid  по номеру водящего звонка (переменная %${CDR(src)} ) и время укажем последний текущий час (переменная ${STRF TIME(${EPOCH},,%Y-%m-%d %H)}%) в поле calldate.  Если звонок “новый” и еще не звонил в течении часа, то запрос вернет пустое значение в переменную operator, и звонок перекинется на проигрывание приветствия, и звонок поступит в очередь операторов, где на него ответит свободный оператор.

Пример cmd asterisk:

 -- Executing [100@local-phones:1] MYSQL("SIP/INPUT_MTS-0000006c", "Connect connid localhost aster password asterisk") in new stack

 -- Executing [100@local-phones:2] MYSQL("SIP/INPUT_MTS-0000006c", "Query resultid 3 select dstchannel from cdr where clid like '%099xxxxxxx' and calldate like '2017-09-06 09%'") in new stack

 -- Executing [100@local-phones:3] MYSQL("SIP/INPUT_MTS-0000006c", "Fetch fetchid 4 operator") in new stack

 -- Executing [100@local-phones:4] GotoIf("SIP/INPUT_MTS-0000006c", "1?8:5") in new stack

 -- Goto (local-phones,100,8)

 -- Executing [100@local-phones:8] BackGround("SIP/INPUT_MTS-0000006c", "hello") in new stack

 -- <INPUT_MTS-0000006c> Playing 'hello.slin' (language 'ru')

 -- Executing [100@local-phones:9] Queue("SIP/INPUT_MTS-0000006c", "support") in new stack

 -- Started music on hold, class 'default', on SIP/INPUT_MTS-0000006c

 == Using SIP RTP CoS mark 5

 -- SIP/971-0000006d is ringing

 -- SIP/971-0000006d answered SIP/INPUT_MTS-0000006c

 -- Stopped music on hold on SIP/INPUT_MTS-0000006c


Если же, клиент уже звонил и в базе cdr уже существует запись о том, что он звонил. Тогда в переменную operator вернется значение – SIP- номер оператора, с кем он разговаривал, и звонок уже вне очереди поступит напрямую к тому же оператору.

 -- Executing [100@local-phones:1] MYSQL("SIP/INPUT_MTS-0000006a", "Connect connid localhost aster password asterisk") in new stack

 -- Executing [100@local-phones:2] MYSQL("SIP/INPUT_MTS-0000006a", "Query resultid 1 select dstchannel from cdr where clid like '%099xxxxxxx' and calldate like '2017-09-06 09%'") in new stack 

 -- Executing [100@local-phones:3] MYSQL("SIP/INPUT_MTS-0000006a", "Fetch fetchid 2 operator") in new stack

 -- Executing [100@local-phones:4] GotoIf("SIP/INPUT_MTS-0000006a", "0?8:5") in new stack

 -- Goto (local-phones,100,5)

 -- Executing [100@local-phones:5] MYSQL("SIP/INPUT_MTS-0000006a", "Clear 2") in new stack

 -- Executing [100@local-phones:6] MYSQL("SIP/INPUT_MTS-0000006a", "Disconnect 1") in new stack

 -- Executing [100@local-phones:7] Dial("SIP/INPUT_MTS-0000006a", "SIP/971,20,tT") in new stack



2017-09-06T10:41:35
Asterisk

Как пользоваться Linux

В интернете существует множество инструкций, о том как установить Linux на компьютер, как установить его с несколькими другими системами, как настроить определенные аспекты работы, как делать те или иные действия, но нет дельной статьи о том, как пользоваться Linux, какие действия и когда стоит выполнять, зачем это нужно и как все делать правильно.

Мы поговорим о настройке системы, безопасности, обновлениях, журналах, очистке, резервном копировании и других подобных вещах. Я не претендую на звание эксперта в этой области. Я так делаю в своей системе и предлагаю делать вам, но это всего лишь мое мнение, вы и другие пользователи могут считать по-другому. Статья использование linux ориентирована на обычных пользователей, а не системных администраторов и программистов. Но я думаю, что вы можете найти что-то полезное для себя в этой статье.

Читать

Управление рисками информационной безопасности, Милославская Н.Г., Сенаторов М.Ю., Толстой А.И., 2014.

Управление рисками информационной безопасности, Милославская Н.Г., Сенаторов М.Ю., Толстой А.И., 2014.

В учебном пособии вводится понятие риска информационной безопасности (ИБ) и определяются процесс и система управления рисками ИБ.

Детально рассмотрены составляющие процесса управления рисками ИБ, а именно:

установление контекста управления рисками ИБ с определением базовых критериев принятия решений, области действия и границ управления рисками ИБ; оценка рисков ИБ, состоящая из двух этапов – анализ (с идентификацией активов, угроз ИБ, существующих элементов управления, уязвимостей и последствий) и оценивание (с определением последствий, вероятностей и количественной оценки рисков) рисков ИБ; Читать

VRRP для Mikrotik. Резервирование оборудования

Протокол VRRP

Протокол VRRP предназначен для увеличения доступности маршрутизаторов выполняющих роль шлюза по умолчанию.

VRRP (Virtual Router Redundancy Protocol) — сетевой протокол, предназначенный для увеличения доступности маршрутизаторов выполняющих роль шлюза по умолчанию. Это достигается путём объединения группы маршрутизаторов в один виртуальный маршрутизатор и назначения им общего IP-адреса, который и будет использоваться как шлюз по умолчанию для компьютеров в сети.

Настраиваем первый Mikrotik – R1:




1

2

3


/ip address add address=10.20.30.200/24 interface=ether1

/interface vrrp add interface=ether1 vrid=101 priority=250

/ip address add address=10.20.30.1/32 interface=vrrp1

На втором Mikrotik‘е – R2:




1

2

3


/ip address add address=10.20.30.201/24 interface=ether1

/interface vrrp add interface=ether1 vrid=101

/ip address add address=10.20.30.1/32 interface=vrrp1

vrid – уникальный идентификатор виртуального роутера. На всех роутерах  одного нода должен  выставляться одинаковый

Так же есть параметр preemption-mode=yes если этот режим выключен: после того, как slave станет мастером, он им и останется, даже когда мастер вернется в строй.

Наименьший priority имеет VRRP Backup router(резервный) . По дефолту priority = 100.

Проверяем на R1:




1

2

3

4


/interface vrrp print

 0   RM name="vrrp1" mtu=1500 mac-address=64:D1:54:14:83:80 arp=enabled interface=ether1 vrid=101

        priority=250 interval=1 preemption-mode=yes authentication=none password="" on-backup=""

        on-master=""

Проверяем на R2:




1

2

3

4


/interface vrrp print

 0    B name="vrrp1" mtu=1500 mac-address=64:D1:54:14:83:80 arp=enabled interface=ether1 vrid=101

        priority=100 interval=1 preemption-mode=yes authentication=none password=""

        on-backup="" on-master="

Результат, MAC одинаков на обоих роутерах.




/interface vrrp














СвойствоОписание
interface (string; Default: )Interface name on which VRRP instance will be running
vrid (integer: 1..255; Default: 1)Virtual Router identifier. Each Virtual router must have unique id number
priority (integer: 1..254; Default: 100)Priority of VRRP node used in Master election algorithm. Higher number means higher priority. ‘255’ is reserved to Router that owns VR IP and ‘0’ is reserved for Master router to indicate that it is releasing responsibility.
interval (integer: 1..255; Default: 1)VRRP update interval in seconds. Defines how often master sends advertisement packets.
preemption-mode (yes|no; Default: yes)Whether master node always has the priority. When set to ‘no’ backup node will not be elected to be a master until the current master fails, even if the backup node has higher priority than the current master. This setting is ignored if Owner routerbecomes available
authentication (ah,none,simple; Default: none)Authentication method to use for VRRP advertisement packets.

  • none — should be used only in low security networks (e.g., two VRRP nodes on LAN).
  • ah — IP Authentication Header. This algorithm provides strong protection against configuration errors, replay attacks and packet corruption/modification. Recommended when there is limited control over the administration of nodes on a LAN.
  • simple — uses clear text password. Protects against accidental misconfiguration of routers on local network.

password (string; Default: )Password required for authentication. Can be ignored if authentication is not used.
name (string; Default: )VRRP interface name
on-backup (string; Default: )Script to execute when the node switch to backup state
on-master (string; Default: )Script to execute when the node switch to master state



2017-08-23T09:03:29
MikroTik

Родительский контроль на Android

Встроенные функции родительского контроля Android

К сожалению, на момент написания статьи, сама система Android (а также встроенные приложения от Google) не очень богата действительно востребованными функциями родительского контроля. Но кое-что можно настроить и не прибегая к сторонним приложениям.
Примечание: расположение функций указано для «чистого» Android. На некоторых устройствах с собственными лаунчерами настройки могут находиться в других местах и разделах (например, в «Дополнительно»).
Для самых маленьких — блокировка в приложении
Функция «Блокировка в приложении» позволяет запустить одно приложение на весь экран и запретить переключение на любое другое приложение или «рабочий стол» Android.
Чтобы использовать функцию, выполните следующее:
  1. Зайдите в Настройки — Безопасность — Блокировка в приложении.
  2. Включите опцию (предварительно прочитав о ее использовании). Включение блокировки в приложении
  3. Запустите нужное приложение и нажмите кнопку «Обзор» (квадратик), слегка потяните приложение вверх и нажмите по изображенной «Булавке». Блокировка в приложении на Android
В итоге, использование Android будет ограничено этим приложением, пока вы не отключите блокировку: для этого нажмите и удерживайте кнопки «Назад» и «Обзор».

Родительский контроль в Play Маркет

Google Play Маркет позволяет настроить родительский контроль для ограничения установки и покупки приложений.
  1. Нажмите кнопку «Меню» в Play Маркет и откройте настройки.
  2. Откройте пункт «Родительский контроль» и переведите его в положение «Вкл», задайте пин-код. Включение родительского контроля в Play Маркет
  3. Установите ограничения по фильтрации Игр и приложений, Фильмов и Музыки по возрасту. Настройка родительского контроля для приложений Play Маркет
  4. Чтобы запретить покупать платные приложения без ввода пароля учетной записи Google в настройках Play Маркет используйте пункт «Аутентификация при покупке».

Родительский контроль в YouTube

Настройки YouTube позволяют частично ограничить неприемлемые видео для ваших детей: в приложении YouTube нажмите по кнопке меню, выберите «Настройки» — «Общие» и включите пункт «Безопасный режим».
Также, в Google Play есть отдельное приложение от Google — «YouTube для детей», где этот параметр по умолчанию включен и его нельзя переключить обра

10 приложений для безопасности ребенка

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


1. SafeKiddo

Программа предлагает разные виды контента для детского просмотра в зависимости от их возраста. Вы можете установить запрет на интернет, приложения и игры на определённое время. Кроме того, вы контролируете магазины приложений и имеете право разрешить или запретить пользоваться установленным приложением или игрой. Для Google и YouTube есть функция «безопасного поиск». Если вы её активируете, ваш ребёнок будет иметь доступ только к подходящим веб-страницам и видео. SafeKiddo работает в любой сети WiFi – мобильной, домашней или общественной. Весь процесс мониторинга демонстрируется вам в виде отчётов о поисковой активности и детального журнала посещённых сайтов. Одна проблема – в программе нет русского интерфейса, придётся разбираться с английским.


2. SkyDNS

В программе имеется фильтр сайтов из более чем 50 категорий. Распределяя сайты по этим категориям, вы можете ограничить доступ ребёнка к тем из них, которые не подходят ему по возрасту, или по другим соображениям. В вашем распоряжении есть так же статистика посещённых сайтов, ограничение показа баннеров и рекламы (шокирующего или порнографического содержания). Удачная функция SkyDNS — блокировка сайтов, ворующих деньги и пароли. Ребёнок увидит предостерегающую надпись и доступ к сайту будет заблокирован. Только родители имеют доступ к настройкам фильтра и расписанию работы (например, днём, пока родители на работе, автоматически включаются детские настройки, а вечером — родительские). Есть русский интерфейс.


3. MSpy

В программе для смартфонов можно видеть входящие и исходящие звонки, их абонентов и продолжительность. Все SMS, электронные письма и сообщения в мессенджерах, их полный текст и абоненты тоже в вашем распоряжении. Отчёт об использовании телефона и интернета, история поиска, изменения в списке контактов и в календаре, новые фото и видео – всё это будет видно в вашем аккаунте на MSpy. Кроме того, только вы разрешаете или запрещаете установку игр, программ и приложений, а в случае кражи телефона cможете удалённо заблокировать доступ к личным данным. Очень удобная для родителей функция – GPS-трекинг местонахождения вашего ребёнка. Эта программа также не поддерживает русский язык в интерфейсе и на официальном сайте.


4. KidLogger

Бесплатный родительский контроль времени для Android. После установки вы задаёте время начала и конца трёх периодов дня. В «школьное» и «вечернее» время разрешены только образовательные приложения (заносите в этот список то, что разрешаете использовать без ограничений). Так можно поощрять детей работать с полезными программами. В «ночное время», после «отбоя», пользоваться телефоном нельзя. В остальные периоды дня доступны все приложения, кроме «нежелательных», но их использование ограничено по времени. Если вы не хотите запрещать доступ к играм, не заносите их не в один из списков. Тогда на них будут распространяться те же временные рамки, что и на всё остальное.KidLogger блокирует «нежелательные» приложения, определяет местонахождение ребёнка, ведёт учёт посещённых сайтов и запущенных программ, а главное, информирует о том, сколько времени ребёнок провёл на конкретном сайте или в приложении и ограничивает время на игры. Отчёты доступны удалённо, через интернет, а программа на телефоне ребёнка защищена от удаления. Для полностью скрытого приложения, о котором не знает пользователь телефона, есть премиум-версия. Доступны русский интерфейс программы, официальный сайт на русском языке со всеми подробностями установки и настройки и оперативная русская техподдержка.


 5. KidShell

Эта программа несколько отличается от предыдущих. Она представляет собой «песочницу» для детей на вашем мобильном устройстве – специально выделенную зону безопасного использования программ. Аккаунт для ребёнка на вашем телефоне настроен на запуск исключительно разрешённых приложений. Без настроенного доступа ребёнок не сможет позвонить, написать смс, купить или запустить приложение. Можно заблокировать также переход по рекламным ссылкам, случайные переходы в магазин приложения, доступ в интернет. Кроме того, вы всегда можете определить, сколько времени ребёнок может проводить с вашим телефоном. Доступен русскоязычный интерфейс.


6. PlayPad

Программа напоминает KidShell. Это тоже «песочница» на смартфоне. Главный экран в детском аккаунте представляет собой четыре группы приложений: «Игры», «Развитие», «Обучение» и «Другие приложения». Эти группы заполняются в родительском режиме подходящими на ваш взгляд приложениями. Из защитных опций есть блокировка звонков и SMS, а также доступа к настройкам, чтобы ребёнок не мог их изменить. Из функций PlayPad для устройств, принадлежащих детям, очень полезно ограничение времени на пользование телефоном в день (платная версия), на использование определённых приложений и установку программ. В платной версии можно установить точные временные рамки блокировки работы смартфона (например, на время уроков), отследить местоположение ребёнка, установить защиту от случайных кликов. Программа от российских разработчиков, имеется русскоязычный интерфейс.


7. KinderGate

Программа обладает фильтром U
RL, который работает на основе огромной универсальной базы интернет-адресов и локальных источников (например, списка запрещённых адресов МинЮста). Сайты блокируются не только по адресам, но и в том случае, если в текстах встречаются слова из словаря запрещённых слов.  Безопасность ребёнка в интернете обеспечивается также ограничением соцсетей, блокировкой сайтов знакомств, блокировкой возможности пересылки файлов в мессенджерах (защита от вирусов) и подробными отчётами  о том, на каких сайтах бывает ваш ребёнок. Интерфейс и сайт доступны на русском языке.


8. Kids Place

Ещё одна «песочница»: вы сами определяете, какие приложения могут быть им доступны. SMS, звонки, покупка приложений и другие платные действия могут быть заблокированы. Кнопки Назад, Домой, Звонок и Поиск тоже блокируются, чтобы ребёнок не мог позвонить или выйти из Kids Place. Есть определитель входящих звонков, блокировка запуска Marketplace, а также блокировка телефона при перегрузке. Русской версии, к сожалению, не нашли.


9. Norton Family

И снова функции, похожие на вышеописанные. Есть контроль интернета и соцсетей (журнал посещённых сайтов, блокировка нежелательных ресурсов, контроль поисковых запросов, частота использования соцсетей и данные, которые дети в них указывают). Блокируется публикация личных данных с устройства ребёнка, требуется запрос доступа к заблокированному сайту, настраивается расписание использования компьютера и ограничивается время. Родителей информируют о том, какие видео смотрит ребёнок, какими приложениями пользуется. Функции определения местонахождения и отслеживания SMS работают для Канады, Великобритании и США. Всеми настройками можно управлять удалённо, так же, как и получать информацию о действиях ребёнка. Сайт можно прочитать и на русском, что удобно.


10.  Kaspersky

Родительский контроль от этого производителя поставляется только в составе других продуктов, например, Kaspersky Total Security 2016. Возможности контроля достаточно широки: можно ограничить время пребывания в интернете, создать список нежелательных сайтов (по всему названию сайта, или по его части, по тематике – «эротика», «жестокость» и т.д.). Ужесточить контроль можно при помощи «белого списка» сайтов. В этом случае ребёнок сможет заходить исключительно на те сайты, которые находятся в списке разрешённых. Можно настроить недельное расписание использования гаджета, а также дневной лимит на компьютер в целом и интернет в частности. Есть также возможность управлять контактами ребёнка в соцсетях, т.е. блокировать тех, кто, по вашему мнению, является нежелательным собеседником. Программа российского разработчика, соответственно, русский – один из языков интерфейса и на сайте.

Автор: Guest Rooms «Varnaflats.eu»
Дата публикации: 2017-08-21T04:13:00.002-07:00