/
mikopbx
/
ModuleBeelinePbx
Обзор
Документация
Войти
/
mikopbx
/
ModuleBeelinePbx
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
master
Models/ModuleBeelinePbx.php
130 строк
5 KB
boffart
Инициализация модуля ModuleBeelinePbx
08 июл 2026, 17:11
08 июл 2026, 17:11
1cc4e1a
Код
Авторство
О чём код?
<?php /* * MikoPBX - free phone system for small business * Copyright © 2017-2024 Alexey Portnov and Nikolay Beketov * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with this program. * If not, see <https://www.gnu.org/licenses/>. */ namespace Modules\ModuleBeelinePbx\Models; use MikoPBX\Modules\Models\ModulesModelsBase; /** * Настройки модуля интеграции с Облачной АТС Билайн. * * Таблица: m_ModuleBeelinePbx */ class ModuleBeelinePbx extends ModulesModelsBase { /** * @Primary * @Identity * @Column(type="integer", nullable=false) */ public $id; /** * Токен авторизации Beeline API (заголовок X-MPBX-API-AUTH-TOKEN). * * @Column(type="string", nullable=true, default="") */ public $authApiKey = ''; /** * Публичный адрес АТС (например https://pbx.example.ru) — на него Билайн будет * присылать события Xsi-Events. Используется для формирования callback-URL подписки. * * @Column(type="string", nullable=true, default="") */ public $pbxPublicUrl = ''; /** * Правая граница последнего успешно синхронизированного окна (Y-m-d\TH:i:s). * * @Column(type="string", nullable=true, default="") */ public $offset = ''; /** * Сдвиг времени в часах между Облачной АТС Билайн и PBX (компенсация TZ). * * @Column(type="string", nullable=true, default="0") */ public $gap = '0'; /** * Какой номер сотрудника отображать в CDR: 'extension' (внутренний) или 'mobile' (мобильный). * Мобильный приводится к 11-значному формату (10 цифр → 7XXXXXXXXXX). * * @Column(type="string", nullable=true, default="extension") */ public $employeeNumberField = 'extension'; /** * Скачивать ли записи разговоров (1 — да, 0 — только история CDR). * * @Column(type="integer", default="1", nullable=true) */ public $downloadRecordings = '1'; /** * Включена ли подписка на реалтайм-события Билайн (Xsi-Events push). * При 1 модуль по cron регистрирует у Билайн callback-URL (PUT /subscription) * и продлевает подписку до истечения; при 0 — снимает активную подписку. * * @Column(type="integer", default="0", nullable=true) */ public $pushSubscriptionEnabled = '0'; /** * Идентификатор активной подписки Xsi-Events, выданный Билайн (PUT /subscription). * Пусто — активной подписки нет. Заполняется/чистится cron-скриптом manageSubscription.php. * * @Column(type="string", nullable=true, default="") */ public $subscriptionId = ''; /** * Момент истечения активной подписки — абсолютный Unix-timestamp (секунды, строкой). * Используется cron-скриптом для переподписки заблаговременно до истечения. * * @Column(type="string", nullable=true, default="") */ public $subscriptionExpiresAt = ''; /** * Текст последней ошибки подписки (пусто — ошибок нет). Показывается в UI для диагностики. * * @Column(type="string", nullable=true, default="") */ public $subscriptionError = ''; /** * Чёрный список номеров: звонки, в которых участвует любой из перечисленных номеров, * не импортируются. Один номер на строку (также через запятую/точку с запятой). * Короткие номера (добавочные, напр. 2500) сравниваются точно, длинные — по последним * 10 цифрам (формат произвольный). * * @Column(type="string", nullable=true) */ public $excludedNumbers = ''; public function initialize(): void { $this->setSource('m_ModuleBeelinePbx'); parent::initialize(); } }