пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅ
По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Сегодня поговорим о том, как установить сторонний модуль для FreePBX 13, который позволит отслеживать и собирать статистику о работе Вашего Call-центра - Asternic Call Center Stats, а также о другой разработке Asternic - Asternic CDR Reports, являющуюся более простой и удобной адаптацией встроенного модуля FreePBX - CDR Reports.
Установка Asternic Call Center Stats
Для начала установим Asternic Call Center Stats. Версия, которая будет представлена в данной статье – Lite 1.5, является бесплатной open-source версией модуля. Более расширенный функционал доступен в версии Pro.
Скачаем модуль с сайта разработчика:
cd /usr/src
wget http://download.asternic.net/asternic-stats-1.5.tgz
Распакуем файлы
tar zvxf asternic-stats-1.5.tgz
cd asternic-stats
Создаем новую базу в MySQL. Обратите внимание, что в тестовой версии Lite скрипт qstat.sql выполняет операции с БД qstatlite, поэтому мы должны использовать только такое имя при конфигурации. Для создания новой базы нужно знать пароль от mysql.
mysqladmin -u root -p create qstatslite
mysql -u root -p qstatslite < sql/qstats.sql
Редактируем файл /usr/src/asternic-stats/html/config.php чтобы настроить необходимые аутентификационные реквизиты для доступа к базе.
$dbhost = 'localhost';
$dbname = 'qstatslite';
$dbuser = 'root';
$dbpass = '1111';
$manager_host = "127.0.0.1";
$manager_user = "admin";
$manager_secret = "admin";
$language = "en"; {Если хотите русифицировать модуль – ставьте “ru”}
Отредактируйте файл /etc/asterisk/manager.conf чтобы установить требуемый пароль для Asterisk Manager’а.
Затем необходимо отредактировать файл /usr/src/asternic-stats/parselog/config.php и в нём также установить аутентификационные данные для новой базы.
$queue_log_dir = "/var/log/asterisk/";
$queue_log_file = "queue_log"
$dbhost = 'localhost';
$dbname = 'qstatslite';
$dbuser = 'root';
$dbpass = '1111';
Важно! Убедитесь, чтобы значения $dbname, $dbuser и $dbpass совпадали в обоих файлах (/usr/src/asternic-stats/html/config.php и usr/src/asternic-stats/parselog/config.php )
Наконец последовательно выполняем следующие команды:
mv /usr/src/asternic-stats/html /var/www/html/queue-stats
mv /usr/src/asternic-stats/parselog /usr/local
Тем самым мы переместили папку html в корневую директорию Apache, а папку parselog в домашнюю директорию. Если операционная система укажет, что папки /var/www/html/queue-stats не существует, то создайте ее с помощью команды:
mkdir /var/www/html/queue-stats
Последний шаг – запуск планировщика cron, который будет периодически просматривать папку parselog и заносить информацию от туда в базу данных.
crontab -e
Заносим в cron следующее правило:
0 * * * * php -q /usr/local/parselog/parselog.php convertlocal
Если всё было сделано правильно, то при переходе по ссылке http://”IP-адрес _Asterisk” /queue-stats , мы увидим сам модуль и сможем начать с ним работать. На этом установка Asternic Call Center Stats завершена.
Установка Asternic CDR Reports
С модулем Asternic CDR Reports всё гораздо проще. Просто качаем дистрибутив с сайта разработчика, а потом добавляем его через функционал управления модулями FreePBX. Для этого переходим в Admin -> Module Admin и выбираем Upload Modules
Выбираем Upload (From Hard Disk), указываем путь к скаченному дистрибутиву и нажимаем Upload (From Hard Disk)
После чего появится сообщение о том, что модуль успешно загружен и что нужно включить его через local module administration.
Переходим по ссылке, ищем новый модуль в разделе Reports, нажимаем Install и кнопку Process в самом низу.
Подтверждаем установку кнопкой Confirm
По завершению установки, мы увидим соответствуюшее сообщение:
Теперь модуль доступен из главной панели в разделе Reports
Если всё было сделано правильно, то мы увидим интерфейс модуля и сможем начать работу с ним. На этом установка модуля Asternic CDR Reports завершена
В этой статье приведены рекомендации по внедрению VMware vSAN (ранее известной как Virtual SAN) с помощью H730 Dell PERC или FD332-PERC контроллеров хранения данных.
Лучшие практики
Убедитесь, что используемая версия драйвера и микропрограммного обеспечения соответствует требованиям Руководства по совместимости VMware для vSAN (VCG).
Убедитесь, что все диски поддерживаются корпорацией Dell и что все обновления встроенного ПО Dell применяются к этим дискам.
Рекомендуемые комбинации драйверов и микропрограмм для основных версий vSAN см. в приведенных ниже таблицах.
УстройствоРекомендуемый драйверРекомендуемое микропрограммное обеспечениеBP13G+ (Non-expander backplane)NA2.23 or laterBP13G+EX (Expander backplane)NA3.03 or laterPERC H730https://www.vmware.com/resources/compatibility/detail.php?deviceCategory=vsanio&productid=34853&deviceCategory=vsanio&details=1&vsan_type=vsanio&io_partner=23&io_releases=274&page=1&display_interval=10&sortColumn=Partner&sortOrder=AsFD332-PERChttps://www.vmware.com/resources/compatibility/detail.php?deviceCategory=vsanio&productid=38055&deviceCategory=vsanio&details=1&vsan_type=vsanio&io_partner=23&io_releases=274&keyword=FD332-PERC&page=1&display_interval=10&sortColumn=Partner&sortOrder=As
Примечание: Чтобы использовать драйвер megaraid_perc9 в ESXi 5.5, необходимо отключить lsi_mr3 только в ESXi 5.5 и, возможно, драйвер megaraid_sas.
Чтобы отключить эти драйверы только в ESXi 5.5:
Примечание: Для выполнения этой операции требуется перезагрузка хоста ESXi. При перезагрузке убедитесь, что выбран соответствующий режим обслуживания vSAN. Для получения информации о режиме обслуживания vSAN
Войдите на хост ESXi с помощью SSH или консоли.
Отключите драйвер lsi_mr3, выполнив следующую команду: esxcli system module set --enabled=false --module=lsi_mr3
Перезагрузите хост ESXi.
После перезагрузки определите драйвер, используемый контроллером PERC. Если используется драйвер megaraid_sas вместо megaraid_perc9, отключите драйвер megaraid_sas, чтобы заставить систему использовать соответствующий драйвер. Чтобы отключить драйвер megaraid_sas, выполните следующую команду:esxcli system module set --enabled=false --module=megaraid_sas
Если вы отключили драйвер megaraid_sas на шаге 4, перезагрузите хост ESXi второй раз.
Если рекомендации не выполняются, то в кластере vSAN может произойти сбой с непредвиденным сбоем диска. В среде vSAN может проявляться одно или несколько вариантов поведения:
При загрузке vSAN отображается состояние vSAN Unhealthy (Нездоровый):
Могут инициироваться аварийные сигналы, связанные с задержкой.
В файле ESXi host/var/log/vmkernel.log отображаются следующие записи:
WARNING: lsi_mr3: fusionReset:2565: megaraid_sas: Hardware critical error, returning FAILED.
WARNING: ScsiPath: 7133: Set retry timeout for failed TaskMgmt abort for CmdSN 0x0, status Failure, path vmhba0:C0:T0:L0
Что такое API?
Поскольку мы говорим про REST API, то наше определение API не будет сильно выходить за тематику сетей. Подробнее про API можно прочитать тут.
API означает Application Programming Interface. API задает связь между программами для возможности передачи данных.
То, что программа имеет API, подразумевает, что она передает часть своих данных для использования клиентом. Клиентом может быть фронтенд часть той же самой программы или другая внешняя программа.
Для получения этих данных необходимо отправить структурированный запрос на API. Если запрос удовлетворят желаемым требованиям, то ответ, содержащий данные, будет отправлен туда откуда был сделан запрос. Обычно ответ представлен в формате JSON или XML.
В некоторых случаях, для получения доступа к внешнему API, от вас может потребоваться авторизация.
Каждый API имеет документацию, в которой говорится какие данные доступны и как структурировать свой запрос для получения правильного ответа.
Примеры API
Рассмотрим в качестве примера реальную ситуацию.
Представьте посещение нового ресторана. Вы пришли, чтобы заказать еду, а поскольку вы здесь впервые, то точно не знаете какие блюда они подают.
Официант дает вам меню, в котором можно выбрать, чтобы вы хотели съесть. После того, как выбор сделан, официант отправляется на кухню и приносит вам еду.
В данном случае официант - это API, который обеспечивает вашу взаимосвязь с кухней. Документация API - это меню. Запрос выполняется в тот момент, когда вы отмечаете желаемые блюда, а ответ - это блюда, которые вам принесли.
Что такое REST?
REST означает REpresentational State Transfer (передача состояния представления). Это стандарт, который определяет форму и работу процессов, позволяющих нам взаимодействовать с данными на вебсерверах.
Приведенное выше определение может выглядеть не так сложно или «профессионально», как то, что вы могли встретить в интернете, но главное, чтобы вы поняли основную цель REST API.
API, который удовлетворяет некоторым или всем шести руководящим ограничениям REST считается RESTful.
Мы можем взаимодействовать с серверами при помощи протокола HTTP. Благодаря этим протоколам мы можем Create (создавать), Read (читать), Update (обновлять) and Delete (удалять) данные – также известные как CRUD операции.
Но каким образом мы можем выполнять CRUD операции и взаимодействовать с данными на сервере?
Мы делаем это, посылая HTTP запросы, и это тот самый момент, когда REST начинает действовать. REST упрощает процесс взаимодействия с сервером, предоставляя различные HTTP методы/операции/команды, с помощью которых можно посылать запросы на сервер.
Как взаимодействовать с сервером, используя REST API?
Как мы уже обсуждали, REST API облегчает процесс взаимодействия с сервером, предоставляя нам различные методы HTTP запросов. Наиболее распространенные методы:
GET: Метод get используется для Чтения данных с сервера.
POST: Метод post используется для Создания данных.
PATCH/PUT: Метод patch используется для Обновления данных.
DELETE: Метод delete используется для Удаления данных.
Эти методы предоставлены нам REST, что упрощает выполнение CRUD операций. Таким образом:
Создать => POST
Прочитать => GET
Обновить => PATCH/PUT
Удалить => DELETE
Если мы хотим сделать запрос на сервер, например, для получения данных, то мы отправляем запрос GET на узел/источник данных на сервере. Узел данных аналогичен URL.
Если запрос составлен корректно, то сервер отправит нам в ответ запрашиваемые данные. Также он отправит код состояния, где 200 - это успешное выполнение, а 400 - это ошибка пользователя.
Пример запроса на JSONPlaceholder API, используя JavaScript:
fetch('https://jsonplaceholder.typicode.com/todos/1')
.then(response => response.json())
.then(json => console.log(json))
При выполнении запроса с использованием fetch API по умолчанию используется метод GET, поэтому мы можем не указывать его явно. Но мы должны будем это сделать при использовании других методов.
В приведенном выше примере, узел данных - это https://jsonplaceholder.typicode.com, а запрашиваемые нами данные - это один элемент todo. Данные будет получены в JSON формате.
Если бы мы использовали запрос POST, тогда бы мы использовали метод POST, а в теле запроса находились бы данные, которые мы создали для отправки на сервер.
Для удаления нам потребуется использовать соответствующий запрос, содержащий id элемента todo, который мы хотим удалить. Например:
fetch('https://jsonplaceholder.typicode.com/posts/3', {
method: 'DELETE',
});
Для обновления данных нужно, чтобы запрос содержал id и данные для обновления. Как в этом примере:
fetch('https://jsonplaceholder.typicode.com/posts/5', {
method: 'PATCH',
body: JSON.stringify({
title: 'new todo',
}),
headers: {
'Content-type': 'application/json; charset=UTF-8',
},
})
.then((response) => response.json())
.then((json) => console.log(json));
Заключение
В этом руководстве вы узнали, что такое REST и как он помогает нам эффективно взаимодействовать с сервером.
Мы дали определение API и рассмотрели пример, который помог объяснить его смысл. Мы также узнали некоторые методы REST для создания, чтения, обновления и удаления данных, хранящихся на сервере.
