Показаны сообщения с ярлыком php. Показать все сообщения
Показаны сообщения с ярлыком php. Показать все сообщения

Bitrix24: поиск номера телефона по ID, php скрипт для Asterisk

Потребовалось получить номер телефона клиента из Bitrix24 по ID записи. Нужно это для соединения сотрудников с клиентами без предоставления им реального номера телефона (номер телефона скрыт для группы пользователей). То есть, сотрудник зная id клиента сможет дозвониться до него не имея прямого доступа к номеру телефона. В целом необходимость данного решения - вопрос спорный. Мы же рассмотрим лишь техническую реализацию. Возможно механизм решения кому-то пригодится для быстрой интеграции, хотя возможно удобнее будет использование AGI и, например, PAMI.

Nextcloud: долгий выход в Google Chrome

https://settled70.blogspot.com/2019/11/nextcloud-google-chrome.html
При использовании Nextcloud заметил проблему с долгим выходом (logout) при использовании браузера Google Chrome. Выход из web-приложения может занимать до нескольких минут. Как выяснилось, проблема была на стороне Chrome (и всех браузеров на движке Chromium) - при выходе он долго удалял куки и кеш сайта. Если это сделать до выхода из меняю настройки браузера, то операция совершалась быстро. Исправляем ситуацию на стороне nextcloud, подошло это решение.

Открываем файл /var/www/nextcloud/core/Controller/LoginController.php, находим и комментируем там строчку: $response->addHeader('Clear-Site-Data', '"cache", "storage"') - у меня это на 131 строке, далее добавляем свой код. Получиться должно следующее:

PHP авторизация LDAP через Active Directory для Asterisk CDR Viewer

В этой статье мы прикрутим авторизацию через Active Directory к Asterisk CDR Viewer используя PHP скрипт. Это решение актуально для авторизации корпоративных пользователей, которым нужно предоставить доступ к какому-то web ресурсу внутри сети на основе присутствия пользователя в группе в домене AD. Вы можете легко переделать скрипт под свои нужны и использовать для доступа к подобным сервисам или страничкам.

Для использования нужных функций нам понадобится установить модуль php-ldap.
Далее мы создадим группу в AD с именем Статистика Asterisk и включим в неё всех пользователей, которым необходим доступ.

Wordpress: WooCommerce счет на оплату в формате PDF

Занялся Интернет-магазином на базе Woocommerce. Заказчик попросил добавить метод оплаты по счету для клиентов без привязки к какой-либо платежной системе. Поискав в сети обнаружил, что готового плагина для этих целей нет. Cоздавать свой плагин для этой цели нет ни возможности, ни бюджета. В данной статье мы воспользуемся 2 плагинами: WooCommerce PDF Invoices & Packing Slips для создания счёта на оплату и WooCommerce Invoice Gateway для добавления метода оплаты по счёту.

Asterisk AMI: получить список свободных операторов, php скрипт

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

Как выяснилось, такую тривиальную задачу мне было трудно реализовать сходу. Пробовал разные команды AMI/AGI, пытался передавать данные из дайлплана, но все это не работало так как нужно.

Asterisk и Openfire/Jabber: XMPP сообщение о входящем звонке с именем и отделом из Active Directory

Нужно, чтобы Asterisk при входящем звонке сотруднику, отправлял ему в Jabber сообщение о том кто звонит. В случае, если это наш сотрудник заведенный в AD, помимо номера в сообщении будет его ФИО, должность и название отдела (если эти данные введены). Стоит заметить, что астериск сам умеет слать сообщения используя JabberSend, но по некоторым причинам мне этот способ не подошел, к тому же пришлось бы все равно использовать внешний скрипт для связи с AD.

Оптимизация работы web-сервера nginx+php-fpm

 Оптимизация работы web-сервера nginx+php-fpm
Попросили оптимизировать скорость работы сайта на VDS (nginx, php-fpm,mysql). Эту заметку написал больше для себя, оптимизирую работу веб серверов не часто, что-то могу забыть.

Начинаем с самого элементарного, создаем нагрузку на сайт с любого другого компьютера посредством программы siege (50 одновременных подключений):
sudo apt-get install siege
siege -c 50 site.ru
На сервер открываем htop и смотрим нагрузку. Видим, что в основном сервер нагружает php-fpm а также медленно ворочается mysql. Для php-fpm проверяем, что тип пула dynamic, корректируем количество дочерних процессов (pm.max_children) в зависимости от количества памяти, проверяем, что работа идет через сокет (а не через порт) и включаем opcache. В целом этих мер должно быть достаточно. Далее - оптимизация СУБД.