По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
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
Здравствуй дорогой друг! В этой статье мы хотим рассказать про базовую настройку отслеживания статического маршрута Static Route Tracking, используя IP SLA. В современной сетевой среде избыточность является одним из наиболее важных аспектов, будь то на стороне локальной сети LAN или на стороне глобальной сети WAN. В этой статье мы рассмотрим избыточность WAN с несколькими каналами WAN, оканчивающимися на одном маршрутизаторе. Лучший и самый простой способ достижения избыточности WAN на устройствах Cisco - это использовать надежные резервные статические маршруты с отслеживанием IP SLA. IP SLA - это функция, включенная в программное обеспечение Cisco IOS, которая позволяет администраторам анализировать уровни обслуживания для IP приложений и сервисов, проверять QoS на соответствие параметрам, и помогать обнаруживать и локализовать неисправности. IP SLA использует технологию активного мониторинга трафика (когда тестовые пакеты добавляются в активное соединение) для мониторинга непрерывного трафика в сети. Маршрутизаторы Cisco предоставляют собой так называемые IP SLA Responder'ы, которые обеспечивают точность измеренных данных в сети. IP SLA собирает информацию об задержке, джиттере, потере пакетов, их пути, последовательности отправки и многого другого. С IP SLA маршрутизаторы и коммутаторы выполняют периодические измерения. Количество и тип доступных измерений огромны, и в этой статье мы рассмотрим только функцию ICMP ECHO. Сам по себе IP SLA - очень большая тема для обсуждения. Настройка Рассмотрим следующую схему с двумя провайдерами. На рисунке наше устройство Cisco подключено к двум каналам WAN - ISP1 и ISP2. Наиболее распространенная настройка, которую мы используем в повседневной жизни, - это настройка маршрутов по умолчанию на маршрутизаторе Cisco, указывающих на соответствующие IP-адреса следующего хопа (next-hop), как показано ниже: R1(config)# ip route 0.0.0.0 0.0.0.0 2.2.2.2 R1(config)# ip route 0.0.0.0 0.0.0.0 3.3.3.3 10 Как вы могли заметить административное расстояние для дополнительного маршрута, указывающего на ISP2, увеличено до 10, чтобы он стал резервным каналом. Вышеуказанная конфигурация с двумя плавающими статическими маршрутами частично выполняет наше требование, поскольку она будет работать только в сценарии, когда интерфейсы маршрутизаторов, подключенные к каналу WAN, находятся в состоянии UP/UP или DOWN/DOWN. Но во многих ситуациях мы видим, что, хотя линки остаются работоспособными, но мы не можем достичь шлюза, это обычно происходит, когда проблема находится на стороне провайдера. В таких случаях IP SLA становится лучшим другом инженера. Используя IP SLA, Cisco IOS получает возможность использовать эхо-запросы ICMP для идентификации, когда канал WAN отключается на удаленном конце, и, следовательно, позволяет инициировать резервное соединение с альтернативного порта. IP SLA настроен на пинг цели, такой как общедоступный IP-адрес или адрес в корпоративной сети, или ваш IP-адрес следующего хопа на маршрутизаторе ISP. Пинги маршрутизируются только с основного интерфейса. Пример конфигурации IP SLA для генерации пинга icmp, нацеленного на IP-адрес следующего перехода ISP1: R1(config)# ip sla 1 R1(config)# icmp-echo 2.2.2.2 source-interface FastEthernet0/0 R1(config)# timeout 1000 R1(config)# threshold 2 R1(config)# frequency 3 R1(config)# ip sla schedule 1 life forever start-time now Обратите внимание, что команды Cisco IP SLA меняются в зависимости от версии IOS, и чтобы узнать точную команду для вашей версии IOS, проверьте документацию Cisco. Вышеприведенные команды предназначены для IOS 12.4(4) T, 15.(0)1M и более поздних выпусков. Приведенная выше конфигурация определяет и запускает IP SLA. ICMP-echo отправляет эхо-пакет ICMP на IP следующего хопа 2.2.2.2 каждые 3 секунды, как определено параметром “frequency”. “Timeout” устанавливает время (в миллисекундах), в течение которого операция SLA Cisco IOS IP ожидает ответа от своего пакета запроса. “Threshold” устанавливает порог, который генерирует событие реакции и хранит хронологическую информацию для операции SLA Cisco IOS IP. После определения операции IP SLA наш следующий шаг - определить объект, который отслеживает SLA. Это можно сделать с помощью IOS Track Object, как показано ниже: R1(config)# track 1 ip sla 1 reachability Приведенная выше команда создает трек, который будет отслеживать состояние операции IP SLA. Если от IP-адреса следующего хопа нет откликов на пинг, трек отключится и начнет работать, когда SLA начнет снова получать пинг-ответ. Чтобы проверить состояние трека, используйте команду show track, как показано ниже: R1# show track Track 1 IP SLA 1 reachability Reachability is Down 1 change, last change 00:03:19 Latest operation return code: Unknown Последним шагом в конфигурации надежного статического маршрута IP SLA является добавление оператора отслеживания к маршрутам по умолчанию, указывающим на маршрутизаторы ISP, как показано ниже: R1(config)# ip route 0.0.0.0 0.0.0.0 2.2.2.2 track 1 R1(config)# ip route 0.0.0.0 0.0.0.0 3.3.3.3 10 Добавив после адрес ключевое слово track и его номер, мы указываем, что только если состояние настроенного трека будет Up. Следовательно, если статус трека Down, то вторичный маршрут будет использоваться для пересылки всего трафика. Готово! Мы успешно настроили автопереключение между двумя провайдерами при помощи IP SLA с icmp-echo
img
Существует множество различных решений для управления Asterisk, основой которых, является FreePBX. К ним относятся - Elastix, PBX in a Flash (PIAF), Trixbox, AsteriskNOW и FreePBX Distro. Однако, с момента первого релиза FreePBX многое изменилось и большинство перечисленных проектов по-просту перестали существовать. Trixbox перестал поддерживать открытое ПО и переориентировался на коммерческую редакцию Trixbox Pro. Elastix и PIAF вообще дружно сменили свой движок с Asterisk на 3CX и для этих продуктов обновлений также больше нет. Кроме того, есть компании, которые до сих пор используют старые не поддерживаемые версии FreePBX и ежедневно испытывают трудности с их работой, а также те, кто установил FreePBX вручную на не поддерживаемые операционные системы. Единственный продукт, который до сих пор обновляется и поддерживается разработчиком - это сам проект FreePBX и FreePBX Distro. Принимая это во внимание, разработчики FreePBX создали решение, которое позволяет сделать миграцию любой системы на базе FreePBX, (начиная с версии 2.9 до и включая версию 14) на свеженькую FreePBX Distro на базе ОС SNG 7, со всеми настройками и конфигурацией! Итак, можно мигрировать с: Elastix; PBX in A Flash; AsteriskNOW; вручную установленного FreePBX (в том числе установленного на не поддерживаемой ОС); FreePBX Distro При этом система, с которой производится миграция не требует остановки эксплуатации или перезагрузки, так как инструмент всего лишь считывает конфигурацию с системы "донора" на свежую систему FreePBX Distro. Как это работает: Вам нужно будет установить свежую версию свежую версию FreePBX Distro , на которую будет происходить миграция и активировать её; Запустить на новом сервере с FreePBX Distro скрипт конвертации командой: curl -s https://convert.freepbx.org | bash Этой командой сервер запросит место (слот) в очереди на конвертацию. Когда слот будет успешно занят сгенерируется ключ, вида 2beb181b-14ed-4f56-a86b-f6e564ba6c43; После этого, нужно запустить такую же команду на сервере - доноре, с которого вы хотите мигрировать и ввести полученный ключ; Конвертер извлечёт необходимые данные с донора и загрузит их на новый сервер. Этот процесс не окажет никого влияния на донора, не внесёт на нем никаких изменений и не потребует выключения; Скрипт также будет пробовать стянуть с донора всякие кастомные данные, такие как пользовательские голосовые файлы и данные провиженинга; Все транки на новом сервере будут выключены, чтобы избежать конфликта с зарегистрированными линиями к провайдеру на старом сервере. О том, как установить FreePBX читайте в нашей статье Какие данные будут перенесены на новый сервер: Внутренние номера (Extensions); Маршруты (Inbound/Outbound Routes); Линии к провайдеру (Trunks); Музыка на ожидании (MoH); Голосовые меню (IVR); Группы вызова (Ring Groups); Очереди (Queues); Любые другие настройки, являющиеся стандартной частью FreePBX; Звуковые файлы, включая: загруженную пользователем музыку на ожидании (MoH), записи голосовой почты и приветствия для голосовой почты, а также системные записи (System Recordings) Какие данные не будут перенесены на новый сервер: История звонков, то есть Call Data Report (CDR) и таблица Call Event Log (CEL); Вы можете самостоятельно перенести эти данные на новый сервер, экспортируя их с помощью 'mysqldump' или аналогичной утилиты. Эти данные могут быть очень тяжёлыми, поэтому пользователь сам должен позаботиться об их переносе. Настройки факса; Эта часть претерпела огромные изменения с момента первого релиза FreePBX, поэтому придется самостоятельно перенастроить почты пользователей, которым нужен функционал факса. Кастомные изменения конфигурационных файлов; То есть всё, что было изменено в файлах вида *_custom.conf, например /etc/asterisk/extensions_custom.conf. Если у вас есть такие настройки, то переносить их на новый сервер нужно будет вручную. Настройки не FreePBXовых модулей; Ну например Elastix Call Center Module, Queue Metrics и остальные модули, которые не являются стандартными для FreePBX. В общем и целом, звучит неплохо, правда? Мы можем безболезненно перенести большинство необходимых данных с неподдерживаемой системы и продолжить работу на новой, получая все актуальные обновления. Процесс миграции не представляется чем-то сверх сложным, так что давайте попробуем? Процесс миграции Итак, первое с чего нужно начать - это подготовка нового сервера с FreePBX Distro. Важно устанавливать именно 64-битную версию, поскольку 32-битная больше не поддерживается. О том как установить FreePBX Distro подробно читайте в нашей статье. Как только FreePBX Distro будет установлен, его необходимо активировать. Активация требуется для того чтобы сгенерировать криптографический ключ для защиты ваших данных для передачи на сервер конвертации https://convert.freepbx.org. Данные передаются в зашифрованном виде, чтобы исключить возможность их утечки в случае атаки типа Man-in-the-Middle. Затем необходимо настроить NAT. FreePBX Distro имеет свой встроенный модуль Firewall, который автоматически настраивает параметры NAT и Firewall через специальный помощник при первом запуске FreePBX. О том как настраивать Firewall читайте в нашей статье. После того как сервер с чистым FreePBX Distro настроен, необходимо зарезервировать слот для конвертации. Это делается с помощью специального скрипта: curl -s https://convert.freepbx.org | bash. Когда Вам предложат ввести reservation ID, просто нажмите 'Enter'. По окончанию процесса резервации слота, будет сгенерирован уникальный код конвертации вида: 2beb181b-14ed-4f56-a86b-f6e564ba6c43. Его потом нужно будет ввести на доноре. После этого, новый сервер будет ожидать ответа от донора. Не останавливайте скрипт, нужно чтобы на экране была надпись Waiting for Donor…. Теперь нужно запустить такую же команду на сервере - доноре, с которого вы хотите мигрировать и ввести полученный ключ; Возвращаемся на сервер-донор (Elastix, PIAF и так) с которого мы хотим мигрировать и запускаем тот же самый скрипт: curl -s https://convert.freepbx.org | bash Когда вас попросят ввести ID, введите то что было сгенерировано при запуске скрипта на новом FreePBX Distro. Это запускает процедуру экспорта всех данных и настроек с сервера донора и создание сжатого, криптографически защищённого архива с этими данными для отправки на новый сервер. В зависимости от того, насколько давно был развёрнут старый сервер, существует возможность неудачной обработки команды скрипта, поскольку сервер может не поддерживать обработку TLS сертификатов. Если после запуска скрипта ничего не происходит, попробуйте запустить команду с отключением верификации TLS сертификата: curl --insecure https://convert.freepbx.org | bash Как только процесс завершится, новый сервер будет иметь все настройки и данные, которые были на сервере доноре. Вы получаете полностью рабочий сервер со свежей версией FreePBX Distro, которая будет получать актуальные обновления софта и безопасности со всеми настройками, которые были на старом сервере!
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59