Взаимодействие Tariscope с 3CX v20
Эта статья предназначена для пользователей лицензий на системы Tariscope Enterprise или Tariscope Provider с функцией ограничения, которая используется для управления IP АТС 3CX v20.
Начиная с версии Tariscope 4.6.7 был разработан новый сценарий для приложения Tariscope Observer, который передает команды на ограничение абонентов или снятие этих ограничений отдельному приложению TSconnector. Это приложение устанавливается на сервере с 3CX v20, и уже оно непосредственно отправляет команды на эту АТС. Есть отдельные приложения для Windows и Linux в зависимости от того, на какой операционной системе работает 3CX. Для работы функции ограничения в Tariscope не имеет значения, на какой системе работает Tariscope, под Windows или Linux.
Схема взаимодействия биллинговой системы (системы учета вызовов) 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/
Взаимодействие сценария для установки/снятия ограничения, работающего в Tariscope Observer с приложением TSconnector, выполняется с помощью протокола TCP. TSconnector работает как сервер TCP, а сценарий Tariscope Observer как клиент TCP. IP порт, через который работает TCP сервер приложения TSconnector, задается в файле config.json, который является частью приложения TSconnector. По умолчанию используется IP порт 8089. Пользователь может изменить его по своему желанию.
Позаботьтесь, чтобы этот порт был открыт как на сервере 3CX, где устанавливается приложение TSconnector, так и на сервере Tariscope
Установка приложения под 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.
