Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
ac85c8b
PHP 8.2 & FreePBX 16/17: namespace fix, null-safety, install fixes, m…
timspb Feb 12, 2026
960ba68
docs: update README for FreePBX 16/17, PHP 8.2, chan-sccp 4.3.5+
timspb Feb 12, 2026
12faba0
compat: FreePBX 17, Asterisk 22/23 - CheckAsteriskVersion, PHP 8.2, u…
timspb Feb 12, 2026
fc792c7
Stability: MariaDB strict, AMI null-safe, BMO assets, E_NOTICE fixes
timspb Feb 12, 2026
754ea4d
Production-ready 17.0.1.0: XSS escape, i18n, CSRF note, Throwable log…
timspb Feb 12, 2026
b198732
README: point to timspb/sccp_manager repo, fix typos, add v17.0.1.0 i…
timspb Feb 12, 2026
b522f79
README: upstream as default install links, add fork notice and option…
timspb Feb 12, 2026
c019a42
AMI: accept SCCPShowSoftkeySetsComplete from chan_sccp driver
timspb Feb 12, 2026
86c2e4f
Add FreePBX module build script and ignore dist/
timspb Feb 12, 2026
94ceb3a
Fix PHP 8.2 compatibility: replace deprecated string interpolation an…
timspb Feb 12, 2026
ba4a42a
Create sccp_manager.code-workspace
timspb Feb 12, 2026
021849c
Fix FreePBX BMO Log class availability during installation
timspb Feb 13, 2026
64420eb
Fix deprecated FILTER_SANITIZE_STRING constant for PHP 8.1+
timspb Feb 13, 2026
4d5d700
Fix dynamic property creation in Event classes for PHP 8.2
timspb Feb 13, 2026
faa07d3
Fix all remaining dynamic properties in Response classes for PHP 8.2
timspb Feb 13, 2026
5a2b731
Fix undefined array key errors for PHP 8.2
timspb Feb 13, 2026
e1ceb14
Fix DateTime constructor null parameter for PHP 8.2
timspb Feb 13, 2026
bc95cd4
Complete PHP 8.2 compatibility audit and fixes
timspb Feb 13, 2026
7c96ac5
Fix strtoupper null parameter in install.php for PHP 8.2
timspb Feb 13, 2026
1624f42
Fix strtolower null parameter in install.php enum validation
timspb Feb 13, 2026
61c7510
Fix remaining strtolower null parameter on line 1254
timspb Feb 13, 2026
e4852e8
Complete PHP 8.2 dynamic properties audit and fixes
timspb Feb 13, 2026
23e459e
Fix undefined array key 'tftp_path' in helperFunctions.php
timspb Feb 13, 2026
1b58ee5
Fix PHP syntax error: null coalescing in string interpolation
timspb Feb 13, 2026
192e004
Fix SQL column case sensitivity issue
timspb Feb 13, 2026
cdfd12b
Fix undefined array key errors in form creation
timspb Feb 13, 2026
f4316eb
Fix undefined array key errors in Sccp_manager class
timspb Feb 13, 2026
53d19f6
Add database error handling and PHP 8.2 type safety
timspb Feb 13, 2026
93bf5d3
Global audit: Fix all undefined array key errors
timspb Feb 13, 2026
a550420
FINAL FIX: Complete undefined array key audit
timspb Feb 13, 2026
a9e2821
Fix AMI Response undefined array key errors
timspb Feb 13, 2026
c192f81
Fix AMI interface undefined array key and property errors
timspb Feb 13, 2026
0a44ead
PHP 8.2 compatibility, firmware/template paths, provisioner, UI fixes
Feb 13, 2026
c00292e
Ok
timspb Feb 13, 2026
145781d
Docs: simplify README, remove archive badge, add clone install
timspb Feb 13, 2026
00db3aa
Docs: add timspb/chan-sccp as working driver in README
timspb Feb 13, 2026
acab5d9
PHP 8.3, README redesign, firmware download fix, contrib READMEs
timspb Feb 13, 2026
67f8b3d
Provisioner: original file_get_contents first, fallback XML, firmware…
timspb Feb 13, 2026
b1f0967
Always refresh masterFilesStructure.xml in TFTP root on download attempt
timspb Feb 13, 2026
f3ad0c6
Better error messages for TFTP path, writable dir, and download failures
timspb Feb 13, 2026
a5a8fa9
Fix JS: handle object response on Get Files error (data.replace is no…
timspb Feb 13, 2026
d4c9cbc
Add Settings and Ringtones download from Provisioner (buttons + backe…
timspb Feb 13, 2026
55b36bc
Install: DROP TABLE IF EXISTS sccpdeviceconfig/sccplineconfig before …
timspb Feb 13, 2026
2cd29b6
Fix Undefined array key name in form.adddevice (getDefaultLine safe a…
timspb Feb 13, 2026
e3449ec
strtok null fix (Response); form warning display + validation use tft…
timspb Feb 13, 2026
6a67e38
createSccpDeviceXML: fallback tftp_store_path to tftp_path/settings w…
timspb Feb 13, 2026
f8fb352
Line in grid: Default Line as button0 on save; fallback to device but…
timspb Feb 13, 2026
c766ad7
Grid: show device description (Device Label) when view returns empty
timspb Feb 13, 2026
41ce630
Load Image: dropdown in model edit modal from masterFilesStructure.xml
timspb Feb 13, 2026
ce24aa8
README: add Deployment section; .gitignore: workspace, .idea, phpunit…
timspb Feb 13, 2026
0d13f67
Release 17.0.1.1: Load Image dropdown, README Deployment, .gitignore
timspb Feb 13, 2026
8254127
Add release notes draft for v17.0.1.1
timspb Feb 13, 2026
b5fca95
README: use chan-sccp links for upstream PR (no fork refs)
timspb Feb 13, 2026
052a117
README: note that patched/fixed chan-sccp build may be required
timspb Feb 13, 2026
4932d38
TFTP writable check; modal UI and i18n; INSTALL guides (contrib); REA…
timspb Feb 13, 2026
153896a
Fix undefined array key / null: server.info (driver, core, tftp, real…
timspb Feb 15, 2026
bf3f9ae
Fix audio_cos/video_cos: module.xml length 11 + default 0x6/0x5; inst…
timspb Feb 15, 2026
024c131
installDbPopulateSccpline: avoid Array to string conversion for accou…
timspb Feb 15, 2026
c6c561f
install: cast name/err/amp_conf to string to avoid Array to string co…
timspb Feb 15, 2026
7c967fe
Require PHP 8.2+ instead of 8.3 (code is compatible); update README a…
timspb Feb 15, 2026
55ca6f3
install.php: fix Array to string conversion (confDir, AMPWEBROOT, set…
timspb Feb 15, 2026
fba09d8
install.php: fix Array to string in createBackUpConfig (amp_conf DB),…
timspb Feb 15, 2026
5519038
createBackUpConfig: cast file/path to string, safe unlink
timspb Feb 15, 2026
d134c82
UI, locale, install and device fixes
Feb 16, 2026
2da9ef3
Remove CP-8821 and forced phone list behaviour
Feb 16, 2026
6394d11
Setup_RealTime: normalize AMPDBNAME when array (def_bd_section)
timspb Feb 16, 2026
50b8fef
Setup_RealTime: use _sccp_install_scalar_str for def_bd_config and de…
timspb Feb 16, 2026
dbca7c0
Warning captions: tidy wording, add Russian translation (server/devic…
timspb Feb 16, 2026
45f38be
Warning block: redraw as centered alert-style box (text-align, Bootst…
timspb Feb 16, 2026
d00f558
UI: align form columns (label/value/actions), section and help panel …
timspb Feb 16, 2026
1cb4ea6
Revert "UI: align form columns (label/value/actions), section and hel…
timspb Feb 16, 2026
7031625
form.buttons: fix Undefined array key 'buttons' (db_device, dev_schem…
timspb Feb 16, 2026
ae75bf5
i18n ru_RU: translate hints, help, codec, server.info, form.buttons, …
timspb Feb 16, 2026
b4cd9e0
i18n ru_RU: Provision/User Roaming help; fix typos, add Phone URL and…
timspb Feb 16, 2026
145f82b
i18n ru_RU: fix TFTP language dir help text typos, single clean msgstr
timspb Feb 16, 2026
f0c166e
Fix SCCP device status: case-insensitive MAC match for active devices
timspb Feb 16, 2026
f78f4a0
UI: color status green/red in Device and Extension grids
timspb Feb 16, 2026
c8ec1cc
UI: status by row color (green/red) and phone icon in status cell
timspb Feb 16, 2026
a90c7c0
UI: teal header, green borders, apply row colors on table load-success
timspb Feb 16, 2026
6fe84f0
Extensions: row color by connection status only (regstate OK), not Ac…
timspb Feb 16, 2026
f502554
Fix row background: data-index match, post-body/load-success, stronge…
timspb Feb 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
*~
dist/
*.tar.gz
*.zip
*.code-workspace
.idea/
.phpunit.result.cache
65 changes: 65 additions & 0 deletions DEPLOYMENT_SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# SCCP Manager 17.0.1.0 – Production readiness summary

## 1. Security & XSS

- **Views (views/):** All dynamic output from the database or `$_REQUEST` is escaped:
- **form.adddevice.php:** `$dev_id`, `$key`, `$value` in device warnings; headings wrapped in `_()`.
- **form.buttons.php:** `$show_buttons`, `$db_device`, `$forminfo`, `$line_id`, `$db_buttons`, `$data`, `$defaul_opt`, `$defaul_fcod`, `$defaul_advline` in attributes and labels; placeholders/labels wrapped in `_()`.
- **server.info.php:** `$key`, `$value` in warnings and info table; `$moduleXml->version`; `class_error` output; all user-facing strings wrapped in `_()`.
- **server.codec.php:** `$sccp_disallow_def` in input value.
- **page.html.php:** `$display_info`, tab `$key`, `$page['name']` escaped; modal "Modal title" and "Close" wrapped in `_()`.
- **Form generator (formcreate.class.php):** Added `formcreate::h()` (HTML escape). All `value=""`, `name=""`, `id=""`, option text and option values built from DB/request are output via `self::h()` (inputs, selects, options, radio, date/number/text fields).
- **Sccp_manager.class.php:** New `escapeHtml($s)` using `htmlspecialchars(..., ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8')` for use in views.

## 2. CSRF

- **Verified:** Forms use `class="fpbx-submit"` and POST to `config.php`; FreePBX enforces session auth and may inject its own CSRF token. AJAX goes through BMO `ajaxRequest()` and is session-authenticated.
- **Documentation:** A short comment was added in `bmoFunctions.php` above `getActionBar()` describing that forms and AJAX rely on the framework (config.php / ajax.php) and must not be bypassed.

## 3. Localization (i18n)

- **Views:** User-visible English strings wrapped in `_()` in:
- form.adddevice.php: "Warning in the SCCP Device"
- form.buttons.php: "Help", "Default", "DEF LINE", "Name", "Phone", "hints", "Display Label", "code", "ButtonLabel,Options", "RetrieveSingle"
- server.info.php: "Sccp Manager Warning", "There are Warning in the SCCP Module:", "Check these problems...", "Diagnostic information...", "There is an error in the module:", "Correct these problems...", "Open 'SCCP Connectivity'...", "Sccp Manager", "Info", "Module", "Version", "Info", "BackUp Config"
- page.html.php: "Modal title", "Close"
- server.codec.php: already used `_()` for labels/help.
- **formcreate.class.php:** "Customise", "Use %s defaults", "Enter new %s value for %s" wrapped in `_()` / `sprintf(_(...), ...)`.

## 4. PHP 8.3 log readiness

- **Sccp_manager.class.php `__construct()`:** Initial load is wrapped in `try { ... } catch (\Throwable $e) { ... }`:
- On exception, `$this->class_error` is set with message, file and line.
- If `freepbx_log()` exists, the error is logged with `FreePBX::Log()->LOG_ERROR`.
- The exception is rethrown so the Dashboard and logs show the failure; the stored `class_error` is shown on the module’s Server Info page.

## 5. module.xml

- **Version:** Set to **17.0.1.0**.
- **Depends:** Unchanged; already includes `<phpversion>8.3</phpversion>` and `<version>16</version>`.
- **Changelog:** New entry: *Version 17.0.1.0* – Production-ready: XSS escaping in views, i18n pass, Throwable logging on load, module version 17.0.1.0; depends php 8.3.

## 6. sccpManagerUpdater.json

- **Version:** 17.0.1.0.
- **Changelog:** Entry added for 17.0.1.0 (production-ready: XSS escaping, i18n, Throwable logging, php 8.3 depends).
- **location:** Tag URL updated to `v17.0.1.0.tar.gz`.

## Files changed (for deployment)

- `Sccp_manager.class.php` – `escapeHtml()`, Throwable wrapper in `__construct()`
- `module.xml` – version 17.0.1.0, changelog
- `sccpManagerUpdater.json` – version 17.0.1.0, changelog, location
- `sccpManTraits/bmoFunctions.php` – CSRF/security comment
- `sccpManClasses/formcreate.class.php` – `h()`, XSS escaping, i18n
- `views/form.adddevice.php` – XSS escape, i18n
- `views/form.buttons.php` – XSS escape, i18n
- `views/server.info.php` – XSS escape, i18n
- `views/server.codec.php` – XSS escape
- `page.html.php` – XSS escape, i18n

## Deployment

1. Run through your usual tests (install/upgrade, Server Config, Phones, System Parameters, AJAX actions).
2. Trigger an intentional error (e.g. invalid DB) and confirm the Dashboard and Server Info page show the caught error and that it appears in FreePBX logs if `freepbx_log` is available.
3. After validation, tag the release as `v17.0.1.0` and deploy the package (e.g. from `sccpManagerUpdater.json` location).
163 changes: 72 additions & 91 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,121 +1,102 @@
## Welcome to Develop Chan_SCCP GUI Manager for FreePBX
| [English :gb:/:us:](README.md) | [Russian :ru:](README.ru.md) | [Previous Stable Releases](https://github.com/PhantomVl/sccp_manager/tree/master)
# SCCP Manager

![Gif](https://github.com/chan-sccp/sccp_manager/raw/develop/.dok/image/Demo_1s5.gif)
> FreePBX module for managing Cisco IP phones and SCCP extensions with Asterisk and [chan-sccp](https://github.com/chan-sccp/chan-sccp). Provisioning, buttons, BLF, multiple lines.

* [Installation](https://github.com/chan-sccp/sccp_manager#installation)
* [Prerequisites](https://github.com/chan-sccp/sccp_manager#prerequisites)
* [Links](https://github.com/chan-sccp/sccp_manager#link)
* [Wiki](https://github.com/chan-sccp/sccp_manager/wiki)
[![English](https://img.shields.io/badge/README-English-blue)](README.md) [![Русский](https://img.shields.io/badge/README-Русский-green)](README.ru.md)

## Link
**Repo:** [chan-sccp/sccp_manager](https://github.com/chan-sccp/sccp_manager)

[![Download Sccp-Mamager](https://img.shields.io/badge/SccpGUI-build-ff69b4.svg)](https://github.com/chan-sccp/sccp_manager/archive/tarball/develop)
[![Download Chan-SCCP channel driver for Asterisk](https://img.shields.io/sourceforge/dt/chan-sccp-b.svg)](https://github.com/chan-sccp/chan-sccp/releases/latest)
[![Chan-SCCP Documentation](https://img.shields.io/badge/docs-wiki-blue.svg)](https://github.com/chan-sccp/chan-sccp/wiki)
---

This FreePBX module has been developed to help IT Staff with their Asterisk-Cisco infrastructure deployment,
providing easy provisioning and management of Cisco IP phones and extensions in a similar way to Cisco CallManager.
The idea of creating a module is borrowed from (https://github.com/Cynjut/SCCP_Manager), and was further developed and managed
by PhantomVl (https://github.com/PhantomVl/sccp_manager) who has been unavailable for some time. sccp_manager relies heavily
on chan-sccp, so having the same repository will help improve integration.
## Requirements

SCCP Manager is free software. Please see the file COPYING for details.
| Component | Version |
|-----------|---------|
| FreePBX | 16 or 17 |
| PHP | 8.2+ |
| Asterisk | 21 / 22 / 23 |
| chan-sccp | 4.3.5+ |
| PHP extension | zip |

This module will suit you if you are planing the to migrate from CallManager to Asterisk (or have already done it). SCCP-Manager allows you to administer
SCCP extensions and a wide range of Cisco phone types (including IP Communicator).
You can control phone buttons (depending on the phone model) assigning multiple lines, speeddials and BLF’s.
And you can use the driver functions "sccp_chain" from the GUI module.
A **patched or fixed chan-sccp build** may be required for full compatibility with this module and your Asterisk/FreePBX setup; the stock distro package is not always sufficient. See [chan-sccp](https://github.com/chan-sccp/chan-sccp) releases or community builds.

### Wiki
You can find more information and documentation on our [![SCCP Manager Wiki](https://img.shields.io/badge/Wiki-new-blue.svg)](https://github.com/chan-sccp/wiki)

## Prerequisites
Make sure you have the following installed on your system:
- gui:
- freepbx >= 13.0.192
- a working version of [chan-sccp](https://github.com/chan-sccp/chan-sccp)
- PHPx.x-zip has to be installed (where x.x is the installed version of PHP).
For example, on Debian, using PHP7.3
```
apt-get install PHP7.3-zip
```bash
apt-get install php-zip # or php8.2-zip / php8.3-zip to match your PHP version
```

### Requirements
- chan-sccp module 4.3.4 (or later) channel driver for Asterisk: [See our WIKI](https://github.com/chan-sccp/chan-sccp/wiki/Building-and-Installation-Guide)
- sccp_manager expects these configure flags to be set during compilation:
```./configure --enable-conference --enable-advanced-functions --enable-distributed-devicestate --enable-video```
**TFTP** (e.g. `/tftpboot`) and **DHCP** required. See [chan-sccp Wiki](https://github.com/chan-sccp/chan-sccp/wiki).

- TFTP Server running under (recommended) /tftpboot/ [See our WIKI] (https://github.com/chan-sccp/chan-sccp/wiki/setup-tftp-service)
- You will need the phone settings templates. You can use the templates taken from the distribution "chan-sccp"
```cp /usr/src/chan-sccp/conf/tftp/\*.xml\* /tftpboot/templates/```
---

- configure DHCP server [See our WIKI](https://github.com/chan-sccp/chan-sccp/wiki/setup-dhcp-service)
Important!
## Installation

1. FreePBX → **Admin** → **Module Admin** → **Upload Modules**.
2. In **Download From Web** paste:

### Setup
- [Setting up a FreePBX system](http://wiki.freepbx.org/display/FOP/Install+FreePBX)
- [Setting up Chan-Sccp](https://github.com/chan-sccp/chan-sccp/wiki/How-to-setup-the-chan_sccp-Module)
- The sccp_manager module will automatically setup and configure asterisk realtime database for chan-sccp.
For more information about realtime [See chan-sccp wiki](https://github.com/chan-sccp/chan-sccp/wiki/Realtime-Configuration).
```
https://github.com/chan-sccp/sccp_manager/archive/refs/heads/develop.zip
```

## Installation
3. **Download From Web** → **Manage Local Modules** → **SCCP Manager** → **Install** → **Process**.
4. **Apply Config**.

How to install sccp_manager
-----
From shell (for development):

1. Log in to FreePBX
2. Go to Admin -> Module Admin
3. Click Upload Modules.
4. Enter one of the following urls:
```bash
cd /var/www/html/admin/modules
git clone https://github.com/chan-sccp/sccp_manager.git
fwconsole ma install sccp_manager
```

Stable - Version 14.3.
**Detailed installation guides (RU):** [contrib/INSTALL-chan-sccp.md](contrib/INSTALL-chan-sccp.md) (chan_sccp driver), [contrib/INSTALL-sccp_manager.md](contrib/INSTALL-sccp_manager.md) (this module).

This is the latest version of sccp_manager and has many bug fixes. It is targetted for FreePbx 16 and as such requires PHP > 7.3. It works fine with FreePbx 15 as long as you can upgrade PHP (this cannot be done if you use commercial modules). There are changes to the database structure, and so this cannot be easily reverted to prior versions without using a backup, which the installer will create. If you are using a VM, it is recommended to take a snapshot before upgrading.
Upgrades via FreePbx module admin are enabled in this release, but do not work because of a FreePbx issue (a patch has been posted). To workaround this, if you see that an upgrade is available, you can download it via the command line console which is unaffected by this issue
```
## Update

```bash
fwconsole ma upgrade sccp_manager
```
```
https://github.com/chan-sccp/sccp_manager/archive/refs/tags/14.3.0.13.zip
```

Stable (For PHP < 7 only)
```
https://github.com/chan-sccp/sccp_manager/archive/refs/tags/v14.2.0.11.zip
```
Develop.
---

This version can be updated through module admin as modifications are made (pending fix by FreePbx)
_This is development software and so may have issues_
```
https://github.com/chan-sccp/sccp_manager/archive/refs/heads/develop.zip
```
## Deployment (what install does)

When you run **Install** in Module Admin, the module:

5. Click Download From Web.
6. Click Manage Local Modules.
7. Find and click SCCP Manager. Check Install. Click Process button.
8. Confirm installation.
9. Close Status window.
10. Apply Config to FreePBX.
11. Continue to [Using-SCCP_Manager-to-Manage-chan-sccp](https://github.com/chan-sccp/chan-sccp/wiki/Using-SCCP_Manager-to-Manage-chan-sccp)
1. **Checks chan-sccp** — Must be installed and running (Asterisk loads it). If not, install stops.
2. **Backup** — Zips `extensions.conf`, `extconfig`, `res_*`, `sccp*.conf` and a DB dump under `ASTETCDIR`.
3. **DB schema** — Creates/updates tables: `sccpdevice`, `sccpline`, `sccpdevmodel`, `sccpuser`, `sccpbuttonconfig`, `sccpsettings`. Drops old **tables** `sccpdeviceconfig` / `sccplineconfig` if present, then creates them as **VIEWs** (realtime for chan-sccp).
4. **Realtime** — Writes `extconfig` so chan-sccp uses `sccpdeviceconfig` and `sccplineconfig`; ensures `res_config_mysql.conf` (or `res_mysql.conf`) has the DB section.
5. **Driver** — Copies `sccp_manager/sccpManClasses/Sccp.class.php.v*` into FreePBX core drivers so Devices see SCCP.
6. **TFTP** — Detects TFTP root (e.g. `/tftpboot`), writes rewrite rules, saves paths to `sccpsettings`. If TFTP is down or root not found, install stops.
7. **masterFilesStructure.xml** — Fetched from provisioner into TFTP root; on failure, installs a local copy from `contrib/`.

### Module update to latest state
After install: **Apply Config** in FreePBX, then configure phones and lines in **SCCP Connectivity**.

If you installed any version >14.3.0.13, the module can be updated to the latest version via FreePBX. The GUI version FreePBX -> Admin -> Module Admin currently has a reported bug, but the upgrade can be made via the command line using
```
fwconsole ma upgrade sccp_manager
```
---

## Firmware / provisioner

The module fetches firmware and locale files from [dkgroot/provision_sccp](https://github.com/dkgroot/provision_sccp). Files live under `tftpboot/firmware/<model>/`, e.g. [7975](https://github.com/dkgroot/provision_sccp/tree/master/tftpboot/firmware/7975) has `SCCP75.9-4-2SR3-1S.loads`. If downloads give **0 KB files** (redirect/connectivity), the code now uses `raw.githubusercontent.com` and rejects 0-byte firmware. If downloads still fail:

- **Permissions:** `/tftpboot` and `admin/modules/sccp_manager/firmware` writable by the web server user (e.g. `asterisk`):
`sudo chown -R asterisk:asterisk /tftpboot`
- **Connectivity:** Server can reach `https://github.com` (`curl -I https://github.com`).
- **Check script:**
`bash .../sccp_manager/contrib/check_provisioner_env.sh /tftpboot`
- **Manual download** (example for 7975):
`wget -O /tftpboot/firmware/7975/SCCP75.9-4-2SR3-1S.loads "https://raw.githubusercontent.com/dkgroot/provision_sccp/master/tftpboot/firmware/7975/SCCP75.9-4-2SR3-1S.loads"`

---

## Database (chan_sccp realtime)

chan_sccp reads devices from MySQL via **extconfig** (`sccpdevice=mysql,asterisk,sccpdeviceconfig`). The module provides a **VIEW** `sccpdeviceconfig` (data from `sccpdevice` + `sccpbuttonconfig`), not a table. If `sccpdeviceconfig` was ever created as a **table** (e.g. by an old script), chan_sccp would see 0 rows and reject with "device unknown". On install/upgrade the module now runs `DROP TABLE IF EXISTS sccpdeviceconfig` before creating the view, so the view is always correct. If you see "registration reject device unknown" but the device exists in `sccpdevice`, check that `sccpdeviceconfig` is a view: `SHOW FULL TABLES WHERE Table_type = 'VIEW';` and that `SELECT name FROM sccpdeviceconfig;` returns your devices.

---

## Links

### IMPORTANT NOTES:
- If something stops working, use the Stable branch as described in [Installation](https://github.com/chan-sccp/sccp_manager#installation)
- This system assumes/requires that you are using the Asterisk realtime database. If you are not yet using the realtime database,
you will have to set it up for this module to work ([See](https://github.com/chan-sccp/chan-sccp/wiki/Realtime-Configuration)).
- For the cisco phones to work correctly, they should be provisioned with the latest firmware (v8.1 or higher)
- You can use cisco language profiles (localization) to switch the phones to your locale.
- [chan-sccp/chan-sccp](https://github.com/chan-sccp/chan-sccp) — driver
- [Wiki](https://github.com/chan-sccp/chan-sccp/wiki) · [Realtime](https://github.com/chan-sccp/chan-sccp/wiki/Realtime-Configuration) · [Gitter](https://gitter.im/sccp_manager/community)

### Chat
[![Gitter](https://badges.gitter.im/chan-sccp/chan-sccp.svg)](https://gitter.im/sccp_manager/community)
**License:** GPL. See [COPYING](COPYING).
29 changes: 11 additions & 18 deletions README.ru.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@

## Link

[![Download Sccp-Mamager](https://img.shields.io/badge/SccpGUI-build-ff69b4.svg)](https://github.com/chan-sccp/sccp_manager/archive/tarball/develop)
[![Download Chan-SCCP channel driver for Asterisk](https://img.shields.io/sourceforge/dt/chan-sccp-b.svg)](https://github.com/chan-sccp/chan-sccp/releases/latest)
[![Sccp Manager](https://img.shields.io/badge/SccpGUI-build-ff69b4.svg)](https://github.com/timspb/sccp_manager)
[![Рабочий драйвер chan-sccp](https://img.shields.io/badge/chan--sccp-driver-green.svg)](https://github.com/timspb/chan-sccp)
[![Chan-SCCP Documentation](https://img.shields.io/badge/docs-wiki-blue.svg)](https://github.com/chan-sccp/chan-sccp/wiki)

### История
Expand All @@ -33,7 +33,7 @@
1. У меня не получилось поставить добиться работы с дисками Aserisk и FreePBX - собираем из исходников
1.1. Замечательная копания freepbx. Теперь с SNG7-PBX-64bit-... все работает!
2. Mysql (Maria)
3. Драйвер протокола SCCP страница (https://github.com/chan-sccp/chan-sccp/)
3. Драйвер протокола SCCP: **рабочая сборка** — [timspb/chan-sccp](https://github.com/timspb/chan-sccp), upstream — [chan-sccp/chan-sccp](https://github.com/chan-sccp/chan-sccp/)
4. Этот модуль.
5. Руки
6. Возможно еще несколько проектов
Expand All @@ -49,23 +49,16 @@
Ну и как водится у на SCCP Manager это бесплатное дополнение. И помни "(C)" означает "Копия верна". Please see the file COPYING for details.


### Prerequisites - как говориться все, что хуже этого возможно работать тоже будет .... но только вопрос как ?
Make sure you have the following installed on your system:
- PHPx.x-zip has to be installed (where x.x is the installed version of PHP).
For example, on Debian, using PHP7.3

- pbx:
- asterisk >= 1.8 (absolute minimum & not recommended)
- asterisk >= 13.7 or asterisk >= 14.0 or asterisk >= 15.0 (Тестировалось на стендах)
- gui:
- freepbx >= 13.0.192 (http://wiki.freepbx.org/display/FOP/Install+FreePBX)
- standard posix compatible applications like sed, awk, tr
- a working version of [chan-sccp](https://github.com/chan-sccp/chan-sccp)
- PHPx.x Ну тут уж как повезет, 5.6 от freepbx, но мы уже пишем под PHP7.3

### Prerequisites — требования к системе
- **GUI:** FreePBX 16 или 17
- **PHP:** 8.3 или новее
- **Asterisk:** 12.2+ (рекомендуется 21, 22, 23)
- **chan-sccp:** 4.3.4+ (рекомендуется 4.3.5+)
- Расширение PHP zip (например, в Debian с PHP 8.3):
```
apt-get install PHP7.3-zip
apt-get install php8.3-zip
```
- Стандартные POSIX-утилиты (sed, awk, tr) и рабочая [chan-sccp](https://github.com/chan-sccp/chan-sccp)
### Installation Очень короткая инструкция
- открой полную инструкцию [Полная версия инструкции] (https://github.com/PhantomVl/sccp_manager/wiki/step-by-step-instlation)

Expand Down
Loading