По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
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
Скорее всего, вы выбрали VMware vSphere в качестве решения для виртуализации из-за его репутации надежного и производительного продукта; однако без должного внимания и оптимизации вы не сможете полностью использовать возможности платформы. Существует множество оптимизаций, которые можно сделать, чтобы ваша установка vSphere работала на оптимальном уровне. В этой статье рассматриваются 30 советов и рекомендаций, которые обеспечат наилучшую производительность VMware vSphere, а некоторые даже применимы к другим продуктам виртуализации. 30 полезных лайфхаков в VMware для админа Используйте только совместимое с VMware оборудование У VMware существует список совместимого оборудования для каждой версии платформы vSphere. Перед покупкой или эксплуатацией оборудования необходимо удостовериться, что все компоненты совместимы и поддерживаются. Также нужно проверить соответствие оборудования минимальным требованиям для правильной установки и эксплуатации. Старайтесь использовать новейшее оборудование с аппаратной виртуализацией Последние процессоры AMD и Intel поддерживают функции оборудования по содействию виртуализации VMware. Эти функции бывают двух видов: процессорная виртуализация и виртуализация управления памятью. Проведите стресс-тест или проверку оборудования перед вводом в эксплуатацию Собирая или покупая новую систему полезно провести глубокий стресс-тест или проверку системы. Существует множество программ для этого и многие из них доступны для загрузки с CD-диска для запуска системы в любом состоянии. Это поможет найти неисправные компоненты и обеспечит надёжность платформы во время работы. Выберите подходящее приложению внутреннее хранилище Существует множество различных систем внутренних хранилищ и выбор может обеспечить огромное влияние на производительность вашей системы. Дисковый ввод/вывод является одним из главных препятствий в сфере компьютерного оборудования и имеет один из самых низких показателей роста. Выбор устройства внутреннего хранилища и его конфигурация зависит от типа используемого приложения. Например, продукты SATA сами по себе не могут обеспечить высокую скорость записи на диск больших объёмов данных в научном оборудовании. При необходимости высокой скорости или большого объёма хранилища стоит посмотреть на более надёжные и эффективные носители информации, такие как iSCSI или NFS. Для корректной работы ваше хранилище должно поддерживать требуемый объём данных или скорость чтения/записи для ваших приложений, в том числе требования для работы операционной системы хоста и самой платформы vSphere. Используйте сетевые карты серверного сегмента Не все сетевые карты одинаковы; встроенные адаптеры больше подходят для нужд рядовых пользователей. Для корпоративных серверов стоит использовать серверные NIC (сетевые карты), поддерживающие контрольные суммы разгрузки, сегментной разгрузки TCP, обработку 64-битных DMA адресов, способность рассеивать и собирать элементы, встречающиеся множество раз в одном кадре и Jumbo-кадре. Эти функции позволяют vSphere использовать встроенную продвинутую поддержку сети. Оптимизируйте настройки BIOS серверов Производители материнских плат поставляют свои продукты с BIOS для работы с различными конфигурациями, поэтому они не способны оптимизировать материнскую плату для работы с конкретно вашей конфигурацией. Следует постоянно обновлять BIOS до последней версии и включать используемую vSphere аппаратную поддержку, например, Hyperthreading, “Turbo Mode”, VT-x, AMD-V, EPT, RVI и другие. Также следует отключить энергосбережение, чтобы исключить негативное влияние на производительность сервера. Обеспечить виртуальные среды только требуемыми ресурсами Это может показаться нелогичным, но наличие лишних ресурсов для виртуальных машин в системах виртуализации накладывает ограничения на их производительность. Так, VMware хорошо справляется с системами, перегруженными количеством виртуальных машин, и хуже с машинами с избыточным количеством ресурсов. При запуске системы используйте рекомендуемые настройки или настройки по умолчанию для памяти, хранилищ и остального, далее изменяйте их лишь при необходимости. Консоль управления сообщит о проблемах с ресурсами, и вы сможете реагировать на предупреждения при необходимости. Отключайте неиспользуемое и ненужное виртуальное или физическое оборудование от VM Отключая устройства, вы освобождаете ресурсы прерывания. Также повышается производительность после отключения устройств, потребляющих дополнительные ресурсы из-за запросов, такие как USB адаптеры и PCI устройства, которые резервируют блоки памяти под свои операции. Используя гостевой режим Windows, убедитесь, что оптические приводы отключены, потому что Windows постоянно запрашивает их, что может вызвать проблемы, особенно при множестве гостей (гостевых ОС), работающих одновременно. Следите за потреблением CPU в среде хоста Постоянно следите с помощью консоли за потреблением CPU всей системой виртуализации, это позволит заметить перегрузку системы. В этом случае вы можете переместить VM другому хосту в вашей системе, перенести ресурсы на менее загруженный хост или выключить неиспользуемую или ненужную VM. Основное правило использования VMware гласит: если средняя загрузка системы равна количеству физических процессоров в системе, то вы выделяете лишние ресурсы, а на вашем сервере находится слишком много гостей. Ограничьте использование виртуальных процессоров (CPU) приложениями Если вы используете однопоточные или приложения плохо спроектированные для многопоточной работы и параллелизма, то использование виртуальных процессоров (CPU) бесполезно. Неиспользуемые виртуальные процессоры (CPU) продолжают использовать ресурсы даже когда не используются системой. Включите Hyper-Threading, если он поддерживается оборудованием Hyper-Threading это технология, разработанная для обеспечения непрерывного потока инструкций, подаваемых на процессор. Множество процессоров позволяет множеству инструкций быть обработанным одновременно, а HT уменьшает время простоя процессора и предоставляет больший объём работы на каждый такт. Не существует определённого быстрого правила для повышения производительности, используя HT, но это может увеличивать производительность некоторых приложений более чем в два раза. Обеспечьте хосту объём памяти, необходимый для работы с гостями и консолью Чтобы выбрать количество физической памяти для хоста системы и количества гостей, необходимо посчитать общее количество памяти, необходимой каждой VM. Также нужно добавить память в буффер для расхода самой VM и потребления vSphere. Чтобы исключить ошибку с нехваткой памяти, следует добавить чуть больше физической памяти, чем этого требуется. Выбирайте подходящие приложениям файловые системы и типы виртуальных дисков Типы виртуальных дисков и файловых систем предлагают различные профили производительности, поэтому стоит выбирать на основе потребностей ввода/вывода отдельных ваших приложений. Для приложения, которое постоянно записывает данные на диск, лучшим выбором будет оптимизированная под запись файловая система и соответствующий виртуальный диск. Минимизируйте потребление приложениями, постоянно открывающими и закрывающими файлы, или создайте расписание для снижения нагрузки от ввода/вывода на диск Чтение и запись являются наиболее дорогими операциями в вычислениях. Для наиболее эффективного использования ресурсов следует распределить отложенные задачи и сложные операции ввода/вывода на периоды низкой загруженности системы и сети. Осуществление программного ввода/вывода во время пиковых нагрузок влечёт за собой многочисленные и серьёзные падения производительности. Распределите операции ввода/вывода между адаптерами и путями хранилищ При наличии множества адаптеров хранилищ или путей хранилищ (в одной сети) следует распределять нагрузку между ними во избежание перегрузки слоя ввода/вывода. Ввод/вывод является одной из наиболее важных частей системы и влияет на производительность. Поскольку устройства и контроллеры хранилищ неидеальны и последними пользуются достижениями технологий, то следует использовать все возможные пути для повышения производительности. Объединения сетевых интерфейсных карт повышают отказоустойчивость Объединённые сетевые интерфейсные карты позволяют сетевым адаптерам работать сообща, что обеспечивает более стабильное соединение и лучшую отказоустойчивость. При отказе сетевого интерфейса или возникновении проблемы другие соединённые сетевые интерфейсы автоматически устранят дыру в системе и обеспечат плавное возвращение к нормальной работе. Группируйте системы, взаимодействующие друг с другом на одном свитче Размещая системы, взаимодействующие друг с другом на постоянной основе, вы избежите возникновение перегрузок в системе. Если же системы находятся на разных виртуальных свитчах, то для взаимодействия друг с другом трафик должен выйти из системы, покинуть текущий свитч и потом пройти по сети, чтобы достигнуть другой системы. Используйте только те гостевые операционные системы, которые поддерживаются vSphere VMware оптимизирует свои хост платформы для работы с определёнными операционными системами и использование несертифицированных операционных систем может повлечь проблемы с поддержкой и производительностью в рабочей среде. Установите и используйте новейшие версии VMware Tools на каждой гостевой оперативной системе VMware Tools обновляет драйвера и добавляет улучшения, отсутствующие на стоковых драйверах гостевых операционных систем. Важно обновлять программное обеспечение хоста при каждом обновлении VMware Tools. Отключите ненужные графические компоненты в гостевой операционной системе (заставки, X.Org, анимации и прочее) Дополнительные компоненты, особенно графические, лишь пожирают ресурсы и зачастую не приносят пользы в серверной среде, а иногда создают уязвимости в защите системы. При отсутствии необходимости использования на сервере графических приложений рекомендуется отключать заставки, оконные системы, оконные анимации и прочее. Используйте NTP для учёта гостевого времени Это не самый важный совет по производительности, но использование временного сетевого протокола (NTP) обеспечивает надёжное ведение системных журналов и поможет при возникновении проблем с безопасностью и производительностью. Убедитесь, что гостевые разделы выравнены Большинство дисковых файловых систем теряют производительность, если дисковые разделы не выравнены. Процедура выравнивания различается от производителя к производителю. Используйте VMXNET3 в виртуальных сетевых адаптерах на гостях, которые это поддерживают VMXNET3 снижает затраты на передачу траффика между виртуальной машиной и физической сетью. Они известны как паравиртуализированные сетевые адаптеры и могут обеспечить значительное повышение производительности для большей части рабочих нагрузок. Группируйте виртуальные машины в пул ресурсов тогда, когда это применимо Группируя виртуальные машины в один логический набор, вы можете повысить приоритет на выделение ресурсов группам, а не отдельным машинам. Это также позволит гостям в группе совместно использовать ресурсы и поможет сбалансировать нагрузку. Отключайте пользователей vSphere от vCenter, если они больше не нужны Множество подключённых к VMware vCenter пользователей понижает производительность, что можно увидеть на консоли. В любом случае, vSphere продолжит работу даже при превышении количества рекомендованных/поддерживаемых пользователей, но со значительным падением производительности. Группируйте схожие виртуальные машины при использовании VMware Distributed Resource Scheduler (для распределения ресурсов CPU и памяти) Группировка машин со схожими конфигурациями процессоров (CPU) и памяти позволит определять машины как одно целое и это облегчит работу vSphere по поддержанию стабильной работы. Отключайте неиспользуемые виртуальные машины Даже неиспользуемые виртуальные машины потребляют ресурсы. Это не обеспечит огромный прирост производительности, но окажет своё влияние. Вы всегда можете перезапустить гостя, когда появится необходимость в системе. Используйте поддерживающие wake-on-LAN хосты для облегчения контроля питанием Если ваши сетевые адаптеры поддерживают wake-on-LAN, то рассмотрите возможность использования этой функции, она позволит vSphere помогать в управлении питанием. Включайте Fault Tolerance, только если вы собираетесь использовать эту функцию Выключите Fault Tolerance, функцию vSphere направленную на работу с гостями, если не будете использовать её, так как для работы она требует значительное количество памяти, потребление процессора (CPU) и операций ввода/вывода на диске. Используйте хотя бы гигабитную сетевую инфраструктуру Сейчас сетевое оборудование и кабели к нему стоят дёшево, поэтому нет смысла в использовании сетевых инфраструктур с пропускной способностью ниже гигабита. Если вы можете позволить это или испытываете особую потребность в этом, то вы можете предпочесть более высокоскоростные волоконно-оптические технологии передачи и носителей данных, чтобы обеспечить быструю и надёжную работу с возможностью для роста и потенциала. Заключение Все эти советы являются лишь верхушкой айсберга. Я настоятельно рекомендую изучить советы по вашим потребностям, прочитав официальную документацию VMware. Также заглядывайте в наш раздел по виртуализации, там много полезных материалов.
img
В данной статье будет в общем виде рассмотрен диалплан и его содержимое - контексты и экстеншены в Asterisk. Формат диалплана Диалплан в файле extensions.conf структурирован в секции, называемые контекстами. Контекстом называется сущность внутри диалплана, которая позволяет функционировать его различным частям совершенно независимо. Контексты используются для разделения функций, улучшения безопасности между различными частями диалплана, настройкой классов обслуживания для разных пользователей и так далее. Контексты в диалплане Синтаксис для контекста точно такой же как и во всех конфигурационных файлах Asterisk (файлах с расширением .conf) Для создания контекста просто необходимо поместить его название в квадратные скобки: [telephony-users] Экстеншены в диалплане Внутри каждого контекста необходимо обозначит один или более экстеншенов. Экстеншен по сути это определенный список действий с определенным названием. После набора номера экстеншена, Астериск последовательно выполняет каждое действие. Синтаксис у экстешена следующий: exten => number,priority,application([parameter[,parameter2...]]) К примеру: exten => 101,1,Dial(PJSIP/celecom, 20) В данном случае, номер экстеншена – 101, номер приоритета – 1, используемое приложение – Dial(), с параметрами PJSIP/celecom и 20. Приоритеты Внутри каждого экстеншена должен быть один или более номеров приоритетов. Приоритет это просто число, от 1 до N. Команда с первым приоритетом будет соответственно исполнена первой, после её завершения будет исполняться команда с приоритетом 2 и так далее. Обязательно нужно использовать последовательные числа, иначе выполнение сценария будет прервано. exten => 101,1,выполнить действие exten => 101,2,выполнить другое действие exten => 101,5,выполнить еще какое-то действие В примере выше выполнение сценария прервется после строчки с приоритетом 2, по причине того, что отсутствует приоритет с номером 3. Кроме того, вместо номера приоритета можно указывать литеру n (next). То есть возможен такой сценарий: exten => 101,1,выполнить действие exten => 101,n,выполнить другое действие exten => 101,n,выполнить еще какое-то действие Если не хочется постоянно писать номер экстеншена, можно использовать функцию same. exten => 101,1,NoOp() same => n(repeat),Verbose("Нужно что-то сделать!") same => n,Verbose("Нужно сделать что-то другое!") Порядок обработки диалплана Порядок считывания экстеншенов внутри контекста идёт сверху вниз, причем вложенные контексты обрабатываются первыми. То есть к примеру у вас есть три контекста – X, Y и Z. Если вы хотите чтобы контекст Z обрабатывался первым, просто сделайте его вложенным контекстом для контекста X. Порядок поиска таков: Экстеншены Экстеншены с масками Вложенные экстеншены Переключатели
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59