Взаимодействие Tariscope с 3CX v20
Эта статья предназначена для пользователей лицензий на системы Tariscope Enterprise или Tariscope Provider с функцией ограничения, которая используется для управления IP АТС 3CX v20.
Начиная с версии Tariscope 4.6.7 был разработан новый сценарий для приложения Tariscope Observer, который передает команды на ограничение абонентов или снятие этих ограничений отдельному приложению TSconnector. Это приложение устанавливается на сервере с 3CX v20, и уже оно непосредственно отправляет команды на эту АТС. Есть отдельные приложения для Windows и Linux, зависимо от того, на какой операционной системе работает 3CX. Схема взаимодействия биллинговой системы (системы учета вызовов) Tariscope с 3CX показана на рисунке 1.

Рисунок 1
Все настройки системы ограничения в Tariscope выполняются по-прежнему за исключением выбора сценария и установки приложения TSconnector.
Загрузите с сайта Tariscope соответствующее приложение:
для Windows (tsconnector.zip) или Linux (tsconnector.tar.gz), в зависимости от того на какой операционной системе у вас установлен 3CX.
Для работы приложения TSconnector требуется конфигурационный файл от 3CX: 3CXPhoneSystem.ini
В Windows этот файл должен находиться в папке: C:\ProgramData\3CX\Bin
В Linux этот файл должен находиться в каталоге: /var/lib/3cxpbx/Bin/
Также необходимо предоставить доступ с других компьютеров к серверу PostgreSQL, на котором установлена база данных 3CX. Tariscope и TSconnector не работают с базой данных 3CX, а используют свою базу данных.
Для этого следует внести изменения в файл pg_hba.conf.
В Windows этот файл должен находиться в папке: C:\ProgramData\3CX\Data\DB
В Linux этот файл должен находиться в каталоге: var/lib/postgresql/<версия>/main/
Добавьте новые строки, чтобы разрешить доступ с других IP-адресов.
Например, для разрешения соединений с любого IP-адреса:
host all all 0.0.0.0/0 password
Для разрешения по конкретному IP адресу, например, 192.168.1.100, где установлен Tariscope:
host all all 192.168.1.100/32 password
Эти изменения требуют перезагрузки PostgreSQL сервера.
Установка приложения под Windows
Распакуйте архив tsconnector.zip в какую-нибудь папку, например, в папке: C:\TSconnector
Скопируйте файл 3CXPhoneSystem.ini в эту папку
TSconnector выполняет действия по установке или снятию ограничений в зависимости от того, какие команды от Tariscope он получит, с периодом, который задается в файле config.json в секундах. По умолчанию этот период составляет 30 секунд. При необходимости откройте этот файл и измените период.
Откройте в Windows Командную строку с правами администратора.
Создайте службу Windows следующей командой:
sc create TSconnector binpath= [путь в файл tsconnector.exe]
Например, если вы распаковали архив в папку C:\TSconnector, то эта команда должна выглядеть следующим образом:
sc create TSconnector binpath= C:\TSconnector\ tsconnector.exe
Запустите эту службу следующей командой:
sc start TSconnector
В случае успешного запуска службы в этой папке будет создан файл журнала работы приложения TS_restrictions.log. Проверьте его содержимое, что оно не содержит ошибок.
Установка приложения под Linux
Перед установкой TSconnector проверьте, доступен ли .Net 8.0 на сервере. 3CX V20 использует .Net 8.0, но .Net 8.0, возможно, был установлен в Docker вместе с 3CX. В этом случае .Net 8.0 не будет доступен для других приложений, включая TSconnector. Чтобы проверить доступность .Net, выполните следующую команду:
dotnet --list-runtime
Если вы не получаете информацию об установке .Net 8.0, установите ее, как описано в статье.
Распакуйте архив tsconnector.tar.gz в каком-нибудь каталоге, например: /home/softpi/TSconnector (softpi здесь имя пользователя, с которым логинились в систему).
Скопируйте в этот каталог файл 3CXPhoneSystem.ini
Создайте файл unit для Linux, например, с именем ts-connector.service
Этот файл должен содержать следующие строки:
[Unit]
Description=Tariscope restrictions
[Service]
Type=notify
ExecStart=/home/softpi/TSconnector/TSconnector
[Install]
WantedBy=multi-user.target
Комментарии к содержимому файла:
Description – может быть случайным.
ExecStart – путь к файлу TSconnector из архива.
Скопируйте этот файл в каталог /etc/systemd/system
sudo cp /home/softpi/TSconnector/ts-connector.service /etc/systemd/system
Перезагрузите Linux. Следует учитывать, что будут перегружаться все службы, в том числе службы 3CX. Поэтому выберите нужное время.
sudo systemctl daemon-reload
Проверьте состояние демона ts-connector (если вы создадите unit файл для службы с другим именем, используйте это имя и в следующей команде):
sudo systemctl status ts-connector
Если служба неактивна, запустите ее.
sudo systemctl start ts-connector
Если все выполнено правильно, то должен быть статус "active". В этом случае будет создан журнал службы. Журнал работы службы TS_restrictions.log будет находиться в каталоге, где распакован архив.
Настройка сценария Tariscope
В Tariscope выберите Сбор данных/Observer -> Управление сбором данных.
На странице Сбор данных/Observer выберите строку Observer, работающую с 3CX v20.
На панели инструментов щелкните по иконке Изменить и выберите Сценарии Observer.
В списке Событие выберите требуемое, например, Изменение класса абонента, соответствующее условиям лицензии на Tariscope.
В списке Сценарий выберите: setcos-subscriber-3cx-v20.cs
Щелкните по иконке Изменить. Появится окно Редактирования, в котором будет отображен текст сценария.
Найдите там следующие строки и внесите в них соответствующие изменения:
const string DBHost = "127.0.0.1"; //IP address of PostgreSQL server
const string DBPort = "5432"; //IP port of PostgreSQL server
const string MasterDBUser = "phonesystem"; //Database username
const string MasterDBPassword = "pLvjPg8IKUo"; //Database username password
Для константы DBhostукажите IP-адрес, где установлен 3CX.
Для последующих 3-х констант сценария нужно заменить значения а используемые в файле 3CXPhoneSystem.ini в разделе CfgServerProfile.
Сохраните изменения в сценарии.
После этого, если все остальные настройки системы ограничения в Tariscope сделаны, можно запускать Observer.
