/
mikopbx
/
ModuleNotifier
Обзор
Документация
Войти
/
mikopbx
/
ModuleNotifier
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
1.0
Lib/NotifierMain.php
79 строк
2 KB
boffart
Feat(module): add notifier core and call history flow
19 мар 2026, 15:14
19 мар 2026, 15:14
94c8b98
Код
Авторство
О чём код?
<?php namespace Modules\ModuleNotifier\Lib; use MikoPBX\Core\System\Processes; use MikoPBX\Core\System\Util; use MikoPBX\Core\Workers\Cron\WorkerSafeScriptsCore; use MikoPBX\Modules\PbxExtensionBase; use MikoPBX\Modules\PbxExtensionUtils; use MikoPBX\PBXCoreREST\Lib\PBXApiResult; class NotifierMain extends PbxExtensionBase { /** * Process something received over AsteriskAMI * * @param array $parameters */ public function processAmiMessage(array $parameters): void { $message = implode(' ', $parameters); $this->logger->writeInfo($message); } /** * Process something received over Beanstalk queue * * @param array $parameters */ public function processBeanstalkMessage(array $parameters): void { $message = implode(' ', $parameters); $this->logger->writeInfo($message); } /** * Check something and answer over RestAPI * * @return PBXApiResult */ public function checkModuleWorkProperly(): PBXApiResult { $res = new PBXApiResult(); $res->processor = __METHOD__; $res->success = true; return $res; } /** * Start or restart module workers * * @param bool $restart */ public function startAllServices(bool $restart = false): void { $moduleEnabled = PbxExtensionUtils::isEnabled($this->moduleUniqueId); if ( ! $moduleEnabled) { return; } $configClass = new NotifierConf(); $workersToRestart = $configClass->getModuleWorkers(); if ($restart) { foreach ($workersToRestart as $moduleWorker) { Processes::processPHPWorker($moduleWorker['worker']); } } else { $safeScript = new WorkerSafeScriptsCore(); foreach ($workersToRestart as $moduleWorker) { if ($moduleWorker['type'] === WorkerSafeScriptsCore::CHECK_BY_AMI) { $safeScript->checkWorkerAMI($moduleWorker['worker']); } else { $safeScript->checkWorkerBeanstalk($moduleWorker['worker']); } } } } }