На сервере телефонии FreePBX создадим собственную веб-страницу, где будут отображаться имена и внутренние номера сотрудников,
добавим поиск, сортировку, кэширование и индикацию онлайн/оффлайн состояния телефонов.

Страница будет доступна только из локальной сети и конкретного внешнего IP, чтобы исключить посторонний доступ.

1.Создаём папку и файл для кастомной страницы:

mkdir -p /var/www/html/extensions

nano /var/www/html/extensions/index.php

2. Вставляем  код :

Код файла index.php
7.1 KiB
37 Downloads
Детали

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

Принцип работы

  1. CLI FreePBX: скрипт получает список всех внутренних пользователей через FreePBX::create()->Core->getAllUsers().

  2. PJSIP: статусы регистрации берутся из вывода asterisk -rx "pjsip show endpoints".

  3. Кэширование: результаты сохраняются в /tmp и обновляются раз в минуту.

  4. Frontend: HTML-таблица с адаптивной вёрсткой и фильтрацией прямо на сервере.

Телефонная книга для FreePBX
Код файла index.php
7.1 KiB
37 Downloads
Детали

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *