На сервере телефонии FreePBX создадим собственную веб-страницу, где будут отображаться имена и внутренние номера сотрудников,
добавим поиск, сортировку, кэширование и индикацию онлайн/оффлайн состояния телефонов.
Страница будет доступна только из локальной сети и конкретного внешнего IP, чтобы исключить посторонний доступ.
1.Создаём папку и файл для кастомной страницы:
mkdir -p /var/www/html/extensions
nano /var/www/html/extensions/index.php
2. Вставляем код :
3. Назначаем права
chown -R asterisk:asterisk /var/www/html/extensions
chmod -R 755 /var/www/html/extensions
4. Ограничиваем доступ по IP, разрешаем доступ из локальной подсети и с определенного адреса во внешней сети:
nano /etc/httpd/conf.d/extensions.conf
<Directory «/var/www/html/extensions»>
Options -Indexes
AllowOverride None<RequireAny>
Require ip 192.168.1.0/24
Require ip 192.168.2.0/24
Require ip 178.120.201.245
</RequireAny>
</Directory>
5. Перезапускаем Apache
systemctl reload httpd
Теперь страница доступна по адресу:
http://ваш_ip/extensions/
Возможности:
-
Поиск по имени или номеру
-
Сортировка по столбцам
-
Индикация регистрации
-
Кэширование на 60 секунд
-
Адаптивный интерфейс (телефон / планшет / ПК)
-
Доступ только из заданных подсетей и IP
Принцип работы
-
CLI FreePBX: скрипт получает список всех внутренних пользователей через
FreePBX::create()->Core->getAllUsers(). -
PJSIP: статусы регистрации берутся из вывода
asterisk -rx "pjsip show endpoints". -
Кэширование: результаты сохраняются в
/tmpи обновляются раз в минуту. -
Frontend: HTML-таблица с адаптивной вёрсткой и фильтрацией прямо на сервере.

