По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Привет! В статье расскажем о бесплатном способе передачи информации о звонящем в момент звонка из Битрикс24. Проверять мы будем лид и контакт. В качестве системы, куда мы будет отправлять данные будет уютный Telegram :) Погнали. Создаем Вебхук в Битрикс24 Переходим в Битрикс24 и открываем раскрывающееся меню в верхнем левом углу. Далее, выбираем «Вебхуки»: Добавляем Входящий вебхук, нажав на зеленую кнопку в правом верхнем углу Добавить вебхук. Делаем следующие настройки: Название - дайте имя. Например «Внешний доступ к REST API»; Описание - «cоответствие номера клиента и его имени»; Права доступа - необходимо выбрать «CRM (crm)»; Нажимаем «Сохранить». Для нас будет сгенерирован Вебхук. Переходим к настройке скрипта. Telegram - бот Перед продолжение настройки, вам необходимо создать Telegram – бота. О том, как это сделать читайте по кнопке: Создание бота Скрипт интеграции Из предыдущего шага, у вас должен быть идентификатор чата в Telegram, токен бота, вебхук и доменное имя вашего Битрикс24. Все, остальное дело скрипта: #!/usr/bin/php -q <?php #подключаем AGI - библиотеку; require('phpagi.php'); $agi = new AGI(); $cid = $agi->request['agi_callerid']; #от провайдера, номер на нашу АТС прилетает в формате 79ХХХХХХХХХ. В CRM номера записаны как 89ХХХХХХХХХ. Поэтому, мы стрипаем цифру спереди и подставлем 8ку; $phone = substr($cid, 1); $phone = "8$phone"; $phoneFieldset = "Коллеги, входящий звонок. Звонящий: "; #укажите служебные параметры: токен бота, идентификатор чата, хостовое имя CRM (то, что между https:// и до .bitrix24.ru) и вебхук, который мы получили ранее; $token = "333333333:MMMMMEEEEE_RRRIIIIOOOO_NNNNEEEETTTT"; $chat_id = "-1001001001001"; $crm_id = "имя_вашего_Битрикс24"; $webhook = "wblhahgytuwrnwer"; #проверяем существование лида по номеру; $bitrix_lead_url = "https://$crm_id.bitrix24.ru/rest/2/$webhook/crm.lead.list.json?filter[PHONE]=$phone&select[]=TITLE&select[]=NAME&select[]=LAST_NAME"; $btl = curl_init(); curl_setopt ($btl, CURLOPT_URL,$bitrix_lead_url); curl_setopt ($btl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); curl_setopt ($btl, CURLOPT_TIMEOUT, 60); curl_setopt ($btl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt ($btl, CURLOPT_RETURNTRANSFER, 1); $bitrix_lead = curl_exec ($btl); curl_close($btl); $bitrix_lead_o = json_decode($bitrix_lead, true); $l_total = $bitrix_lead_o['total']; #проверяем существование контакта по номеру; $bitrix_contact_url = "https://$crm_id.bitrix24.ru/rest/2/$webhook/crm.contact.list.json?filter[PHONE]=$phone&select[]=TITLE&select[]=NAME&select[]=LAST_NAME"; $btc = curl_init(); curl_setopt ($btc, CURLOPT_URL,$bitrix_contact_url); curl_setopt ($btc, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); curl_setopt ($btc, CURLOPT_TIMEOUT, 60); curl_setopt ($btc, CURLOPT_FOLLOWLOCATION, 1); curl_setopt ($btc, CURLOPT_RETURNTRANSFER, 1); $bitrix_contact = curl_exec ($btc); curl_close($btc); $bitrix_contact_o = json_decode($bitrix_contact, true); $c_total = $bitrix_contact_o ['total']; #если найден лид, то: формируем массив и кидаем в сторону Telegram: имя, фамилия и идентификатор лида; if ($l_total >= 1) { $l_name = $bitrix_lead_o['result'][0]['NAME']; $l_title = $bitrix_lead_o['result'][0]['TITLE']; $l_l_name = $bitrix_lead_o['result'][0]['LAST_NAME']; $l_id = $bitrix_lead_o['result'][0]['ID']; $l_titleFieldset = "Входящий звонок от лида - "; $l_FnameFieldset = "Его имя - "; $l_linkFieldset = "Ссылка на лид - "; $l_fullname = "$l_name $l_l_name"; $l_link = "https://$crm_id.bitrix24.ru/crm/lead/show/$l_id/"; $arr = array( $l_titleFieldset => $l_title, $l_FnameFieldset => $l_fullname, $l_linkFieldset => $l_link, ); foreach($arr as $key => $value) { $txt .= "".$key." ".$value."%0A"; }; fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r"); } #если найден контакт, то: формируем массив и кидаем в сторону Telegram: имя, фамилия и идентификатор контакта; elseif ($c_total >= 1) { $c_name = $bitrix_contact_o ['result'][0]['NAME']; $c_c_name = $bitrix_contact_o ['result'][0]['LAST_NAME']; $c_id = $bitrix_contact_o ['result'][0]['ID']; $c_FnameFieldset = "Входящий звонок от контакта - "; $c_linkFieldset = "Ссылка на контакт - "; $c_fullname = "$c_name $c_c_name"; $c_link = "https://$crm_id.bitrix24.ru/crm/contact/show/$c_id/"; $arr = array( $c_FnameFieldset => $c_fullname, $c_linkFieldset => $c_link, ); foreach($arr as $key => $value) { $txt .= "".$key." ".$value."%0A"; }; fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r"); } else {}; Скачать скрипт По факту, от вас требуется изменить следующие переменные: $token - токен вашего бота. Как его получить указано в стате по ссылке «Создание телеграм бота» выше; $chat_id - идентификатор чата, в котором находится бот. Генерация так же указана в статье; $crm_id - хостовая часть вашего Битрикс24. Если у вас URL CRM company.bitrix24.ru, то указать нужно company; $webhook - вебхук. Мы показывали ранее, как его получить в Битрикс24 (у нас wblhahgytuwrnwer); Сохраняем скрипт как b24.php закидываем его в директорию /var/lib/asterisk/agi-bin. Адаптируем скрипт в unix – среде: dos2unix /var/lib/asterisk/agi-bin/b24.php chown asterisk:asterisk /var/lib/asterisk/agi-bin/b24.php chmod 775 /var/lib/asterisk/agi-bin/b24.php В диалплане (вставьте исполнение скрипта в транке, например): exten => _.,n,AGI(b24.php) Добавив в скрипт конструкцию вида $agi->set_variable("lookupcid", "$c_fullname"); для контакта или $agi->set_variable("lookupcid", "$l_fullname"); для лида, в диалплане мы сможем сделать следующее: Set(CALLERID(name)=${lookupcid}) мы получим имя звонящего в виде CallerID Name – например, на дисплее телефона. Можете создать тестового лида (или контакт) со своим номером телефона или дождаться звонка клиента. Наслаждаемся :)
img
Уровни выполнения (runlevel) Linux можно представить, как режим, в котором запускается система. Каждый из этих режимов обладают своими процессами, которые включены или выключены в зависимости от запущенного уровня выполнения. С момента загрузки Linux выполняется в одном из режимов, нельзя запускать систему в нескольких режимах, но есть возможность переключаться между уровнями во время работы на компьютере. Например, при запуске системы с графическим интерфейсом выполняется один уровень, а если запускать систему в режиме командной строки выполнится другой. Это происходит потому, что режиму GUI нужны доступы к тем процессам, в которых командная строка не нуждается. В зависимости от того, какие службы нужно включить, а какие выключить система меняет уровни выполнения. Почему важны уровни доступа Вы можете годами пользоваться системой Linux, даже не понимая разницу между уровнями доступа, так как эта опция не является часто конфигурируемой. Тем не менее уровни выполнения Linux дают администраторам повышенный контроль над системой. Режим, в котором работает система, может быть изменен (как это сделать будет показано далее), как и сервисы, которые выполняются в этом режиме. Это позволяет нам полностью контролировать, к каким службам система будет иметь доступ в данный момент. Сколько уровней выполнения существует? В системе Linux есть семь уровней выполнения, которые нумеруются от 0 до 6. Разные дистрибутивы по-разному используют уровни выполнения, так что очень сложно составить список задач, которые выполняет конкретный уровень. Зато вы сами можете посмотреть какие задачи выполняют уровни доступа вашего дистрибутива. Ниже приведён список уровней выполнения и основных задач, выполняемых ими. Runlevel 0 завершает работу системы Runlevel 1 однопользовательский режим работы. Чаще всего используется в целях обслуживания и выполнения других административных задач. Это уровень также может называться runlevel S, где S означает single-user. Если вам когда-то приходилось сбрасывать пароль на Linux, то вы вероятно уже пользовались этим режимом. Runlevel 2 многопользовательский режим работы без поддержки сетевых служб (демонов). Runlevel 3 многопользовательский режим с поддержкой сети, но без графического интерфейса. Чаще всего серверные версии Linux работают именно на этом уровне выполнения. Runlevel 4 не используется. Пользователь может настраивать этот уровень исходя из его целей. О том, как это сделать также будет рассказано далее. Runlevel 5 этот режим схож с уровнем 3, но тут еще запускается графический интерфейс. В этом режиме работают десктопные версии Linux. Runlevel 6 этот уровень перезагружает систему. Как узнать текущий режим работы? Чтобы узнать текущий уровень выполнения достаточно ввести команду runlevel в командной строке. На выводе этой команды две цифры. Первая указывает на предыдущий режим работы, а второй на текущий. На скриншоте вместо первой цифры указана буква N, что значит система изначально запускалась и работает в 5 режиме, о чём говорит вторая цифра 5. Как менять уровень выполнения? Текущий уровень выполнения можно менять командой "telinit". Ниже приведён пример смены уровня выполнения на CentOS. $ telinit 3 Следует отметить, что эта операция требует прав привилегированного пользователя. Имейте ввиду, что на системах семейства Debian уровни выполнения работают по-другому. Например, Ubuntu в режиме командой строки запускается с уровнем выполнения 5. После выполнения команды указанной выше, ваш экран может стать пустым. Это потому, что вы остались на пустом терминале, чтобы вернутся на рабочий терминал нажмите комбинацию клавиш Alt+F1. Если запустить команду runlevel еще раз, то мы увидим, что текущий уровень выполнения 3, а предыдущий 5. Linux system против runlevels В последние годы systemd сменила многолетнюю систему уровней доступа (System V init). Фактически он работает по тому же принципу, но использует новые команды, которые в целом используют "runlevel" как "target". Runlevel 0 = poweroff.target (runlevel0.target) Runlevel 1 = rescue.target (runlevel1.target) Runlevel 2 = multi-user.target (runlevel2.target) Runlevel 3 = multi-user.target (runlevel3.target) Runlevel 4 = multi-user.target (runlevel4.target) Runlevel 5 = graphical.target (runlevel5.target) Runlevel 6 = reboot.target (runlevel6.target) По ходу статьи мы изучим systemd и его команды. Как поменять уровень выполнения по умолчанию? Может быть очень много причин для того чтобы загружаться с другим уровнем выполнения. Например, системные администраторы в основном используют систему в режиме командой строки, включая графический интерфейс только в случае необходимости. Именно для таких случаев нужно убедиться, что уровень выполнения по умолчанию 3, а не 5. В прошлом для этого приходилось редактировать файл /etc/inittab. Вы еще можете увидеть эту практику на некоторых системах. Если вы работаете с ОС, которые давно не обновляются до новых версий, этот путь будет приемлемым. $ vi /etc/inittab На скриншоте уровнем выполнения по умолчанию установлен 5. Но большинство систем Linux отказались от файла /etc/inittab в пользу systemd targets и мы рассмотрим разницу между ними по ходу статьи. Вы можете не найти в своей системе файл /etc/inittab или же файл inittab выведет вам сообщение с советом использовать systemd. Чтобы проверить текущий уровень выполнения по умолчанию введите команду $ systemctl get-default Система вернула нам "graphical.target". Как вы наверное и догадались, это не что иное, как уровень выполнения 5. Чтобы просмотреть остальные "target" и уровни выполнения, ассоциированные с ними введите команду: $ ls -l /lib/systemd/system/runlevel* Символьные ссылки указывают на то, что systemd работают так же как и runlevel. Итак, что необходимо сделать, чтобы поменять уровень выполнения по умолчанию? Для этого достаточно создать новую символьную ссылку на интересующую нас цель systemd. $ ln -sf /lib/systemd/system/runlevel3.target /etc/systemd/system/default.target Данной командой мы поменяли режим запуска системы по умолчанию с уровня выполнения 5, на 3 и при следующей загрузке система выполнить именно этот уровень. Ключ f указывает на то, что перед созданием новой символьной ссылки целевой файл должен быть удален. Это же самое могли бы сделать командой rm. Чтобы проверит успешно ли применились изменения достаточно повторно ввести команду "systemctl get-default". Разница между уровнями выполнения 3 и 5 Самыми часто используемыми уровнями выполнения являются уровни 3 и 5. В целом их разница сводится к тому, что 3 это режим командной строки, а 5 режим графического интерфейса. Конечно, не во всех дистрибутивах выполняется это условие или же ваша система может быть сконфигурирована так, что эти два уровня имеют больше отличий. Дальше мы рассмотрим, как узнать, какие процессы задействованы для того или иного уровня. Просмотр список служб конкретного уровня Чтобы просмотреть список служб, доступных для каждого уровня до недавнего времени использовалась команда "chkconfig -list". Если у вас стоит одна из последний версий, системы, то вероятно вы получите ошибку, как на скриншоте ниже: Чтобы проверить, какие службы запускаются во время загрузки системы в режиме графического интерфейса (уровень выполнения 5 для семейства RedHat), нужно запустить следующую команду: $ systemctl list-dependencies graphical.target Чтобы просмотреть список доступных служб другого уровня, просто замените "graphical.target" на нужную. Под каким уровнем работает процесс Если нужно посмотреть по каким уровнем выполнения запущена та или иная служба, можно ввести команду: $ systemctl show -p WantedBy [name of service] Например, чтобы посмотреть какой runlevel использует служба sshd, введите команду: $ systemctl show -p WantedBy sshd.service Судя по скриншоту выше, служба sshd запушена под уровнями 2,3 и 4 (multi-user.target) Меняем уровень запуска приложения Как было показано выше, демон SSH запущена только на уровнях 2-4. Что если нам нужно, чтобы он работал ещё и на уровне 5? Для этого нужно ввести следующее изменение: $ systemctl enable sshd.service Проблемы безопасности с уровнями доступа Linux Как было сказано ранее, уровни доступа дают администраторам возможность управлять службами, которые работают в определённых случаях. Такая возможность детального контроля повышает безопасность системы, так как системный администратор может быть уверен, что не запущена ни одна сторонняя служба. Проблема возникает, когда администратор не знает точно какие службы запущены и, следовательно, не может принять меры по уменьшению площади атаки. Используя методы из данного руководства, вы можете настроить уровень выполнения по умолчанию и контролировать запущенные приложения. Это, конечно, не уменьшит нагрузку на системные ресурсы, но сервер будет более защищен. Помните, что надо запускать тот уровень, который вам необходим. Нет смысла запускать систему в графическом режиме, если планируете работать там режиме командной строки. Каждый уровень выполнения запускает новые службы, большинство из которых работают в фоновом режиме, и вы можете забыть обезопасить их. Какой уровень выполнения выбрать? Выбор режима запуска системы полностью зависит от ситуации. В основном используется один из двух режимов: либо runlevel 3, либо runlevel 5. Если вам удобно работать с командной строкой и вам не нужен графический интерфейс, то уровень выполнения 3 самый подходящий. Это предотвратит запуск ненужных служб. С другой стороны, если вам хочется работать в десктопном режиме или же вам нужна графическая оболочка для работы какой-то программы, то выберите уровень 5. Если же нужно запустить систему в режиме обслуживания, то выбирайте уровень 1. В этом режиме в системе будете только вы, так как сетевые службы даже не запущены. Это позволит выполнить обслуживания без сбоя. В редких случаях появляется необходимость использовать уровень выполнения 4. Это может быть только в том случае, если администратору нужен уровень выполнения для особых задач. Как вы уже, наверное, заметили, мы не может запускать систему с уровнем 0 и 6, но можно переключаться на них если нужно выключить или перезагрузить систему. Но в этом нет особой необходимости, так как есть команды, которые выполняют эти операции. Можно ли создано новый уровень на Linux? Так как система Linux это система бесконечных возможностей, то и создание нового уровня не исключение. Но очень маловероятно, что вам когда-нибудь понадобится это. Но если вы все-таки решили создать новый уровень, то следует начать с копирования существующего уровня и изменения её под свои задачи. Целевые уровни расположены по следующему пути: /usr/lib/systemd/system Если хотите создать свой уровень на основе 5-го уровня выполнения, скопируйте искомую директорию в новую: $ cp /usr/lib/systemd/system/graphical.target /usr/lib/systemd/system/mynew.target Затем в новой директории создайте поддиректорую "wants": $ mkdir /etc/systemd/system/mynew.target.wants Затем просто создайте символьную ссылку на дополнительные службы в директории /usr/lib/systemd/system, которые необходимы вашему уровню.
img
Redis – это высокопроизводительная БД, которая хранит данные в памяти, доступ к которым осуществляется по ключу доступа. Она может использоваться в качестве базы данных, кэша и брокера сообщений и поддерживает различные структуры данных, такие как строки, хэши, списки, наборы и т. Д. Redis обеспечивает высокую доступность через Redis Sentinel и автоматическое разбиение между несколькими узлами Redis с помощью Redis Cluster. Это руководство описывает установку и настройку Redis в CentOS 8. Подробно про Redis можно прочесть в этой статье. Установка Redis в CentOS 8 Redis версии 5.0.x включен в стандартные репозитории CentOS 8. Для его установки выполните следующие команды от имени пользователя root или пользователя с привилегиями sudo (про то как получить права sudo можно прочесть тут) sudo dnf install redis-server После завершения установки включите и запустите службу Redis: sudo systemctl enable --now redis Чтобы проверить, работает ли сервер Redis, введите: sudo systemctl status redis Получим следующий вывод: ? redis.service - Redis persistent key-value database Loaded: loaded (/usr/lib/systemd/system/redis.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/redis.service.d L-limit.conf Active: active (running) since Sat 2020-02-08 20:54:46 UTC; 7s ago Вот и все! Redis установлен и работает на вашем сервере CentOS 8. Настройка удаленного доступа Redis По умолчанию Redis не разрешает удаленные подключения. Вы можете подключиться к серверу Redis только с 127.0.0.1 (localhost) - компьютера, на котором работает Redis. Если вы используете установку с одним сервером, где клиент, подключающийся к базе данных, также работает на том же хосте, вам не нужен удаленный доступ. Чтобы настроить Redis для приема удаленных подключений, откройте файл конфигурации Redis в текстовом редакторе: sudo nano /etc/redis.conf Найдите строку, начинающуюся с bind 127.0.0.1, и добавьте внутренний IP-адрес вашего сервера после 127.0.0.1. bind 127.0.0.1 192.168.1.10 Убедитесь, что вы заменили 192.168.1.10 своим IP-адресом. Сохраните файл и закройте редактор. Если вы хотите, чтобы Redis прослушивал все интерфейсы, просто закомментируйте строку. Перезапустите службу Redis, чтобы изменения вступили в силу: sudo systemctl restart redis Используйте следующую команду ss, чтобы убедиться, что сервер Redis прослушивает ваш локальный интерфейс через порт 6379: ss -an | grep 6379 Вы должны увидеть что-то вроде этого: tcp LISTEN 0 128 192.168.1.10:6379 0.0.0.0:* tcp LISTEN 0 128 127.0.0.1:6379 0.0.0.0:* Затем вам нужно настроить фаервол для доступа трафика с TCP-порта 6379. Скорее всего вы захотите разрешить доступ к серверу Redis только с определенного IP-адреса или диапазона IP-адресов. Например, чтобы разрешить подключения только с подсети 192.168.2.0/24, выполните следующие команды: sudo firewall-cmd --new-zone=redis –permanent sudo firewall-cmd --zone=redis --add-port=6379/tcp –permanent sudo firewall-cmd --zone=redis --add-source=192.168.2.0/24 –permanent sudo firewall-cmd --reload Приведенные выше команды создают новую зону с именем redis, открывают порт 6379 и разрешают доступ из частной сети. На этом этапе сервер Redis будет принимать удаленные подключения через порт TCP 6379. Убедитесь, что ваш фаервол настроен на прием соединений только из доверенных диапазонов IP-адресов. Чтобы убедиться, что все настроено правильно, вы можете попробовать пропинговать сервер Redis с удаленного компьютера, используя утилиту redis-cli, которая предоставляет интерфейс командной строки для сервера Redis: redis-cli -h ping Команда должна вернуть ответ PONG: PONG Если это так, то значит, что мы все сделали правильно!
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59